Bonjour à tous et bonne année!
Ca faisait longtemps que je n'étais pas venu ici.
Je vais vous exposer un problème que je rencontre fréquemment ici.
Juger plutôt ce code.
<?php
//initialisation de la connexion selection de la bdd...
$sql1 = mysql_query("SELECT a, b, id FROM matable WHERE condition");
while($sql2 = mysql_fetch_array($sql1))
{
$sql2['a']--;
$sql2['b']++;
mysql_query("UPDATE matable SET a = '".$sql2['a']."', b = '".$sql2['b']."' WHERE id = '".$sql2['id']."'");
}
$sql3 = mysql_query("SELECT a, b, id FROM matable WHERE condition");
while($sql4 = mysql_fetch_array($sql3))
{
$sql4['a']++;
$sql4['b']--;
mysql_query("UPDATE matable SET a = '".$sql4['a']."', b = '".$sql4['b']."' WHERE id = '".$sql4['id']."'");
}
?>
On est d'accord ceci fonctionne mes a et b n'auront pas bougés au final, maintenant ceci est embêtant puisque ça m'oblige à aller cherche deux fois mon contenu en table.
Maintenant si je remplace ce code par ces deux là la seconde boucle ne s'effectue pas.
<?php
//initialisation de la connexion selection de la bdd...
$sql1 = mysql_query("SELECT a, b, id FROM matable WHERE condition");
while($sql2 = mysql_fetch_array($sql1))
{
$sql2['a']--;
$sql2['b']++;
mysql_query("UPDATE matable SET a = '".$sql2['a']."', b = '".$sql2['b']."' WHERE id = '".$sql2['id']."'");
}
while($sql4 = mysql_fetch_array($sql1))
{
$sql4['a']++;
$sql4['b']--;
mysql_query("UPDATE matable SET a = '".$sql4['a']."', b = '".$sql4['b']."' WHERE id = '".$sql4['id']."'");
}
?>
<?php
//initialisation de la connexion selection de la bdd...
$sql1 = mysql_query("SELECT a, b, id FROM matable WHERE condition");
while($sql2 = mysql_fetch_array($sql1))
{
$sql2['a']--;
$sql2['b']++;
mysql_query("UPDATE matable SET a = '".$sql2['a']."', b = '".$sql2['b']."' WHERE id = '".$sql2['id']."'");
}
while($sql2)
{
$sql2['a']++;
$sql2['b']--;
mysql_query("UPDATE matable SET a = '".$sql2['a']."', b = '".$sql2['b']."' WHERE id = '".$sql2['id']."'");
}
?>
On est d'accord j'ai pris des incrémentations/décrémentations pour illustrer mes exemples mais il arrive souvent en pratique que dans la première boucle je fasse des tests, remplisse des tableaux sans modifier ma bdd puis qu'entre les deux boucle j'agisse sur ce que j'ai produit dans la première et qu'enfin avec ces nouveaux éléments et dans la seconde boucle j'aille modifier ma bdd selon tel ou tel critère...
Voila si quelqu'un a une idée pour que la seconde boucle fonctionne quand même mais que je n'aie pas à aller re-chercher mes valeurs dans la bdd je suis preneur.
Merci à tous!