Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Bonjour,
J'ai un problème avec ce code.
La fonction rand() retourne la meme valeur pour chaque boucle bouclée par While.
ex : je lance mon script une fois : le 49 sort sur toutes les lignes.
Une seconde fois : le 61 sur toutes les lignes.
J'aimerais que le rand s'effectue sur chaque boucle effectuée.
Merci de m'aider à comprendre comment générer un nombre aléeatoire sur chaque boucle tant que while est TRUE.
<?php
mysql_connect("localhost", "root", "") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("database");
$result = mysql_query("SELECT id, pays, dep, city FROM users");
while ($row = mysql_fetch_array($result)) {
$dep = rand(21, 94);
mysql_query("UPDATE users SET state_province=$dep");
printf ("ID : %s Pays : %s Dep : %s Ville : %s<br>", $row["id"], $row["pays"], $row["dep"], $row["city"]);
}
mysql_free_result($result);
?>Merci pour votre aide
Hors ligne
Merci, grace a toi shiva, effectivement, un echo $dep me donne une valeur differente j'aurais du verifier.
Mais lors de l'UPDATE de la table, c'est toujours la meme valeur qui est insérée.
Pour resumer :
Malgré que l'echo $dep confirme que le nombre est bien aleatoire a chaque ligne, la deuxieme action UPDATE insere la meme valeur dans toutes les lignes.
C'est très étrange ! Qqun peut t'il m'expliquer ? Dois-je ecrire ma commande SQL différement pour insérer la variable $dep ?
Merci !
Hors ligne
Salut,
update fait une mise à jour de toutes les lignes qui vérifie les conditions de la requêtes. Comme il n'y a pas de condition, toutes les lignes sont bonnes à mettre à jour. Ce qui fait que tu mets à jour toutes les lignes à chaque fois.
Si tu veux être plus précis dans ta mise à jour tu peux rajouter des conditions avec un where. Dans ton cas, je pense que tu veux mettre un filtre sur la colonne id.
mysql_query("UPDATE users SET state_province=$dep where id=". $row['id']);Hors ligne