Je m'en remet à vous - boucle do while

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 16:36

Bonjour à tous, après une lutte acharné et des centaines, que dis-je des milliers de neurones brulés :cry: par mon mal de tête je ne trouve pas de réponse ! :roll:

Je cherche a faire une liste déroulante avec une boucle do while, le code :

Code: Tout sélectionner
            $plat_query = tep_db_query("SELECT * FROM products_plat ORDER BY plat_id ASC");
                       $plat = tep_db_fetch_array($plat_query);
            $totalRows_rsPlat = mysql_num_rows($plat_query);
            do { 
            ?>
            <option value="choix_plat.php?v=<?php echo $row_rsPlat['plat_id'];  ?>"><?php echo $row_rsPlat['plat_nom']; ?></option>
            <?php
            } while ($row_rsPlat = mysql_fetch_assoc($plat_query));
              $rows = $totalRows_rsPlat;
              if($rows > 0) {
                 mysql_data_seek($plat_query, 0);
                 $row_rsPlat = mysql_fetch_assoc($plat_query);
              }


la boucle marche, le seul truc c'est que ma premiere ligne est nulle, comme si il y avait une ligne null dans ma table, comment puis-je supprimer ca ?

Auriez vous d'autre méthode de boucle à me proposer qui reprend cette requete ?

merci :wink:


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 16:38

et t'aurai pas un enregistrement vide dans products_plat ?

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 16:40

Enfaite, j'ai comme l'impression que ca me saute le premier enregistrement, ou que du moins ca me le met "vide" ou un truc du genre :s

*******


Après vérification en effet, ca me compte bien le 1er enregistrement, mais ca me retourne des valeurs nulles, autrement dit mes variables a l'intérieur de la boucle sont nulles pour le 1er enregistrement :s

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 20:23

Ben oui c'est logique que ça fasse ça!
Dans une boucle do-while, le while est exécuté après la première boucle.

Quel interet d'utiliser un do-while ici???? Un while est fait pour ça !

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 20:34

Oui mais dans ce cas la, quel est la syntaxe d'une boucle while ?

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 20:41

Ben....

while ($row_rsPlat = mysql_fetch_assoc($plat_query))

Tu te compliques la vie pour rien...


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 20:49

Oui le curseur dans le tableau de résultats commence à -1 si tu veux. Donc forcément il faut commencer par prendre le résultat suivant avant de l'afficher.

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 21:01

Bah moi je veux bien :D mais ca revient exactement au même, mon 1er enregistrement est vide :s

je récap :

Code: Tout sélectionner
//ma requete
$plat_query = tep_db_query("SELECT * FROM products_plat ORDER BY plat_id ASC");
//debut de la boucle
while ($row_rsPlat = mysql_fetch_assoc($plat_query)) {

//affichage
echo $row_rsPlat['entree'].'<br/>';

}


Voila en simplifier le code :s


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 21:05

Et en base de données, aucun problème ?

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 21:08

Le SQL
Code: Tout sélectionner
CREATE TABLE `products_plat` (
  `plat_id` int(11) NOT NULL auto_increment,
  `plat_nom` varchar(150) NOT NULL default '',
  PRIMARY KEY  (`plat_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;


et non pas de souci particulier mise a part que je suis obligé de mettre une ligne nulle pour afficher correctement mes autres enregistrements ^^

HElp me please, parce-que je suis entrain de faire du bidouillage et j'aime pas ca :D


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 21:09

Non mais je veux dire t'es sur de pas avoir de ligne vide en base de données ?
Dernière édition par YoyoS le Mar Juin 08, 2010 21:12, édité 2 fois.

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 21:10

Sur et certains :)

EDIT : je viens meme de vider toutes mes tables
Dernière édition par ZelkiN le Mar Juin 08, 2010 21:12, édité 1 fois.


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 21:12

essaie en affichant l'id, t'es sur qu'il doit exister celui-la:
Code: Tout sélectionner
echo $row_rsPlat['plat_id'].'<br/>';


Et je ne vois pas de colonne du nom de "entree" qui correspond à $row_rsPlat['entree']
Il vient d'ou ?

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 21:14

T'inquiete "entree" c'est parceque c'est ce qui m'ai venu a l'idée, je me rappelais plus des champs exacte ;)

Concernant l'id pas de retour, enfaite ce qui est bizarre c'est que le while reconnait qu'il y a un enregistrement parcequ'il me crée une ligne, mais n'affiche aucune variable, enfin si les affiche nulles sinon j'aurai une erreur comme quoi elles sont pas attribuées


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Re: Je m'en remet à vous - boucle do while

Message le Mar Juin 08, 2010 21:18

Si l'id s'affiche pas, c'est que le problème vient du code, c'est impossible d'avoir une valeur null pour un ID clé primaire. Maintenant soit tu ne nous montres pas tout, soit tu ne fais pas les tests sur le fichier que tu as mis à jour =D

Je m'en remet à vous - boucle do while

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité