Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2008, 08h27   #1
Nouveau Membre du Club
 
Étudiant
Inscription : février 2007
Messages : 95
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 95
Points : 28
Points : 28
Envoyer un message via AIM à Perceuse-Killer Envoyer un message via MSN à Perceuse-Killer Envoyer un message via Skype™ à Perceuse-Killer
Par défaut [SQL] Affichage du résultat d'une requête

Bonjour à tous.

J'ai un petit souci avec l'affichage du résultat d'une requête SQL.
En fait, mon utilisateur dispose d'un menu sur lequel il peut choisir quelle est la table de la base qu'il souhaite consulter.

Ceci affiche la liste des tables auxquelles l'utilisateur a accès sur le menu, et passe l'id de la table en paramètre via l'url :

Code :
echo '<a href="table.php?id='.urlencode($ligne["idSITable"]). '">'.$ligne["idSITable"].'</a><br />';
Dans la page suivante table.php (qui affiche la table sélectionnée), je récupère l'id avec :

Ma requête pour l'affichage de la table est celle-ci :

Code :
"select * from $id where ....";
C'est là que j'ai un souci car pour l'affichage je ne peux pas mettre un nom de champ, sachant que je ne sais pas quelle est la table que va choisir d'afficher l'utilisateur, comme ceci :

Code :
echo $ligne['Produit']. "<br />";
J'ai pensé à mettre le numéro des champs, mais cela ne fonctionne pas (rien ne s'affiche).

Code :
echo $ligne[1].<br />";
Qui aurait une idée pour que la table soit affichée quelque soit le choix de l'utilisateur sur la page de menu ?

Merci par avance.
Perceuse-Killer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 10h02   #2
Membre actif
 
Inscription : août 2002
Messages : 194
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 194
Points : 194
Points : 194
Envoyer un message via MSN à Léortien
Citation:
Envoyé par Perceuse-Killer Voir le message
J'ai pensé à mettre le numéro des champs, mais cela ne fonctionne pas (rien ne s'affiche).

Code :
echo $ligne[1].<br />";
tu récupères comment les enregistrements
par mysql_fetch_assoc ? mysql_fetch_row? mysql_fetch... ?

si tu utilises un mysql_fetch_assoc en disant d'afficher $ligne[1]
tu lui demandes d'afficher le contenu du champ dont le nom est 1
et comme il ne trouve pas de champ appelé 1 il n'affiche rien

il faut utiliser mysql_fetch_row si tu veux que ta commande affiche le premier champ
(ou alors le dernier mysql_fetch.. que j'ai oublié qui permet de faire aussi bien du row que du assoc )

ça pourrait être ça étant donné que tu n'as pas affiché comment tu faisais

après si jamais le nombre de champs à afficher est variable faudra se pencher vers des fonctions complémentaires pour le gérer
__________________
Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait.
(\ _ /)
(='.'=) Voici Lapinou. Aidez le à conquérir le monde
(")-(") en le reproduisant.


Spidercochon, spidercochon, il peut marcher au plafond
...MM ......Voici Spidercochon. Aidez le à conquérir le monde
E(....)~....en le reproduisant.
...w
Léortien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 14h00   #3
Nouveau Membre du Club
 
Étudiant
Inscription : février 2007
Messages : 95
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 95
Points : 28
Points : 28
Envoyer un message via AIM à Perceuse-Killer Envoyer un message via MSN à Perceuse-Killer Envoyer un message via Skype™ à Perceuse-Killer
Tout d'abord merci Léortien pour ta disponibilité.

Citation:
Envoyé par Léortien Voir le message
tu récupères comment les enregistrements
par mysql_fetch_assoc ? mysql_fetch_row? mysql_fetch... ?
Je récupère en effet les enregistrements par mysql_fetch_assoc()...
C'était bel et bien avec un mysql_fetch_row qu'il fallait procéder, bien vu.

Citation:
Envoyé par Léortien Voir le message
après si jamais le nombre de champs à afficher est variable faudra se pencher vers des fonctions complémentaires pour le gérer
C'est-à-dire ? ça serait avec des if imbriqués ? Si c'est telle table alors afficher tels champs ?

Merci encore.

Bonne journée
Perceuse-Killer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 15h52   #4
Membre éclairé
 
Homme Damien Attanasio
Développeur informatique
Inscription : février 2007
Messages : 340
Détails du profil
Informations personnelles :
Nom : Homme Damien Attanasio
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Transports

Informations forums :
Inscription : février 2007
Messages : 340
Points : 307
Points : 307
Personnellement j'utilise toujours mysql_fetch_array($resultat).

Ca te permet de choisir si tu veux un tableau de tes colonnes par nom, par numéro ou les 2.

Pour le faire par nom mysql_fetch_array($resultat,MYSQL_ASSOC)
Par numéro mysql_fetch_array($resultat,MYSQL_NUM)
Les 2 mysql_fetch_array($resultat) ou mysql_fetch_array($resultat,MYSQL_BOTH)

Pour afficher un tableau de ta table avec le nom des colonnes etc...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$requete = "SELECT * FROM tablemystere";
$resultat = mysql_query($requete);
echo '<table>';
echo '<tr>';
for($i=0;$i<mysql_num_fields($resultat);$i++)
echo '<th>'.mysql_field_name($resultat,$i).'</th>';
echo '</tr>';
while($ligne = mysql_fetch_array($resultat,MYSQL_ASSOC))
{
echo '<tr>';
foreach($ligne as $valeur)
echo '<td>'.$valeur.'</td>';
echo '</tr>';
}
J'ai pas testé le code mais ça me parait pas trop pourri
madevilts est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 09h50   #5
Nouveau Membre du Club
 
Étudiant
Inscription : février 2007
Messages : 95
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2007
Messages : 95
Points : 28
Points : 28
Envoyer un message via AIM à Perceuse-Killer Envoyer un message via MSN à Perceuse-Killer Envoyer un message via Skype™ à Perceuse-Killer
Bonjour à tous,

chapeau l'artiste madevilts, ça marche du tonnerre !!

Merci beaucoup à vous deux.

Très bonne journée.
Perceuse-Killer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h52.


 
 
 
 
Partenaires

Hébergement Web