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

Résolu/Fermé
nico_2712 - 5 févr. 2009 à 18:54
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 - 6 févr. 2009 à 05:06
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();

7 réponses

imen7 Messages postés 34 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 11 février 2009 4
5 févr. 2009 à 19:21
Salut ,
tu a testé la requête dans phpmyadmin ?

0
Je viens de tester, ça marche sous phpmyadmin :s
0
nico_2712 > nico_2712
5 févr. 2009 à 20:17
MAIS ca ne marche toujours pas TOUT COURT :(
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
5 févr. 2009 à 21:21
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..
0
j'ai mis
"echo mysql_query($request);"
devant "$result=mysql_query($request);"

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

Je ne comprends pas.
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
5 févr. 2009 à 21:43
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)
0
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
5 févr. 2009 à 21:58
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é

0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
5 févr. 2009 à 22:13
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)
0
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?
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
6 févr. 2009 à 05:06
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 ;-)
0