insert successifs

Par utilisateur, il y a 10 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

SELECT * FROM gtable ; $req = mysql_query ($sql) or die (mysql_error()); while ($result = mysql_fetch_array ($req)){ echo $result["numero"]; }

affiche comme résultat :
1 2 3 4 5
Voilà ça c'est bon ...

Par contre :
Je voudrais ensuite, effectuer une action pour chaque résultat successif :

quand la valeur est 1
insérer dans la table alerte bonjour 1

puis quand la valeur est 2
insérer dans la table alerte bonjour 2

puis quand la valeur est 3
insérer dans la table alerte bonjour 3

ect...

sauf que quand je fais :

SELECT * FROM gtable ; $req = mysql_query ($sql) or die (mysql_error()); while ($result = mysql_fetch_array ($req)){ $sql10 = "INSERT INTO alerte (ID,Numero,message) VALUES('','"$result["numero"]."','bonjour.$result["numero"]') mysql_query($sql10) or die('Erreur SQL !'.$sql10.'<br />'.mysql_error()); }

Ben ça insère bonjour1
puis plus rien ?!?!
alors qu'il faudrais que ça insère 5 lignes, avec successivement, bonjour1, bonjour2, bonjour3, bonjour4, bonjour5

Merci par avance pour votre aide

5 réponses

utilisateur, il y a 10 ans

Peux tu être plus explisite Huggy ?

Benjamin Derepas, il y a 10 ans

Bonjour,

Dans un premier temps, abandonne l'extension mysql, et passe sous pdo .
Ensuite, tu récupère comme tu l'a dit un tableau avec tes numéros. Tu dois parcourir ce dernier avec un foreach .
Je vais peut être dire une betise (penses à te renseigner auprès d'autres personnes) mais tu pourrai utiliser aussi les transactions SQL.

Huggy, il y a 10 ans

Les requêtes multiples ne sont pas supportées à travers la même connexion.
Ca veut dire qu'en utilisant plusieurs Link_identifiers on peut y arriver
Il faut donc faire 2 mysql_connect pour avoir 2 $link et il faut ensuite passer chaque $link en second argument du mysql_query
comme ça tes deux requêtes n'interfèrent pas entre elles.

Huggy, il y a 10 ans

voici un exemple qui ressemble un peu à ce que tu veux faire

<?php // première connexion $link = mysql_connect('127.0.0.1', 'root', ''); $db = mysql_select_db('banque5', $link) or die('Could not select database.'); echo 'Connecté correctement'; // deuxieme connexion $new_link = true; // obligatoire pour avoir un link_identifier différent du premier $link2 = mysql_connect('127.0.0.1', 'root', '', $new_link); $db2 = mysql_select_db('banque5', $link2) or die('Could not select database.'); $req = mysql_query("SELECT * FROM employe", $link); // sur le 1ere connexion while ($row = mysql_fetch_array($req)) { echo "<br/>"; echo $row['nomEmploye'] . "..." . $row['SALAIRE']; mysql_query("UPDATE employe set SALAIRE=5000 WHERE CODE_EMPL=" . $row['CODE_EMPL'], $link2); // sur la seconde connexion } mysql_close($link); mysql_close($link2); ?>
utilisateur, il y a 10 ans

Merci Huggy, ton exemple va m'aider. Merci beaucoup