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


Huggy
Réponse acceptée

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.

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.

Peux tu être plus explisite Huggy ?

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);

?>

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