Rechercher : dans
Par :

Requete PHP SQL qui n'affiche rien, même pas

Dernière réponse le 6 fév 2009 à 05:06:56 nico_2712, le 5 fév 2009 à 18:54:50 
 Signaler ce message aux modérateurs

Bonjour,

Je suis entrain d'essayer de faire des requetes sql via php et je bloque...j'avais deja réussis le meme genre de lecture de la base mais là...après avoir parcouru le net entre les fetch assoc array row et j'en passe...je n'ai plus de message d'erreur mais rien ne s'affiche!

Il y a la table Compte qui possède Nom, Prenom1, Date_Naissance, Num_Matricule (clé primaire autoincrementée)
Un autre table Ternaire (table d'association) qui possède Num_Matricule, Cycle et Annee


Voici mon code:
//On se connecte à la base de données
mysql_connect("localhost", "root", "");
mysql_select_db("bdda2");

// On récupère nom, prenom, date de naissance, cycle et année de cycle:

$request= "SELECT Nom,Prenom1,Date_Naissance,Cycle,Annee
FROM Compte, Ternaire
WHERE Compte.Num_Matricule = '.$num_matricule.'
AND Compte.Num_Matricule=Ternaire.Num_Matricule";

$result=mysql_query($request);
while($ligne = mysql_fetch_array($result))
{

$nom= $ligne['Nom'];
$prenom1 = $ligne['Prenom1'];
$date_naissance = $ligne['Date_Naissance'];
$cycle = $ligne['Cycle'];
$année = $ligne['Annee'];

echo "Numero ".$id.": ".$prenom1.$nom." né le ".$date_naissance." étudie en année ".$année." de ". $cycle." <br />";


Merci si vous pouviez m'éclairer un petit peu :)
Cordialement, nicolas ^^
}

mysql_close();

Configuration: Windows XP
Firefox 3.0.5

Meilleures réponses pour « Requete PHP SQL qui n'affiche rien, même pas » dans :
[Webmaster] Afficher facilement le code php/xhtml de vos pages VoirSi vous voulez proposer a vos visiteurs de voir la source de vos fichiers (PHP ou HTML), il y a plusieurs solutions. En php Afficher le code php Afficher le code html En html Informations Voir aussi En php Afficher le code php La...

1

imen7, le 5 fév 2009 à 19:21:59

Salut ,
tu a testé la requête dans phpmyadmin ?

Si après avoir lu uniquement les commentaires d'un programme vous n'en comprenez pas le fonctionnement, jetez le tout !

Répondre à imen7

2

nico_2712, le 5 fév 2009 à 19:30:45

Je viens de tester, ça marche sous phpmyadmin :s

Répondre à nico_2712

3

nico_2712, le 5 fév 2009 à 20:17:09

MAIS ca ne marche toujours pas TOUT COURT :(

Répondre à nico_2712

4

atspinto, le 5 fév 2009 à 21:21:01

Slut.

Il faut savoir ce ke tu executes comme requete...
affiches la dans ton navigateur avec un echo juste avant de l'executer...

Et juges par toi mm..
Never try It, Always do It;  share your knowledge

Répondre à atspinto

5

nico_2712, le 5 fév 2009 à 21:31:33

J'ai mis
"echo mysql_query($request);"
devant "$result=mysql_query($request);"

j'obtient l'affichage de "Resource id #3"

Je ne comprends pas.

Répondre à nico_2712

6

lewis34, le 5 fév 2009 à 21:43:21

Pourqoui tu t'embete comme ça ??
tu rajoute simplement 2 champs a ta table compte Cycle et Annee

sinon utilise la clause joint, mais a mon avis, tu cherche la difficulté.. ;-)

$req= "SELECTNum_matricule, Nom,Prenom1,Date_Naissance,Cycle,Annee
FROM Compte WHERE Compte.Num_Matricule = '.$num_matricule.'";

$res=mysql_query($req);
while(list($id, $nom, $prenom1,$date_Naissance,$cycle,$annee)=mysql_fetch_array($res))
{

echo "Numero ".$id.": ".$prenom1.$nom." né le ".$date_naissance." étudie en année ".$annee." de ". $cycle." <br />";
}



voila un code plus simple qui devrais marcher

(evite d'employer des accents dans tes variable==> $année c'est pas bon met $annee)

Répondre à lewis34

7

nico_2712, le 5 fév 2009 à 21:48:10

Non mais c'est qu'en fait c'est une partie des 18 tables de la base :)
La relation Ternaire est liée avec une entité Fac_Service_Info et une personne peut avoir 2 statuts différents et des cycles diffférents et des années de cycle différentes...
Enfin j'avais concu le truc comme ça (enfin on est plusieurs c'est pour un travail à rendre) et on a pas trouvé mieux d'un point de vue conceptuel...après on est pas des pros mais...faut voir le sujet tordu qui ne ressemble en rien a un cahier des charges qu'on nous a pondu la!

Avec la clause Join en fait j'enleve l'égalité qui lie les tables et je met JOIN WITH c'est ça?
Compte JOIN WITH Ternaire ?

Répondre à nico_2712

8

atspinto, le 5 fév 2009 à 21:58:59

T'as pas trop compris le truc...

le echo devait etre fait avant l'execution et non après... c'est juste pr te montrer que t'as pas bien joué avec les ' et "

$request= "SELECT Nom,Prenom1,Date_Naissance,Cycle,Annee
FROM Compte, Ternaire
WHERE Compte.Num_Matricule = '.$num_matricule.'
AND Compte.Num_Matricule=Ternaire.Num_Matricule";

tu dois plutot etre uniforme dans ton truc et faire plutot

$request= "SELECT Nom,Prenom1,Date_Naissance,Cycle,Annee
FROM Compte, Ternaire
WHERE Compte.Num_Matricule = ' ".$num_matricule." '
AND Compte.Num_Matricule=Ternaire.Num_Matricule";

J'ai mis des espaces pr bien faire la difference..

et tu mets juste un echo genre
echo $request;
/* avant de faire ton execution */
$res=mysql_query($request);

tu verras toute la difference

l'affichage de "Resource id #3" : te montre ke ta requete s'est bien éxécuté

share your knowledge

Répondre à atspinto

9

lewis34, le 5 fév 2009 à 22:13:09

18 tables c'est rien , a mon avis revoit plutot la structures de tes tables en fonction de ton cahiers des charges, personellement je n'emploie que tres rarement join (au boulot)

Répondre à lewis34

10

nico_2712, le 5 fév 2009 à 23:19:26

Désolé pour la réponse tardive...mon PC a fait des siennes...il va pas tarder a finir contre le mur (genre 15min d'attente pour passer d'une fenetre a l'autre avec le disque dur qui s'emballe! mémoire virtuelle insuffisante? desfois il me met ce message...bref ce n'estp as le sujet!)

Donc un GRAND merci, je vois que j'aurais mieux fais de prendre du recul, surtout que j'avais deja fais ce type de requete mais je pensais que l'erreur venait du code de retransmission du resultat. MErci encore

Au passage, j'ai une autre question (je viens d'envoyer le rapport au prof donc cest plus personnel)...dans le sujet il y avait une table serveur qui pouvait etre accédé par tout compte.
Enin un compte a acces a un ou plusieurs serveurs et un serveur est accessible par 1 ou plsuieurs comptes.

Mais apres dans les questions il demandait de pouvoir verifier pour 1 compte: a quels serveurs a t il accédé?
C'est une notion d'historique...mais en fait dans la réalité, comment ça se passe ce genre de chose?
Historiques stockés dans la base? un attribut dateheure sur la liaison compte-serveur?

Juste par curiosité...
Merci encore.

PS comment je fais pour mettre résolu sans être inscris?

Répondre à nico_2712

11

 lewis34, le 6 fév 2009 à 05:06:56

En general tout bon serveur qui se respecte possede son fichier de log, dans lequel tu a plein d'info, no, tament qui s'est connecté, a quelle heure quel reprtoire ont été vu etc..;, donc il est tres facile de savoir ce genre de renseignement.

il suffit juste de consulter le log,une petite requete toute simple pou rlire le fichier texte et tu stocke tes resultats dans une BD, le tour est joué

je contact quelqu'un pour le resolu ;-)

Répondre à lewis34