Page 1 sur 1

Quel mysql_fetch???????????

Posté : 18 févr. 2005, 16:23
par Jeude
Bonjour à tous,
Je me pose la question que choisir pour mes requêtes sous php entre les différents "mysql_fetch".
Dans ma requête, je dois récupérer les données d'1 table selon une variable saisie et afficher une liste de valeur! Concrètement, je sélectionne une série et une catégorie de série, et je liste toutes les formations que comprennent la série. Afin de donner à chaque formation une date et une heure.
Merci d'avance.

Posté : 18 févr. 2005, 16:29
par Zemeckis
Donne un exemple, car je suis perdu dans tes séries...

Sinon, a vu de nez, je dirai mysql_fetch_array

Posté : 18 févr. 2005, 16:40
par Jeude
Ouais c'est ce que j'ai mi mais ça me saoule je n'avance pas! Je t'envoie le code tu vas encore moins capter mais si tu veux et je te réexplique!

Code : Tout sélectionner

<?php #Fonction de la date du jour $datedujour=date("d/m/Y"); #connexion à la base de données mysql_connect("cl1-sql1","******","*******"); mysql_selectdb("********"); #Compte le nombre de séries dans la base de données $nbserie=mysql_query("select count(idserie) from gf_serie"); #Formulaire echo '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">'; echo ' <table border="0" cellspacing="1" bgcolor="#AEBFE2" cellpadding="2" width="156"> <tr> <td>'; #Création de la requête SQL des titres de série $req=mysql_query("select idserie,titre from gf_serie order by titre"); echo '<select name="series">'; while($data = mysql_fetch_assoc($req)) {echo '<option value="'.$data['idserie'].'">'.$data['titre'].'</option>'; } echo '</select>'; echo '</form>'; #Création de la liste des types de série echo ' <select name="typeserie"> <option value="collective">Collective <option value="individuelle">Individuelle </select> </td> <td>'; #Bouton d'exécution de la requête SQL pour les formations echo ' <input type="submit" name="executer" value="Choix"/> </tr>'; #Titres des champs du formumlaire echo ' <tr><td><input type="text" name="titrenom" size="60" value="Nom des formations"></td> <td><input type="text" name="titreduree" size="5" value="Durée"></td> <td><input type="text" name="titredate" size="10" value="Date"></td> <td><input type="text" name="titreheure" size="7" value="Heure"></td> </tr> </table> <table border="1" cellspacing="1" bgcolor="#AEBFE2" cellpadding="2" width="156"> <tr>'; #Boucle qui va faire un tour pour chaque enregistrement if(isset($_POST['submit']) && $_POST['submit']=='executer') {if(isset($_POST['series']))#Création la requête SQL pour les formations {$requete[] = "select idserie, nom, duree from gf_formation, gf_serie where titre='".$_POST['series']."'"; echo'"$requete"'; while($resultat=mysql_fetch_array($requete)or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error())); {#traitement echo' <tr><td><input type="text" name="nomform" size="60" value="'.$resultat['nom'].'" />; </td> <!-- création du champs des durées des formations --> <td><input type="text" name="dureeform" align=center size="4" value="'.$resultat['duree'].' hr(s)" /> </td> <!-- création du champs de la date du jour --> <td><input type="text" name="dateform" size="10" maxlength="10" align=center value="'.$datedujour.'"></td> <!-- création de la liste des horaires --> <td><select name="heureform[]"> <option value="09h">9h00 <option value="09h30">9h30 <option value="10h">10h00 <option value="10h30">10h30 <option value="11h">11h00 <option value="11h30">11h30 <option value="12h">12h00 <option value="12h30">12h30 <option value="13h">13h00 <option value="13h30">13h30 <option value="14h">14h00 <option value="14h30">14h30 <option value="15h">15h00 <option value="15h30">15h30 <option value="16h">16h00 <option value="16h30">16h30 <option value="17h">17h00 <option value="17h30">17h30 <option value="18h">18h00 <option value="18h30">18h30 <option value="19h">19h00 <option value="19h30">19h30 <option value="20h">20h00 </select> </td> </tr>'; } } } echo '</table>'; ?>
Je te redis ça! Je sélectionne une série dans une liste.
Avec cette série je recherche dans ma base de données toutes les formations qui la consernent. OK?
Je retourne donc dans mon formulaire ces formations sous forme de liste.
Pour chaque formation, je lui attibuts une date et une heure.
Ya une suite mais j'ai pas fini. En gros faudra tout renvoyer à la base de données pour les incorporer dans un agenda.

Merci.

Posté : 18 févr. 2005, 17:01
par Jeude
Alors?

Posté : 21 févr. 2005, 13:29
par mere-teresa
Hum selon mon expérience, peu importe, c'est toi qui manipule les mysql_fetch_qqchose() donc tu choisis celui avec lequel tu es le plus à l'aise.

Je cite Nexen.net :
Il est important de souligner que mysql_fetch_array N'est PAS significativement plus lente que mysql_fetch_row , tandis qu'elle ajoute un confort d'utilisation important.

Posté : 21 févr. 2005, 19:31
par renan44
Pour ma part, j'utilise mysql_fetch_row lorsque j'ai que quelques champ à sélectionner dans la table, sinon je prend mysql_fetch_array :wink:

Mais bon, comme le dit nexen, la vitesse ne change pas ou presque, donc à toi de voir