Problème de Boucle imbriquée

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 : Problème de Boucle imbriquée

Re: Problème de Boucle imbriquée

par bernard25 » 17 janv. 2010, 20:05

Merci Ryle,

j'ai trouvé ceci qui fonctionne comme je l'espérais :

					$resultats = mysql_query("SELECT * FROM $table ");
					$nombrechamps = mysql_num_fields($resultats);
				
					
					echo "<br />";
					echo 'Nombre des Champs dans la Table <b>'.$table.'</b>  : '.$nombrechamps;

					echo "<br />";
					$i =0;
					$ii = 1;
					   while ($ligne = mysql_fetch_row($resultats))
					{
						echo "<br />";
						$i=0;
[b]						echo '<b>Enregistrement N° :'.$ii.'</b><br />';
						//--------------------------------------------
					[color=#4000FF]	for($i=0;$i < $nombrechamps;$i++)
						{
							echo ' Champ : '.$i.'  :  ';
							echo $ligne[$i].'<br />';
														
						}[/color] [/b]
						//--------------------------------------------
						$ii++;
						$i=0;	
						if ($ii == $nombrechamps) {
						}
					}

					mysql_close($connect);	
Merci à tous le monde et bonne fin de soirée
Amicalement
Bernard

Re: Problème de Boucle imbriquée

par Ryle » 17 janv. 2010, 19:46

Je ne comprend pas bien le format que tu veux donner en sortie, mais peut être que ceci te permettra d'y voir plus clair :
echo '<table>';
while ($row = mysql_fetch_assoc($rs)) { // pour chaque enregistrements
	echo '<tr>';
	foreach ($row as $lib => $val) { // parcours chacun des champs de l'enregistrement
		echo '<td>' . $val . '</td>';
	}
	echo '</tr>';
}
echo '</table>';

Re: Problème de Boucle imbriquée

par bernard25 » 17 janv. 2010, 11:09

Bonjour à TOutes et à Tous,

Merci Nours312,


Je pense que tu n'es pas loin du résultat,


Effectivement c'est la première fois que j'utilise Foreach et ce n'est pas une réussite

Ce que j'aimerias comme résultat c'est que ma boucle parcours tous mes champs un par un en me l'affichant et ensuite qu'il passe au deuxième enregistrement etc... Facile à dire n'est-ce pas ?

J'ai repris ton code que j'ai inséré:
					$resultats = mysql_query("SELECT * FROM $table ");
					$nombrechamps = mysql_num_fields($resultats);
					echo "<br />";
					echo 'Nombre des Champs dans la Table <b>'.$table.'</b>  : '.$nombrechamps;

					echo "<br />";
					$i =0;
					$ii = 0;
					   while ($ligne = mysql_fetch_row($resultats))
					{
						echo $ii.' : '.$ligne[$ii].'  ';
						echo "<br />";
[b]						foreach($ligne as $row)
						{

							echo $i.' : '.$row[0].' : '.$row[1];
							$i++;
						}[/b]

						echo "<br />";

						$ii++;
						$i=0;	
						if ($ii == $nombrechamps) {
							break;
						}
					}
Le résultat donne des erreurs:
Notice: Uninitialized string offset: 1 in C:\wamp\www\UtilitairePHP\affichetable.php on line 103
0 : 1 : 1 : A : A2 : J : A3 : 0 : 34 : 0 : 65 : V : e6 : 1 : ,7 : M : a8 : S : E9 : 9 : 010 : 8 : .
Notice: Uninitialized string offset: 1 in C:\wamp\www\UtilitairePHP\affichetable.php on line 103
11 : 5 :
Notice: Uninitialized string offset: 1 in C:\wamp\www\UtilitairePHP\affichetable.php on line 103
12 : 3 : 13 : 2 : 014 : . : .15 : . : .16 : . : .17 : . : .18 : 2 : 019 : 0 : 020 : n : o21 : A : u22 : 1 : 9
Notice: Uninitialized string offset: 1 in C:\wamp\www\UtilitairePHP\affichetable.php on line 103
23 : 1 : 24 : E : q25 : E : l
Notice: Uninitialized string offset: 1 in C:\wamp\www\UtilitairePHP\affichetable.php on line 103
26 : 2 : 27 : 4 : 0
1 : B206

En tout cas merci beaucoup, je vais essayé de bosser sur ton code
Bon dimanche

Re: Problème de Boucle imbriquée

par Nours312 » 16 janv. 2010, 23:03

je dirais que ton foreach est complètement aberrant !...

testes plutôt un truc comme ça :
foreach($ligne as $row)
{
  echo $i.' : '.$row[0].' : '.$row[1];
$i++;
}

Problème de Boucle imbriquée

par bernard25 » 16 janv. 2010, 20:07

Bonsoir à Toutes et à Tous,

J'aimerai afficher la table que j'ai choisie et afficher tous les enregistrements sans connaitre au préalable le nombre de champs que cette table détient en sachant que chaque table est différente mais je n'y arrive pas, voici ce que j'ai fait mais
cela ne m'affiche pas ce que je désire

J'affiche toutes mes bases de données et je choisis parmi un select

Variable de ma base de données : $BaseDonnees

J'affiche toutes mes Tables et je choisis parmi un select
Variable de ma table : $table

Je récupère le nombre de champs contenus dans ma base avec $nombrechamps
Jusqu'ici tout va bien

C'est ici que je rame lamentablement
<?php

$resultats = mysql_query("SELECT * FROM $table ");
$nombrechamps = mysql_num_fields($resultats);
echo "<br />";
echo 'Nombre des Champs dans la Table <b>'.$table.'</b> : '.$nombrechamps;


echo "<br />";
$i =0;
$ii = 0;
while ($ligne = mysql_fetch_row($resultats))
{
$i =0;
echo $ii.' : '.$ligne[$ii].' ';
echo "<br />";
foreach($ligne as $nombrechamps)
{
echo $i.' : ';
$row = mysql_fetch_row($resultats);
echo $row[0].' : ';
echo $row[$i]."<br />";
$i++;
}

echo "<br />";

$ii++;
$i=0;
if ($ii == $nombrechamps) {
echo 'dedans';
break;
}
}


mysql_close($connect);
?>[/php]

Merci de vos suggestions
Bonne soirée

Bernard