Afficher table entiere

skyangel
Invité n'ayant pas de compte PHPfrance

28 mars 2006, 09:02

Bonjour,

J'aimerais afficher toutes mes tables entierements dans une interface graphique.

je n'arrive pas à avoir une présentation correcte.

Je voudrais qu'a la fin du tuples il ailla a la ligne.

et ainsi de suite.

j'ai cette partie de code mais apparemment c'est pas top .

Code : Tout sélectionner

while ($ligne_affiche = mysql_fetch_array($req_affiche,MYSQL_NUM)) { for($i=1;$i<=$totalRows_req;$i++) { if ($i<$arret[$table]) { echo '<td>'.$ligne_affiche[$i].'</td>'; } else { echo '</tr><tr>'; } } }
quel est la meilleur méthode pour cette execution .

En sachant que le nom de la table est une variable passé par GET.
et je connais le nombre de colonne pour chaque table stocké dauns un tableau $arret.

Merci de votre aide

Eléphant du PHP | 451 Messages

28 mars 2006, 09:25

J'ai été rechercher une fonction où j'affiche le contenu d'un result sous forme de tableau. Si ça peut t'aider :
function dump_result($result)
         {
         echo "<TABLE BORDER=1>";
         echo "<TR>";
         $j=0;
		 // Affichage des titres de colonnes
         while ($j < mysql_NumFields($result))
                {
                echo "<TD>";
                echo mysql_FieldName($result,$j);
                echo "</TD>";
                $j++;
                }
         echo "</TR>";
 		 // Affichage du contenu
         while($tableau=mysql_fetch_row($result))
               {
               echo "<TR>";
               while (list($key, $val) = each($tableau))
                      {
                      echo "<TD>";
                      echo $val;
                      echo "</TD>";
                      }
               echo "</TR>";
               }
         echo "</TABLE>";
         }
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

skyangel
Invité n'ayant pas de compte PHPfrance

28 mars 2006, 09:33

Ok merci j'ai testé
et voila mon erreur

Code : Tout sélectionner

Warning: mysql_numfields(): supplied argument is not a valid MySQL result resource in d:\wwwroot\1024\fonctions.php on line 54

Mammouth du PHP | 19672 Messages

28 mars 2006, 09:34

ça sent l'erreur au niveau de l'exécution de la requête : fais donc voir la requête SQL que tu utilises ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

skyangel
Invité n'ayant pas de compte PHPfrance

28 mars 2006, 09:35

ne serait ce pas mysql_num_fields ???

Invité
Invité n'ayant pas de compte PHPfrance

28 mars 2006, 09:36

ma requete ;
$result="SELECT * FROM ".$table;
quand je fais un echo^$result;

il me dit select * from alerte .


donc elle est correcte pour moi :)

Mammouth du PHP | 19672 Messages

28 mars 2006, 09:38

As-tu vérifié ta requête générée en essayant de l'exécuter directement dans phpMyAdmin par exemple ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

skyangel
Invité n'ayant pas de compte PHPfrance

28 mars 2006, 09:39

oui il me sort toute ma table .

Mammouth du PHP | 19672 Messages

28 mars 2006, 09:41

Alors fais voir le code à partir de la requête jusqu'à la ligne où tu essayes d'afficher qu'on puisse détecter une erreur éventuelle.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

skyangel
Invité n'ayant pas de compte PHPfrance

28 mars 2006, 09:43

ok

code de la page de la requete (visubdd.php )
<?php 
//on protege la page avce le script de securite
		$cfgProgDir =  'phpSecurePages/';
		include($cfgProgDir . "secure.php");
// on inclut les variables pour lees pages sécurisées

include ('variable.php');
//on inclut les fonctiosn 
require('fonctions.php');
$table=$_GET['table'];
//affichetable($table);
$result="SELECT * FROM ".$table;
dump_result($result);
?>
code de la fonctions (fonctions.php)
function dump_result($result) 
         { 
         echo "<TABLE BORDER=1>"; 
         echo "<TR>"; 
         $j=0; 
         // Affichage des titres de colonnes 
         while ($j < mysql_NumFields($result)) 
                { 
                echo "<TD>"; 
                echo mysql_FieldName($result,$j); 
                echo "</TD>"; 
                $j++; 
                } 
         echo "</TR>"; 
         // Affichage du contenu 
         while($tableau=mysql_fetch_row($result)) 
               { 
               echo "<TR>"; 
               while (list($key, $val) = each($tableau)) 
                      { 
                      echo "<TD>"; 
                      echo $val; 
                      echo "</TD>"; 
                      } 
               echo "</TR>"; 
               } 
         echo "</TABLE>"; 
         } 
merci de votre aide en tout cas

skyangel
Invité n'ayant pas de compte PHPfrance

28 mars 2006, 09:45

sinon j'ai modifie la fonction tel que la suite
function dump_result($result) 
         { 
		 $req=mysql_query ($result) ;
         echo "<TABLE BORDER=1>"; 
         echo "<TR>"; 
         $j=0; 
         // Affichage des titres de colonnes 
         while ($j < mysql_num_fields($req)) 
                { 
                echo "<TD>"; 
                echo mysql_num_fields($req,$j); 
                echo "</TD>"; 
                $j++; 
                } 
         echo "</TR>"; 
         // Affichage du contenu 
         while($tableau=mysql_fetch_row($req)) 
               { 
               echo "<TR>"; 
               while (list($key, $val) = each($tableau)) 
                      { 
                      echo "<TD>"; 
                      echo $val; 
                      echo "</TD>"; 
                      } 
               echo "</TR>"; 
               } 
         echo "</TABLE>"; 
         }

la le contenu des table s'affiche mais pas les entetes.
si ca peut vousq aidert

Eléphant du PHP | 451 Messages

28 mars 2006, 09:47

Tu n'a pas fai une requête mysql !!!
$result="SELECT * FROM ".$table; 
ca affecte la variable result !!!

A ta place je ferais :
$req="SELECT * FROM ".$table; 
$result=mysql_query ($req) ; 
Pour ne pas s'y perdre, vaut mieux appeler une requête req et un resultat result, autrement c'est le meilleurs moyen pour s'y perdre ;)
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Invité
Invité n'ayant pas de compte PHPfrance

28 mars 2006, 10:06

ok je modifie donc et je l avis fait car je me disais bien qu'il manquait qqch .

donc voici mon code de visubdd.php

Code : Tout sélectionner

<?php //on protege la page avce le script de securite $cfgProgDir = 'phpSecurePages/'; include($cfgProgDir . "secure.php"); // on inclut les variables pour lees pages sécurisées include ('variable.php'); //on inclut les fonctiosn require('fonctions.php'); $table=$_GET['table']; //affichetable($table); $req="SELECT * FROM ".$table; $result =mysql_query($req); dump_result($result); ?>
et voila fonctions.php

Code : Tout sélectionner

function dump_result($result) { echo "<TABLE BORDER=1>"; echo "<TR>"; $j=0; // Affichage des titres de colonnes while ($j < mysql_num_fields($result)) { echo "<TD>"; echo mysql_num_fields($result,$j); echo "</TD>"; $j++; } echo "</TR>"; // Affichage du contenu while($tableau=mysql_fetch_row($result)) { echo "<TR>"; while (list($key, $val) = each($tableau)) { echo "<TD>"; echo $val; echo "</TD>"; } echo "</TR>"; } echo "</TABLE>"; }

voila l'erreur qu'il me sort
Warning: Wrong parameter count for mysql_num_fields() in d:\wwwroot\1024\fonctions.php on line 57
et ca seulmeent pour les entetes et pas les valeurs de la table .

je cherche mais si vous avez une idee elle m'interresses.


Merci

Mammouth du PHP | 19672 Messages

28 mars 2006, 10:07

En d'autres termes, le paramètre que tu envoies à ta fonction est une requête SQL qui n'a pas été exécutée. Donc mysql_num_field() reçoit un paramètre qui n'est pas la ressource attendue, c'est à dire un retour de MySQL mais la requête SQL diretement dont elle ne peut rien faire :arrow: erreur.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 451 Messages

28 mars 2006, 10:12

Oups !!!
excuses, il faut remplacer mysql_num_fields par mysql_field_name :
echo mysql_num_fields($result,$j); 
par
echo mysql_field_name($result,$j); 
C'est une fonction qui m'avait servi a de la mise au point et il y a du y avoir une modif (erreur de copier coller probablement) et depuis je n'ai pas réutilisé... :oops:

He mais je viens de voir que j'avais bien mis mysql_field_name, c'est pas moi qui ai fait l'erreur de copier coller :lol: : ça me rassure ;)
Modifié en dernier par jpaul le 28 mars 2006, 10:35, modifié 1 fois.
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)