Récupération de valeurs d'une requete pour insert

[Résolu]
Signaler
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
Bonjour, je souhaite mettre à jours une base SQL, pour cela je dois aller chercher des infos dans d'autres bases SQL, donc je fais un select pour récupérer le champ que je souhaite.
Ensuite, a partir de ce select, je souhaitee inséré dans chaque ligne de ma base les valeurs trouvées dans mon select qui correspondent.
J'ai un problème car il met à jours que la première ligne (je crois que ça vient de $data = mysql_fetch_array($reqa); mais je ne sais pas comment faire!!
Merci d'avance

$reqa=mysql_query("select VAR1, VAR 2, VAR3 from table1, table2, table3 where VAR1=VAR2;

$data = mysql_fetch_array($reqa);
mysql_free_result ($reqa);
mysql_close ();
?>
<?php
$reqb=mysql_query("update table3 set DD='$data[VAR3]' where EE='$data[VAR2]'");

?>

10 réponses

Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

de rien et oui vaut mieux mettre le free_result qui libere les resultat apres les avoir utilisé lol j avais pas vu.

Accpete la reponse alors.
Bonne continuation


<HR>
Loi du plagiat industriel de Felson : <CITE>Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.</CITE>
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

ben oui il faut faire une boucle sinon la tu lis que ta premiere ligne de reponse


<HR>
Loi du plagiat industriel de Felson : <CITE>Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.</CITE>
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006

et comment je peux faire ça ??
Messages postés
315
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
21 mars 2011
1
Evidement, ou tu fais une boucle for ou une boucle while !!



Personellement le while est légèrement mieu dans ton cas, While non fin table, tu fai ma requete !! tu vois
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006

j'ai essayé ça mais il s'arrête jamais !!

$reqa=mysql_query("select VAR1, VAR 2, VAR3 from table1, table2, table3 where VAR1=VAR2;

$data = mysql_fetch_array($reqa);
mysql_free_result ($reqa);
mysql_close ();
while ($data)
{

$reqb=mysql_query("update table3 set DD='$data[VAR3]' where EE='$data[VAR2]'");
}
?>
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

forcement oui ta valeur data continet toujours quelque chose la meme chose en plus.

essaye ca plutot

mysql_free_result ($reqa);
mysql_close ();
while ($data = mysql_fetch_array($reqa))
{

$reqb=mysql_query("update table3 set DD='$data[VAR3]' where EE='$data[VAR2]'");
}


<HR>
Loi du plagiat industriel de Felson : <CITE>Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.</CITE>
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006

Alors j'ai essayé et ça marche plus du tout !!!:
voici mon code tel que j'ai écris :

$reqa=mysql_query("select VAR1, VAR 2, VAR3 from table1, table2, table3 where VAR1=VAR2");

if (!$reqa)
{ die('Requête invalide : ' . mysql_error());
exit(); }
if ($reqa)
{ echo "OK REQ A ";}
$data = mysql_fetch_array($reqa);
echo $data["VAR3"];
mysql_free_result ($reqa);
mysql_close ();


while ($data = mysql_fetch_array($reqa))
{
$reqb=mysql_query("update table3 set dd='$data[VAR3]' where EE='$data[VAR2]'");
}
if (!$reqb)
{ die('Requête invalide : ' . mysql_error()); exit();}
if ($reqb)
{ echo "OK REQ B EPCI";}

et là il me dit que ma requête est invalide !!!
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

ok bon alors je recommence pour la troisieme fois car le site merde encore et toujours, ca devien lourd d ailleur.

donc ton test tu devrais le mettre dans la boucle deja car la tu test que ton dernier update.
ensuite ton probleme vien peut etre de tes requetes ca je sais pas mais surement pas de ce que je t ai donné le while.... c la solution pour que tu parcours toutes tes reponses.


<HR>
Loi du plagiat industriel de Felson : <CITE>Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.</CITE>
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006

ça y est ça marche !!! merci en fait je crois que ça venait de ça :

mysql_free_result ($reqa);
mysql_close ();

il fallait mettre ça après ma requête donc ça marche nickel !! merci beaucoup pour ton aide !!
Et oui le site merde pas mal en ce moment !!!

Merci !!!
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
J'ajoute avant de partir :



"if (!$reqa)

{ die('Requête invalide : ' . mysql_error());

exit(); }"

Un exit() ne sert à rien si y'a un die() juste avant.

De plus :



"if (!$reqb)

{ die('Requête invalide : ' . mysql_error()); exit();}

if ($reqb)

{ echo "OK REQ B EPCI";}"

if (!$repb) die('Requête invalide : '.mysql_error() );

echo "OK"; // Ca viendra lire ca tout seul, pas besoin de 36 conditions :)