MySQL: besoin d'aide!!!
Résolu
toto
-
toto aussi -
toto aussi -
Bonjour,j'ai déjà posté ce message dans le forum programation, mais comme ça concerne aussi le webmastering,
et par conséquent les webmaster pourraient apporter la solution, je le poste aussi dans ce forum.
J'espère que CCM me pardonnera si c'est contraire au réglement.
Je vous présente ma table appelée message avec les valeurs :
+----------------------+--------------------------+
| message | numeroDePlace |
+----------------------+--------------------------+
| Bonjour, aaa | 1 |
| Bonjour, bbbb | 2 |
| Bonjour, ccc | 3 |
| Bonjour, dddd | 4 |
| Bonjour, eeeee | 5 |
| Bonjour, zzzz | 6 |
+----------------------+-----------------------+ |
Voilà , mon problème est que je n'arrive pas à trouver la requète qui me permettrait d'incrémenter les valeur de la colonne de numeroDePlace de 1 pour avoir le résultat suivant:
+----------------------+--------------------------+
| message | numeroDePlace |
+----------------------+--------------------------+
| Bonjour, aaa | 2 |
| Bonjour, bbbb | 3|
| Bonjour, ccc | 4 |
| Bonjour, dddd | 5 |
| Bonjour, eeeee | 6 |
| Bonjour, zzzz | 7 |
+----------------------+-----------------------+ |
J'ai essayé la requète suivante :
$request1="select numeroDePlace from message";
$result1=mysqli_query($connection,$request1) or die("no request1");
while($line1=mysqli_fetch_assoc($result1))
{
$request2="update message set numeroDePlace=$line1[numeroDePlace]+1";
$result2=mysqli_query($connection,$request2) or die("no request2");
}
mais ça ne marche pas car ça remplace toutes les valeurs de numeroDePlace par 8 comme ceci:
+----------------------+--------------------------+
| message | numeroDePlace |
+----------------------+--------------------------+
| Bonjour, aaa | 8 |
| Bonjour, bbbb | 8|
| Bonjour, ccc | 8 |
| Bonjour, dddd | 8 |
| Bonjour, eeeee | 8 |
| Bonjour, zzzz | 8 |
+----------------------+-----------------------+ |
Donc, est-ce que quelqu'un connait bien mySQL pour pouvoir résoudre ce problème ?
Merci d'avance à tous ceux qui essaient de m'aider
Cordialement
et par conséquent les webmaster pourraient apporter la solution, je le poste aussi dans ce forum.
J'espère que CCM me pardonnera si c'est contraire au réglement.
Je vous présente ma table appelée message avec les valeurs :
+----------------------+--------------------------+
| message | numeroDePlace |
+----------------------+--------------------------+
| Bonjour, aaa | 1 |
| Bonjour, bbbb | 2 |
| Bonjour, ccc | 3 |
| Bonjour, dddd | 4 |
| Bonjour, eeeee | 5 |
| Bonjour, zzzz | 6 |
+----------------------+-----------------------+ |
Voilà , mon problème est que je n'arrive pas à trouver la requète qui me permettrait d'incrémenter les valeur de la colonne de numeroDePlace de 1 pour avoir le résultat suivant:
+----------------------+--------------------------+
| message | numeroDePlace |
+----------------------+--------------------------+
| Bonjour, aaa | 2 |
| Bonjour, bbbb | 3|
| Bonjour, ccc | 4 |
| Bonjour, dddd | 5 |
| Bonjour, eeeee | 6 |
| Bonjour, zzzz | 7 |
+----------------------+-----------------------+ |
J'ai essayé la requète suivante :
$request1="select numeroDePlace from message";
$result1=mysqli_query($connection,$request1) or die("no request1");
while($line1=mysqli_fetch_assoc($result1))
{
$request2="update message set numeroDePlace=$line1[numeroDePlace]+1";
$result2=mysqli_query($connection,$request2) or die("no request2");
}
mais ça ne marche pas car ça remplace toutes les valeurs de numeroDePlace par 8 comme ceci:
+----------------------+--------------------------+
| message | numeroDePlace |
+----------------------+--------------------------+
| Bonjour, aaa | 8 |
| Bonjour, bbbb | 8|
| Bonjour, ccc | 8 |
| Bonjour, dddd | 8 |
| Bonjour, eeeee | 8 |
| Bonjour, zzzz | 8 |
+----------------------+-----------------------+ |
Donc, est-ce que quelqu'un connait bien mySQL pour pouvoir résoudre ce problème ?
Merci d'avance à tous ceux qui essaient de m'aider
Cordialement
A voir également:
- MySQL: besoin d'aide!!!
- Mysql community server - Télécharger - Bases de données
- Could not connect to mysql! please check your database settings! - Forum Redhat
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Access vs mysql - Forum Webmastering
5 réponses
tu peux mettre ton champ numéro de place en auto_increment
tu fais modification du champ concerné->extra->auto_increment, et ça le fait automatiquement à chaque enregistrement^^
tu fais modification du champ concerné->extra->auto_increment, et ça le fait automatiquement à chaque enregistrement^^
désolé (: j'aurais du m'en douter^^ :D
J'aurais fait quelque chose dans ce goût là^^
$request1="select numeroDePlace from message"; $result1=mysqli_query($connection,$request1) or die("no request1"); while($line1=mysqli_fetch_assoc($result1)) { $newNb=$line1['numeroDePlace']++; $request2="update message set numeroDePlace=' ".$newNb."' where numeroDeMessage='".$line1['numeroDeMessage']."' "; mysqli_query($connection,$request2) or die("no request2"); }
J'aurais fait quelque chose dans ce goût là^^
Bonjour
Normal que ça te mette la même valeur partout, dans ta requête update, il n'y a pas de 'WHERE' donc elle s'applique à tous les enregistrements.
Tu as un moyen très simple d'obtenir ton résultat sans avoir de boucle à faire :
update message set numeroDePlace=numeroDePlace+1.
Pas besoin de select et de while pour traiter tes enregistrements un par un
Normal que ça te mette la même valeur partout, dans ta requête update, il n'y a pas de 'WHERE' donc elle s'applique à tous les enregistrements.
Tu as un moyen très simple d'obtenir ton résultat sans avoir de boucle à faire :
update message set numeroDePlace=numeroDePlace+1.
Pas besoin de select et de while pour traiter tes enregistrements un par un
Merci pour ta réponse, mais justement, j'ai pas mis le where car je veux que l'incrémentation s'applique à TOUTES les valeurs de la colonne numeroDePlace,
et en plus tu as dis qu'il y a un moyen très simple d'obtenir le résultat sans avoir de boucle à faire :
update message set numeroDePlace=numeroDePlace+1 -> Ce moyen, je l'ai déjà fait , je l'ai méme mentionné dans l'énoncé de mon problème par update message set numeroDePlace=$line1[numeroDePlace]+1
et en plus tu as dis qu'il y a un moyen très simple d'obtenir le résultat sans avoir de boucle à faire :
update message set numeroDePlace=numeroDePlace+1 -> Ce moyen, je l'ai déjà fait , je l'ai méme mentionné dans l'énoncé de mon problème par update message set numeroDePlace=$line1[numeroDePlace]+1
non
sans where tu affectes la même valeur à tous les enregistrements. Et avec la boucle en prime, tu recommences autant de fois qu'il y a d'enregisrements. Si tu pouvais voir les valeurs intermédiaires tu les verrais tous passer à 2 puis tous à 3 puis tous à 4 etc.. jusqu'à 8
avec une formule du type champ = champ+1, sans boucle, tu incrémentes tous les champs une fois et une seule
sans where tu affectes la même valeur à tous les enregistrements. Et avec la boucle en prime, tu recommences autant de fois qu'il y a d'enregisrements. Si tu pouvais voir les valeurs intermédiaires tu les verrais tous passer à 2 puis tous à 3 puis tous à 4 etc.. jusqu'à 8
avec une formule du type champ = champ+1, sans boucle, tu incrémentes tous les champs une fois et une seule
Tu n'as pas lu ma réponse.
Ce n'est pas pas $line1[numeroDePlace]+1 mais numeroDePlace+1 qu'il faut mettre
Ce n'est pas pas $line1[numeroDePlace]+1 mais numeroDePlace+1 qu'il faut mettre
C'est formidable totoaussi, j'ai fait copier-coller ton code et supprimer le while , et ça marche .T'avais raison, y a pas besoin de boucle,
et il fallait bien mettre numeroDePlace=numeroDePlace+1 (c'est très important)
Merci à toi aussi smokebird,
et aussi à CCM
RESOLU, je peux dormir tranquillement -_-
et il fallait bien mettre numeroDePlace=numeroDePlace+1 (c'est très important)
Merci à toi aussi smokebird,
et aussi à CCM
RESOLU, je peux dormir tranquillement -_-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
+-----------------+----------------+-----------------+
| numeroDeMessage | message | numeroDePlace |
+-----------------+----------------+-----------------+
| 17 | Bonjour, aaa | 1 |
| 18 | Bonjour, bbbb | 2 |
| 19 | Bonjour, ccc | 3 |
| 20 | Bonjour, dddd | 4 |
| 21 | Bonjour, eeeee | 5 |
| 22 | Bonjour, zzzz | 6 |
+-----------------+----------------+-----------------+
dans lequel la colonne numeroDeMessage était déjà mis en extra>auto_increment.
Par conséquent, je ne peux pas mettre aussi la colonne numeroDePlace en extra>auto_increment.
Le type de donnée pour la colonne numeroDePlace est bigint .