Bonjour,

Je travaille sur un script permettant de selection des données d'un table et la mise à jour d'une autre table avec les données précedement selectionnés

voici la requête pour que vous puisse comprendre facilement ce que je veux faire

Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
update contact c 
set c.flag_mail = 1, c.date_mail = 
  select distinct date_envoi 
  FROM flag_envoi_mail 
  where flag_envoi_mail.id_contact = c.id_contact

Je voudrais mettre à jour la table contact avec les données de la table flag_envoi_mail

le soucis c'est que la table flag_envoi_mail contient plus de 8 millions de ligne

J'obtient l'erreur suivant :



J’implémente ce requete dans un script php qui interroge la table mysq et
j'ai ajouté ça dans le fichier setting.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ini_set('memory_limit', '250M');
mais sans résultat

voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
function synchro()
{
	$tab = array();
	$query = "SELECT DISTINCT id_contact,date_envoi FROM flag_envoi_mail  ";
    //print $query; exit;
	$result = db_query($query);
    while ($data = db_fetch_object($result)) {
        $tab[$data-> id_contact] = $data->date_envoi;
    }
	return $tab;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
function principale_synchro()
{
 
	foreach(synchro() as $key=>$val)
	{
		$query = "update contact set flag_mail = 1 , date_mail = '".$val."' 
		WHERE id_contact = '".$key."' ";
		print $query . "<br />";
		//db_query($query);
	}
 
}
jobtient l'erreur suivant :

PHP Fatal Error: Allowed memory size of 8388608 bytes exhausted ....


Comment puis-je executer ce script , utilisation d'ajax ou autre ?

merci d'avance pour votre aide