[PHP] j'ai besoin d'aide pour afficher une requete...

j'ai besoin d'aide pour afficher une requete... [PHP] - Programmation

Marsh Posté le 13-04-2001 à 13:25:01    

$req=
 
"select tbl_informatique.*  
   
from tbl_informatique,tbl_type    
 
where tbl_type.Type='Moniteur'  
 
and tbl_informatique.Id_type=tbl_type.Id_type";
 
$requete= mysql_db_query("db_informatique",$req) or die ("mdr" );
 
 
 
j'aimerais afficher le resultat, c a d une table...
merci d'avance!

Reply

Marsh Posté le 13-04-2001 à 13:25:01   

Reply

Marsh Posté le 13-04-2001 à 14:04:39    

j'pense a un truc du genre...
require($nomchp);
while (list($num,$chps)=each($nomchp)
    {
       $req="select....";
       $requete=mysql_db_query("db_informatique",$req) or die ("mdr" );  
    }
echo "$requete";
 
vous en pensez quoi?

Reply

Marsh Posté le 13-04-2001 à 14:09:42    

moi je ferait plutot comme ca :
 
$req="select....";  
$reqliste=mysql_db_query("db_informatique",$req) or die ("mdr" );  
 
while($row_liste = mysql_fetch_row($reqliste))
    {
    echo "<br>$row_liste[0] $row_liste[1]";    
    }

Reply

Marsh Posté le 13-04-2001 à 14:18:01    

ouhai tu peux pas afficher une requete comme ca ... imagine que tu as plusieurs valeurs dans ta requete tu fais comment ?
 
en fait ta requete tu l'interpretes comme un tableau et tu accedes au differentes cases grace au nom de tes colonnes.
 
Ex: tu as une BD composé de 3 elements (nom, date, corps)
$row = mysql_fetch_row($reqliste);
echo $row["nom"];
echo $row["date"];
echo $row["corps"];

Reply

Marsh Posté le 13-04-2001 à 14:24:02    

Faudrait que tu expliques avec beaucoups plus de détails ce que tu souhaites faire, les liaisons de tes tables, etc...
 
-> EVITE DE METTRE DES REQUETES DANS DES BOUCLES, C'EST LOURD !!!

Reply

Marsh Posté le 13-04-2001 à 14:27:07    

oui je suis d'accord avec toi "la viper" c'était juste pour etre plus simple a comprendre :)

Reply

Marsh Posté le 13-04-2001 à 14:30:10    

en fait j'ai une table dont les champs sont mis a jour par l'utilisateur dc je ne peux utiliser le nom des champs
pour cela j'utilise la variable $nomchp
require('nomchp.php')
 
pour lire tous les champs y a une boucle
while (list($num,$chps)=each($nomchp) {...}
 
dites-moi si vous y voyez plus clair!

Reply

Marsh Posté le 13-04-2001 à 14:34:30    

en fait j'ai une table avec parex comme champs: type(imprimante, pc....) ,designation cout..etc
 
ds un premier tps l'utilisateur choisit le type dont il veut consulter la liste
 
et apres cela une table avec seulement un type doit apparaitre
c cette partie la que j'ai du mal a realiser!!

Reply

Marsh Posté le 13-04-2001 à 14:37:21    

baloo a écrit a écrit :

en fait j'ai une table dont les champs sont mis a jour par l'utilisateur dc je ne peux utiliser le nom des champs
pour cela j'utilise la variable $nomchp
require('nomchp.php') [...]




t sûr de ton coup là ? Les utilisateurs qui modifient la structure des tables ? :sarcastic: Ce serait pas plutôt le contenu des champs qu'ils mettent à jour ? Parce moi ça me ferait un peu peur de laisser des utilisateurs modifier mes tables !! :ouch:

Reply

Marsh Posté le 13-04-2001 à 14:42:50    

moi je ferait plutot comme ca alors:  
 
$req="select * from ....";  
$reqliste=mysql_db_query("db_informatique",$req) or die ("mdr" );    
 
while($row_liste = mysql_fetch_row($reqliste))  
    {  
    while (list($num,$chps)=each($nomchp)  
        {  
        echo "<br>$row_liste[\"$nomchp\"]";  
        }
    }

Reply

Marsh Posté le 13-04-2001 à 14:42:50   

Reply

Marsh Posté le 13-04-2001 à 14:49:25    

ok j'avais pas vu ton dernier post...
 
mais je vois pas trop où est ton pb :sarcastic:  
en fait ta requête semble bonne, pour afficher tous les résultats il suffit de faire une petite boucle :
 
[je suppose que ta requête '$requete' retourne bien un résultat]
 
while($row = mysql_fetch_array($requete)) {
   echo "Champ 1 : $row[nom_champ1]<br>\n";
   echo "Champ 2 : $row[nom_champ2]<br>\n";
   [etc...]
   echo "<hr>\n";
}
 
la boucle continuera tant que mysq_fetch_array() retournera un résultat et t'affichera tous les champs ligne par ligne en séparant chaque enregistrement par un ligne horizontale (<hr> ).
C pas qq chose comme ça que tu veux ?

Reply

Marsh Posté le 13-04-2001 à 14:50:43    

ça me sort une erreur:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /home/websphn/Sphn/Dapnia/Patrimoine/Nico/xxx.php on line 22

Reply

Marsh Posté le 13-04-2001 à 14:52:08    

l'erreur c pour la syntaxe de tsr

Reply

Marsh Posté le 13-04-2001 à 14:53:06    

zebra3 je souhaite que ce soit la table qui s'affiche...et la requete marche je l'ai testee sur phpMyAdmin!

Reply

Marsh Posté le 13-04-2001 à 15:00:56    

$req="select * from ....";    
escuse moi j'avais oublier une parenthese !
 
$reqliste=mysql_db_query("db_informatique",$req) or die ("mdr" );    
 
while($row_liste = mysql_fetch_row($reqliste))  
    {  
    while (list($num,$chps)=each($nomchp)<b> )</b>  
        {  
        echo "<br>$row_liste[\"$nomchp\"]";  
        }  
    }

Reply

Marsh Posté le 13-04-2001 à 15:01:03    

y aurait un pb au niveau du
echo "$row[$nomchp]";
 
et
 
echo "$row[\"$nomchp\"]";

Reply

Marsh Posté le 13-04-2001 à 15:01:40    

c'est lourd ces smilets, une parenthese a la fin du 2eme while

Reply

Marsh Posté le 13-04-2001 à 15:02:48    

baloo a écrit a écrit :

zebra3 je souhaite que ce soit la table qui s'affiche...et la requete marche je l'ai testee sur phpMyAdmin!




oki doki :)  
t'as qu'à regarder le source de phpMyAdmin :D

Reply

Marsh Posté le 13-04-2001 à 15:03:17    

reqliste c pas obligatoire???
moi j'ai laisse requete!

Reply

Marsh Posté le 13-04-2001 à 15:05:57    

zebra3 a quoi ça va me servir?
 
la je suis en stage depuis lundi...et c depuis ce jour que je fais du php!!!
c bien dur!

Reply

Marsh Posté le 13-04-2001 à 15:07:27    

baloo> ben tu veux pas afficher la table comme le fait phpMyAdmin ? c k j'fatigue sinon :crazy:

Reply

Marsh Posté le 13-04-2001 à 15:13:05    

si exactement!!!

Reply

Marsh Posté le 13-04-2001 à 15:16:03    

tsr ça me sort l'erreur citee au-dessus!

Reply

Marsh Posté le 13-04-2001 à 15:26:45    

j'vois pas trop a quoi ça me sert le source???

Reply

Marsh Posté le 13-04-2001 à 15:27:50    

je vois vraiment pas comment le code de tsr peut marcher faudrait m'expliquer  :crazy:  
 
m'enfin baloo si tu connais la structure des tables et que celle ci est définie (ce qui est souhaitable parce que si les utilisateurs la modifient sans cesse bonjour le b****l ;)) tu devrais t'en sortir avec ce que je t'ai dit + haut en intégrant les sorties dans une table html

Reply

Marsh Posté le 13-04-2001 à 15:30:48    

essaye comme ca , et dit moi a koi correspond la ligne 22
 
 
$nomchp = array("id","nom",....);
reset($nomchp);
$req="select * from ....";    
$requete=mysql_db_query("db_informatique",$req) or die ("mdr" );    
 
while($row_liste = mysql_fetch_row($requete))  
    {  
    echo "<br>";
    while (list($num,$chps)=each($nomchp))
        {  
        echo " $row_liste[\"$chps\"] , ";  
        }  
    }

Reply

Marsh Posté le 13-04-2001 à 15:33:32    

la ligne 22 c  
echo " $row_liste[\"$chps\"]";

Reply

Marsh Posté le 13-04-2001 à 15:35:02    

oui les utilisateurs la modifient constamment, c le but!
mais ils sont serieux...de toute façon c pour eux...et c des scientifiques!!

Reply

Marsh Posté le 13-04-2001 à 15:39:04    

tsr tjs la meme erreur, meme ligne
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /home/websphn/Sphn/Dapnia/Patrimoine/Nico/xxx.php on line 22

Reply

Marsh Posté le 13-04-2001 à 15:49:51    

oui merde c'est vrai !
essaye comme ca :
 
echo ' $row_liste["$chps"] , ';

Reply

Marsh Posté le 13-04-2001 à 15:53:03    

la virgule c fait expres?

Reply

Marsh Posté le 13-04-2001 à 15:54:52    

c'est juste pour l'affichage du resultat

Reply

Marsh Posté le 13-04-2001 à 15:55:45    

4* la meme erreur
Warning: Variable passed to each() is not an array or object in /home/websphn/Sphn/Dapnia/Patrimoine/Nico/xxx.php on line 19
 
Warning: Variable passed to each() is not an array or object in /home/websphn/Sphn/Dapnia/Patrimoine/Nico/xxx.php on line 19
 
Warning: Variable passed to each() is not an array or object in /home/websphn/Sphn/Dapnia/Patrimoine/Nico/xxx.php on line 19
 
Warning: Variable passed to each() is not an array or object in /home/websphn/Sphn/Dapnia/Patrimoine/Nico/xxx.php on line 19
 
 
ligne 19
while (list($num,$chps)=each($nomchp)

Reply

Marsh Posté le 13-04-2001 à 15:59:30    

pour la premiere ligne il faut sue tu remplissent la variable $nomchp avec la liste des champs de la table
 
ex:
$nomchp = array("id","nom","prenom" );

Reply

Marsh Posté le 13-04-2001 à 16:08:18    

non il faut que je fasse comme si je ne connaissait pas les champs!!!

Reply

Marsh Posté le 13-04-2001 à 16:08:38    

c ça qui est dur!

Reply

Marsh Posté le 13-04-2001 à 16:11:01    

ok, j'avais compris , mais il faut faire une requete pour lister les champs de la table et les inserer dans l'array $nomchp.
je me renseigne pour faire la requete.

Reply

Marsh Posté le 13-04-2001 à 16:11:47    

pour lister les chps je me sert du script nomchp.php!

Reply

Marsh Posté le 13-04-2001 à 16:14:02    

ok, est que tu peut utiliser ce script pour generer la liste ?

Reply

Marsh Posté le 13-04-2001 à 16:14:35    

baloo a écrit a écrit :

oui les utilisateurs la modifient constamment, c le but!
mais ils sont serieux...de toute façon c pour eux...et c des scientifiques!!




ok ça me semble qd même dangeureux pour l'intégrité de tes tables mais bon... faudra leur faire confiance !
 
en attendant je t'ai pondu la solution à ton pb :
 
<html>
<head>
<title>Test Liste champs d'une table</title>
</head>
<body>
<?php
$host = "localhost";
$user = "";
$mdp = "";
$bdd = "";
$table = "";
 
if(!mysql_pconnect($host, $user, $mdp)){
 echo "Erreur connection a ".$host;
}
if(!mysql_select_db($bdd)){
 echo "Erreur selection bdd ".$bdd;
}
 
$i = 0;
$Req = mysql_list_fields($bdd, $table);
$nb_champs = mysql_num_fields($Req);
 
echo "<table border=1>\n";
 
echo "  <tr>\n";
for($rg = mysql_field_name($Req, $i); $i < $nb_champs; $i++) {
 echo "    <th>$rg</th>\n";
}
echo "  </tr>\n";
 
$j = 0;
$Req2 = mysql_query("SELECT * FROM $table" );
while($rang = mysql_fetch_row($Req2)) {
 echo "  <tr>\n";
 for($j = 0; $j < $nb_champs; $j++) {
  echo "    <td>$rang[$j]</td>\n";
 }
 echo "  </tr>\n";
}
 
echo "</table>\n";
?>
</body>
<html>
 
normalement ça marche tout bien ! ça t'affiche le nom des champs puis ts les résultats comme ds phpMyAdmin (et j'ai même pas regardé le source pour faire ça :D)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed