j'ai besoin d'aide pour afficher une requete... [PHP] - Programmation
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?
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]";
}
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"];
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 !!!
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
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!
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!!
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 ? 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 !!
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\"]";
}
}
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
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 ?
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
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!
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\"]";
}
}
Marsh Posté le 13-04-2001 à 15:01:03
y aurait un pb au niveau du
echo "$row[$nomchp]";
et
echo "$row[\"$nomchp\"]";
Marsh Posté le 13-04-2001 à 15:01:40
c'est lourd ces smilets, une parenthese a la fin du 2eme while
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
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!
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
Marsh Posté le 13-04-2001 à 15:27:50
je vois vraiment pas comment le code de tsr peut marcher faudrait m'expliquer
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
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\"] , ";
}
}
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!!
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
Marsh Posté le 13-04-2001 à 15:49:51
oui merde c'est vrai !
essaye comme ca :
echo ' $row_liste["$chps"] , ';
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)
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" );
Marsh Posté le 13-04-2001 à 16:08:18
non il faut que je fasse comme si je ne connaissait pas les champs!!!
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.
Marsh Posté le 13-04-2001 à 16:14:02
ok, est que tu peut utiliser ce script pour generer la liste ?
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 )
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!