Probleme boucle

Fermé
milie - 17 juil. 2008 à 14:41
 milie - 18 juil. 2008 à 09:51
Bonjour,

j'ai fais une requete insert into dans une boucle mais elle ne s'effectue qu'une fois es-normal?
voici mon code
$z=0;
while($z<$nbmot){

mysql_query('INSERT INTO mot VALUES("'.$mot[$z].'","'.$donnees['id'].'")'); // Requête
$z++;
}
merci d'avance

25 réponses

Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 14:47
Bonjour,

Tu n'as qu'une entrée qui s'ajoute?

Je ne vois pas d'erreur dans ton code..

$nbmot est égal à combien?

EDIT : Test ta boucle avec un :

echo $z dans la boucle ...
0
nb depend d'une nombres de mot tapez dans un champ texte mais sa sa fonctionne treés bien est ui il n'y a qu'une entrée qui s'insert c'est ce que je ne comprend pas
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 14:52
Apparement pas de problème dans la requête puisqu'elle s'execute bien la première fois ...

Et je ne vois pas de soucis dans la boucle ...

Je suis désolé mais là je sèche ... Ca devrait marcher :s
0
merci kan même esque sa peut etre du a met deux boucle imbriqué ?
voici le code:
$reponse2= mysql_query('select id from faq where question="'.$question.'"') or die(mysql_error());
while ($donnees = mysql_fetch_array($reponse2) )
{
$z=0;
while($z<$nbmot){
echo $z;
mysql_query('INSERT INTO mot VALUES("'.$mot[$z].'","'.$donnees['id'].'")'); // Requête
$z=$z+1;
echo $z;
echo $mot[$z];
}
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 15:02
Oui le problème doit venir de là!

Je viens de tester ta boucle d'insert et je n'ai pas de soucis!

Je me penche sur l'autre ^^
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 15:07
Bon je viens de tester tes 2boucles imbriquées et elles fonctionnent!

J'ai bien eu l'insert dans la table le bon nombre de fois.

Je ne vois pas d'où peut venir ton problème ...

EDIT : ta boucle de ta requête d'insert se fera autant de fois que tu as d'id dans ton SELECT, c'est ce que tu veux?
0
je vien de retester la boucle chez moi elle ne fonctionne pas même sans l'autre
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 15:11
Le problème doit venir de la concordance entre ton PHP et ta base de données.
0
la premiere boucle s'effectue tant de fois que ce qui a était rentré dans le champ existe
la deuxième dois s'effectuer autant de fois qu'il y a de mot dans le champ de saisie
0
non toutes mes tables correspondent est mes champ aussi
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 15:17
Et bien pour moi les deux boucles fonctionnent très bien.

Tu as testé le $nbmot que tu récupères?

C'est la seule chose que j'ai qui diffère avec ton code (moi pour le test je l'ai définie manuellement à 5 )
0
Oui j'ai fais un echo et cela marche trés bien
je te remercie de m'avoir répondu
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 16:04
C'est quoi qui marche très bien?

Ton insert ou juste le $nbmot?
0
juste le nbmot
décidement c'est vraiment trés énigmatique tout cela
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 16:08
Grâce à tes echo, tu as vérifié que ta boucle se fait bien le bon nombre de fois?

Je ne comprends vraiment pas pourquoi ce code fonctionne pour moi et pas pour toi ...
0
es que je pe te mettre la totalité de mon code pour voir si tu vois une erreur?
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 16:16
Je suis loin d'être un pro du PHP mais on peut toujours essayer ^^

Vas-y envoies moi ton code.
0
<?php

if ((isset($_POST['nom']))&&(isset($_POST['liste']))&&(isset($_POST['mail']))) // Si la variable existe
{

$question =isset($_POST['quest']) ? $_POST['quest'] : '';
$question=addslashes($question);
$nom =$_POST['nom'];
$nom=addslashes($nom);
$theme=$_POST['liste'];
$mail=$_POST['mail'];
$mail=addslashes($mail);
$mot=split(" ",$question);
$nbmot = count($mot);

}
else // La variable n'existe pas encore
{
$question = ""; // On crée des variables vide
$nom = "";
$mail="";
}

if (($question !="")&&($nom != "")&&($mail !="")) // Si quelque chose est saisie
{
// On execute les requetes
mysql_connect("localhost", "identi", "mtpasse"); // Connexion à MySQL
mysql_select_db("bdt"); // Sélection de la base intranet


$reponse = mysql_query('INSERT INTO faq VALUES("","'.$nom.'","'.$mail.'","","'.$question.'"," ","'.$theme.'","'.$question.'","") ') or die(mysql_error()); // Requête SQL
echo'<p class="Style15">Votre question vient d\'être ajoutée. </p>';

$reponse2= mysql_query('select id from faq where question="'.$question.'"') or die(mysql_error());
while ($donnees = mysql_fetch_array($reponse2) )
{
$z=0;
while($z<$nbmot){
echo 'le nomre de mot est '.$nbmot;
mysql_query('INSERT INTO mot VALUES("'.$mot[$z].'","'.$donnees['id'].'")'); // Requête
$z++;
}
}mysql_close(); // Déconnexion de MySQL
}
0
je te remercie vraimment beaucoup
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 juil. 2008 à 16:41
C'est bien ce que je disais, je suis loin d'être un pro du PHP :s

Je n'ai pas trouvé d'erreur dans ton code..

Essaie dans une page de test, de faire ta requete insert plusieurs fois de suite.

Mais la première fois, la requête s'execute comme tu veux?

Elle met le 1er mot dans ta base?

Je suis désolé mais là je ne vois pas :s
0