Page 1 sur 2
Afficher table entiere
Posté : 28 mars 2006, 09:02
par skyangel
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
Posté : 28 mars 2006, 09:25
par jpaul
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>";
}
Posté : 28 mars 2006, 09:33
par skyangel
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
Posté : 28 mars 2006, 09:34
par Cyrano
ça sent l'erreur au niveau de l'exécution de la requête : fais donc voir la requête SQL que tu utilises ?
Posté : 28 mars 2006, 09:35
par skyangel
ne serait ce pas mysql_num_fields ???
Posté : 28 mars 2006, 09:36
par Invité
ma requete ;
$result="SELECT * FROM ".$table;
quand je fais un echo^$result;
il me dit select * from alerte .
donc elle est correcte pour moi

Posté : 28 mars 2006, 09:38
par Cyrano
As-tu vérifié ta requête générée en essayant de l'exécuter directement dans phpMyAdmin par exemple ?
Posté : 28 mars 2006, 09:39
par skyangel
oui il me sort toute ma table .
Posté : 28 mars 2006, 09:41
par Cyrano
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.
Posté : 28 mars 2006, 09:43
par skyangel
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
Posté : 28 mars 2006, 09:45
par skyangel
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
Posté : 28 mars 2006, 09:47
par jpaul
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

Posté : 28 mars 2006, 10:06
par Invité
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
Posté : 28 mars 2006, 10:07
par Cyrano
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

erreur.
Posté : 28 mars 2006, 10:12
par jpaul
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é...
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

: ça me rassure
