while and while :)

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 : while and while :)

par skyangel » 29 mars 2006, 11:58

merci je teste de suite.

Le but de ce confort c'est que mon patron ou qq1 d'autres peut modifier toute la base sans aucune difficulté le jour ou je serais plus la .


Merci en tout cas.

par ouckileou » 29 mars 2006, 11:54

OK, en expliquant ton problème avec le but final et en français (pas encode) c'est tout de suite plus clair ;)

Alors pas besoin de connaître le nombre de colonnes, fais une boucle foreach
// boucle sur chaque ligne de résultat 
// on pourrait utiliser MYSQL_ASSOC et connaître directement le nom de la colonne (récupéré dans $cle du foreach)
while ($resultat = mysql_fetch_array($dataset, MYSQL_NUM)) {
	// boucle sur chaque colonne de la ligne courante
	foreach	($resultat as $cle => $valeur) {
		echo 'Numéro : '.$cle;
		echo '<br />Nom : '.mysql_field_name($resultat, $cle);
		echo '<br />Contenu : '.$valeur;
	}
	echo '<br />';
}
Je pense que ceci devrait fonctionner, teste, je ne peux pas moi.
A remettre en forme ensuite. Mais bon c'est le principe, tu boucles sur chaque ligne, et sur chaque ligne tu boucles sur chaque colonnes. Sans te soucier du nombre puisque le foreach s'en occupe tout seul.

Tu pourrais aussi regarder du côté de classe d'accès aux bases de données (il y en a toute une ribambelle dans le forum "Vos contributions")
Regarde ADODB par exemple, elle offre peut-être des fonctionnalités que tu cherches.

Tu peux aussi te poser la question : est-ce que ça vaut le coup ?
généralement, on ne modifie pas une structure de table chaque semaine, et quand on le fait, on modifie le code en conséquence
Ceci semble un peu compliqué et peut-être un peu plus lent donc, pour finalement peu de confort en plus

par Hermès » 29 mars 2006, 11:51

Si ça peut t'aider :
while ($row = mysql_fetch_array($result)) {
   echo "<tr>";
   foreach($row as $col_name => $col_value) {
      echo "<td>Colonne : ".$col_name."<br/>Valeur : ".$col_value."</td>";
   }
   echo "</tr>";
}

par skyangel » 29 mars 2006, 11:42

oui c ca afficher une table.
sauf que ne connais pas le nom des champs et je ne connais que le nom de la table.
je ne sais pas combien il y a de colonne et de lignes.

Totu ca dans le but d'automatiser le tout au cas ou je rajoute des colonnes sans devoir modifier le code

par ouckileou » 29 mars 2006, 11:37

Si tu veux simplement parcourir le résultat d'une requête, afficher les données, pas besoin de 2 boucles : http://phpdebutant.org/article66.php

si ce n'est pas ça que tu veux faire désolé mais je n'ai tjrs pas compris, tout cela me semble très tordu

par skyangel » 29 mars 2006, 11:33

oui c'est sur elles sont l'une dans l'autre mais je n'arrive pas à les éxecuter ensemble.

je souhaite que mon lien prenne comme valeur id , le nom du field dont dépend la valeur. tout cas dans le but d'afficher une table.

pour ca, il faut que je visione chaque field :
for($k=0;$k<mysql_num_fields($result);$k++)
ensuite que je construise les liens automatiquement avec comme id le nom du champ à l'indice k .
mysql_field_name($result,$k);

dans mon premier post a faisait réference à une valeur incrementé et k une limite (notamment par mysql_num_fields($result))

Merci de votre aide .

par ouckileou » 29 mars 2006, 11:24

Elles sont l'une dans l'autre, donc à chaque tour de l'une, tu exécutes complètement l'autre, c'est logique

Peux-tu expliquer un peu mieux ce que tu souhaites faire ?

J'avais aussi posé une question dans mon premier message

par skyangel » 29 mars 2006, 11:24

voici le code que j'ai modifie mais qui ne veut pas m'afficher le resultat estompé

c'est à dire que k ne s'incremente jamais.
for($k=0;$k<mysql_num_fields($result);$k++)
				{
			    while (list($key, $val) = each($tableau)  ) 
                    { 
						$id=mysql_field_name($result,$k); 
                        echo "<TD align='center'>"; 
                        echo "<a id='".$id."' href='visubdd.php?valeur=".$val."&id=".$id."&table=".$table."' class=\"Menu\">".$val.'</a>'; 
                        echo "</TD>";
						//echo $k++; 
						echo "<br>".$id;						 		
                     } 
              		 echo "</TR>"; 
					}				
               } 

par skyangel » 29 mars 2006, 11:21

Bonjour ,

si j'ai cherché mais bon cette partie la m'avait échappé. mais ma olution ne marche pas donc je relance le sujet .

Si quelqu'un pouvait voir pourquoi mes deux boucles ne se font pas parrallèlement.

meric

par ouckileou » 29 mars 2006, 10:47

Premier message à 10h42, deuxième à 10h45... tu n'avais pas dû chercher beaucoup avant de poster :roll:

par ouckileou » 29 mars 2006, 10:46

Salut,

c'est pas très clair

"tant que a<k"
je vois bien k mais pas a

Pense au balises
 plutôt que [code]

par Invité » 29 mars 2006, 10:45

bon j'ai trouve tout seul un petit for avant le while merci

while and while :)

par skyangel » 29 mars 2006, 10:42

Bonjour,

Voila j'ai un petit souci que je n'arrive pas à visualiser.

je voudrais que tant que a<k il affecte a id une valeur.

et en meme temps il doit executer des instrucitons pour chaque element de tableau

je vous mets le code pour etreplus clair.
while ($k<mysql_num_fields($result))
				{
			    while (list($key, $val) = each($tableau)  ) 
                    { 
						$id=mysql_field_name($result,$k); 
                        echo "<TD align='center'>"; 
                        echo "<a id='".$id."' href='visubdd.php?valeur=".$val."&id=".$id."&table=".$table."' class=\"Menu\">".$val.'</a>'; 
                        echo "</TD>";
						$k++; 
						echo "<br>".$id;						 		
                     } 
              		 echo "</TR>"; 
					}	

le code ci dessus est faux. mais je n'arrive pas à le coder

Si vos lanternes pouvaient m'éclairer :) Merci d'avance