boucle sur requête

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : boucle sur requête

par donatello » 18 janv. 2006, 03:24

pas de pb, les scripts insérés plus haut mon aidé à résoudre le pb.
merci à tous

par Cyrano » 17 janv. 2006, 23:37

pour répondre à cyrano, c'est justement une table dont le nombre d'enregistrements va varier souvent. On ne sait jamais à l'avance.
Je voudrais juste que la requête affiche le contenu de la table en numérotant de 1à n, quelque soit le nb d'enregistrments...
Qu'une table ait un nombre d'enregistremets variant de 0 à 30000 n'a aucune importance, par contre le nombre de colonnes ne devrait pas être variable : donc il vaut mieux préférer

Code : Tout sélectionner

SELECT champ_1, champ_2, ..., champ_n...

par jobherzt » 17 janv. 2006, 20:28

oui, il n'y a auncun probleme si tu ne connais pas a l'vance le nombre d'enregistrement. le code que je t'ai donne resous le probleme si tu ne connais pas a l'avance le nombre de champs ce qui est different.

par Truc » 17 janv. 2006, 20:09

c'est justement une table dont le nombre d'enregistrements va varier souvent. On ne sait jamais à l'avance.
Je voudrais juste que la requête affiche le contenu de la table en numérotant de 1à n, quelque soit le nb d'enregistrments.
C'est ce que font tous les scripts qui utilisent mysql_fetch_array() (avec une boucle) le nombre d'enregistrements n'intervient pas directement dans le code, on se contente de lire le résultat de la requete jusqu'a ce qu'il n'y en ait plus. Il y a meme des exemples dans la doc. :wink:

par donatello » 17 janv. 2006, 20:05

pour répondre à cyrano, c'est justement une table dont le nombre d'enregistrements va varier souvent. On ne sait jamais à l'avance.
Je voudrais juste que la requête affiche le contenu de la table en numérotant de 1à n, quelque soit le nb d'enregistrments.

Je vais tester les solutions proposées, à tout à l'heure.

par Tictac » 17 janv. 2006, 19:27

essaye comme ça !
$query="SELECT * FROM table"; 
$result=mysql_query($query); 
// function pour connaire le nombre de resultats trouvés
$nb_result = mysql_num_rows($result);

for ($i=0; $i<$nb_result ; $i++) { 
   
   $row=mysql_fetch_array($result); 
   echo  $i . " " .  $row['nom du champ à afficher'] . "<br>" ; 
     
} 
je suis sur que mysql_num_rows() fonctionne !!

à vrai dire j'ai jamais pensé à un count() pour faire ça lol

++

par jobherzt » 17 janv. 2006, 19:26

il me semble que mysql_fetch_array te renvoe une seule ligne de resultat sous la forme d'un tableau indexé. essaie :


$query="SELECT * FROM table"
$result=mysql_query($query);
$n=mysql_num_field($result);
while($row=mysql_fetch_array($result))
{
   for ($i=0; $i<n; $i++) {

      echo  $i . " " .  $row[$i] . "<br>" ;
    
   }
}

par Cyrano » 17 janv. 2006, 19:19

Combien de champs comporte la table ? Éviter d'utiliser le SELECT *, ça ne nous aide pas des masses, on ne sait pas combien de champ ni quels nom ont ces champs.

boucle sur requête

par donatello » 17 janv. 2006, 19:16

Bonjour à tous,
J'ai créé une requête pour afficher le contenu d'une table.
Le résultat est une liste d'items numérotés.
J'ai fait ceci mais çane marche pas:
$query="SELECT * FROM table";
$result=mysql_query($query);
$row=mysql_fetch_array($result);

for ($i=0; $i<count($row); $i++) {

   echo  $i . " " .  $row[$i] . "<br>" ;
    
}
L'erreur est
Notice: Undefined offset: 2 in c:\program files\easyphp1-8\www\dynacom\new\gestion\leservice.php on line 82

3
Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\dynacom\new\gestion\leservice.php on line 82
Voyez vous pourquoi?