Problème incrémentation php
Fermé
sahoumita
Messages postés
52
Date d'inscription
lundi 10 novembre 2008
Statut
Membre
Dernière intervention
30 juin 2009
-
5 mai 2009 à 16:37
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 6 mai 2009 à 20:04
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 6 mai 2009 à 20:04
A voir également:
- Problème incrémentation php
- Easy php - Télécharger - Divers Web & Internet
- Php?id=1 - Forum PHP
- \R php ✓ - Forum PHP
- Br php ✓ - Forum PHP
- Incrémentation excel ne fonctionne pas ✓ - Forum Excel
8 réponses
Utilisateur anonyme
5 mai 2009 à 20:50
5 mai 2009 à 20:50
^^
Faut toi quelques affichages... notamment de ton $j pour voir si tu n'essayes pas d'insérer des num qui existent déjà.
Je te conseille de faire une requête dans ta boucle for (celle avec le $j) qui va sélectionner à chaque tour le nombre max de num dans ta table.
Là, dans ta requête insert, tu n'auras plu qu'à mettre pour le num cette valeur + 1.
Faut toi quelques affichages... notamment de ton $j pour voir si tu n'essayes pas d'insérer des num qui existent déjà.
Je te conseille de faire une requête dans ta boucle for (celle avec le $j) qui va sélectionner à chaque tour le nombre max de num dans ta table.
Là, dans ta requête insert, tu n'auras plu qu'à mettre pour le num cette valeur + 1.
Utilisateur anonyme
6 mai 2009 à 09:39
6 mai 2009 à 09:39
Voilà comment je le ferais moi :
{
$pseudo = $_SESSION['login'];
$req="select * from quiz1 where login='$pseudo'";
$res=mysql_fetch_row(mysql_query($req));
for($i=1;$i<$_SESSION['i'];$i++)
{
for($j=1;$j<$res[0];$j++)
{
$requete="select MAX(numquest) from quiz1 where login='$pseudo'";
$reponse=mysql_fetch_row(mysql_query($req));
$num=$reponse[0] + 1;
if (isset($_POST['choix'.$i]))
{
$choix=$_POST['choix'.$i];
$sql1 ="insert into quiz1 values ('$num','$pseudo','".$choix[0]."','".$choix[1]."','".$choix[2]."','".$choix[3]."','".$choix[4]."','".$choix[5]."')";
$res = mysql_query($sql1);
echo "Le num : $num<br>";
echo "Le i : $i"
}
}
}
Mais ça marchera pas je pense. Tu insères $cchoix[i] alors que ta boucle ne fait qu'un i à chaque fois...
A toi de voir...
A quoi sert $_SESSION['i']?
Il manquait des accolades, je pense que c'était juste que tu les avais pas mises dans le post. Mais bon, le code est plu clair avec.
{
$pseudo = $_SESSION['login'];
$req="select * from quiz1 where login='$pseudo'";
$res=mysql_fetch_row(mysql_query($req));
for($i=1;$i<$_SESSION['i'];$i++)
{
for($j=1;$j<$res[0];$j++)
{
$requete="select MAX(numquest) from quiz1 where login='$pseudo'";
$reponse=mysql_fetch_row(mysql_query($req));
$num=$reponse[0] + 1;
if (isset($_POST['choix'.$i]))
{
$choix=$_POST['choix'.$i];
$sql1 ="insert into quiz1 values ('$num','$pseudo','".$choix[0]."','".$choix[1]."','".$choix[2]."','".$choix[3]."','".$choix[4]."','".$choix[5]."')";
$res = mysql_query($sql1);
echo "Le num : $num<br>";
echo "Le i : $i"
}
}
}
Mais ça marchera pas je pense. Tu insères $cchoix[i] alors que ta boucle ne fait qu'un i à chaque fois...
A toi de voir...
A quoi sert $_SESSION['i']?
Il manquait des accolades, je pense que c'était juste que tu les avais pas mises dans le post. Mais bon, le code est plu clair avec.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
6 mai 2009 à 10:00
6 mai 2009 à 10:00
if ($_SESSION['login'] != '') { $pseudo = $_SESSION['login']; $req="select * from quiz1 where login='$pseudo'"; $res=mysql_query($req); //TEST echo "Valeur SESSION[i]: ".$_SESSION['i']."<br />"; echo "Nombre enr trouves: ".mysql_num_rows($res)."<br />"; for($i=1;$i<$_SESSION['i'];$i++){ for($j=1;$j<mysql_num_rows($res);$j++){ if (isset($_POST['choix'.$i])){ $choix=$_POST['choix'.$i]; //si tu as un name different pour chaque checbox comme il semble ici //pourquoi ligne ci dessous tu considères $choix comme un array ?? $sql1 ="insert into quiz1 values ('$j','$pseudo','".$choix[0]."','".$choix[1]."','".$choix[2]."','".$choix[3]."','".$choix[4]."','".$choix[5]."')"; $res = mysql_query($sql1); } } } }
sahoumita
Messages postés
52
Date d'inscription
lundi 10 novembre 2008
Statut
Membre
Dernière intervention
30 juin 2009
6 mai 2009 à 11:07
6 mai 2009 à 11:07
j'ai essayé de faire les echos que tu m'as proposé mais rien ne s'insere aussi.
on me donne le nombre trouve : 0
et a propos d'"insert" elle ne me pose pas de probleme mais si tu as de solution de mieux je suis prenante.
on me donne le nombre trouve : 0
et a propos d'"insert" elle ne me pose pas de probleme mais si tu as de solution de mieux je suis prenante.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
6 mai 2009 à 12:35
6 mai 2009 à 12:35
les echos ne sont pas la pour inserer mai spour voir si tu as bien les valeurs attendues
déja tu peux remarquer que le nombre trouvé est = 0 donc aucune chance d'inserer qq chose
déja tu peux remarquer que le nombre trouvé est = 0 donc aucune chance d'inserer qq chose
Utilisateur anonyme
6 mai 2009 à 14:00
6 mai 2009 à 14:00
Si dans la boucle for tu écris echo $i et qu'il t'affiche juste 0, c'est qu'il y a un soucis avec ton $_SESSION['i'].
Essaye de chercher de ce côté...
Essaye de chercher de ce côté...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
6 mai 2009 à 14:05
6 mai 2009 à 14:05
je t'ai mis deux echo pour voir les valeurs:
echo "Valeur SESSION[i]: ".$_SESSION['i']."<br />";
echo "Nombre enr trouves: ".mysql_num_rows($res)."<br />";
donnes nous ce qu'ils sortent
echo "Valeur SESSION[i]: ".$_SESSION['i']."<br />";
echo "Nombre enr trouves: ".mysql_num_rows($res)."<br />";
donnes nous ce qu'ils sortent
sahoumita
Messages postés
52
Date d'inscription
lundi 10 novembre 2008
Statut
Membre
Dernière intervention
30 juin 2009
6 mai 2009 à 17:46
6 mai 2009 à 17:46
Voila ce qu'il me donnent:
Valeur SESSION[i]:21
Nombre enr trouves:0
Valeur SESSION[i]:21
Nombre enr trouves:0
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
6 mai 2009 à 20:04
6 mai 2009 à 20:04
Ok le fait qu'aucun enr ne soit trouvé veux dire que ta requette a un pb
fais un echo "pseudo: ".$pseudo pour voir si tu as bien cette valeur
de plus dans ces boucles:
for($i=1;$i<$_SESSION['i'];$i++){
for($j=1;$j<mysql_num_rows($res);$j++){
if (isset($_POST['choix'.$i])){
$choix=$_POST['choix'.$i];
//si tu as un name different pour chaque checbox comme il semble ici
//pourquoi ligne ci dessous tu considères $choix comme un array ??
$sql1 ="insert into quiz1 values ('$j','$pseudo','".$choix[0]."','".$choix[1]."','".$choix[2]."','".$choix[3]."','".$choix[4]."','".$choix[5]."')";
$res = mysql_query($sql1);
}
}
}
a quoi sert la boucle sur $j puisque cette variable n'apparait nulle part dans la boucle ?
fais un echo "pseudo: ".$pseudo pour voir si tu as bien cette valeur
de plus dans ces boucles:
for($i=1;$i<$_SESSION['i'];$i++){
for($j=1;$j<mysql_num_rows($res);$j++){
if (isset($_POST['choix'.$i])){
$choix=$_POST['choix'.$i];
//si tu as un name different pour chaque checbox comme il semble ici
//pourquoi ligne ci dessous tu considères $choix comme un array ??
$sql1 ="insert into quiz1 values ('$j','$pseudo','".$choix[0]."','".$choix[1]."','".$choix[2]."','".$choix[3]."','".$choix[4]."','".$choix[5]."')";
$res = mysql_query($sql1);
}
}
}
a quoi sert la boucle sur $j puisque cette variable n'apparait nulle part dans la boucle ?
6 mai 2009 à 01:09
d'apres ce que j'ai compris de ce que t'as dit voila ce que j'ai modifié:
{$pseudo = $_SESSION['login'];
$req="select * from quiz1 where login='$pseudo'";
$res=mysql_query($req);
//$resa=mysql_num_rows($res);
for($i=1;$i<$_SESSION['i'];$i++){
for($j=1;$j<$res;$j++){
$requete="select MAX(numquest) from quiz1 where login='$pseudo'";
$reponse=mysql_query($req);
$num=$reponse++;
if (isset($_POST['choix'.$i])){
$choix=$_POST['choix'.$i];
$sql1 ="insert into quiz1 values ('$num','$pseudo','".$choix[0]."','".$choix[1]."','".$choix[2]."','".$choix[3]."','".$choix[4]."','".$choix[5]."')";
$res = mysql_query($sql1);
echo"$num";
mais ça n'insere rien du tout....
peut etre que je n'ai pas bien modifié puisque je ne suis que débutante en php/mysql ,alors j'attends ton aide.Et merci