Page 1 sur 1

Problème d'extraction du bdd sur une page php

Posté : 23 juin 2006, 17:36
par neo765
Bonjour,

Quand je veux ouvrir ma page test.php, ya rien qui s'affiche

Mon code php :
<html>
<head>
<title> test.php </title>

<?php
$link = mysql_connect('serveur', 'nom_bdd', 'mdp');
$db_selected = mysql_select_db('nom_bdd', $link);
$query = sprintf("SELECT * FROM livres_audio WHERE id=1"),
$result = mysql_query($query),
mysql_free_result($result),
?>

</head>
<body>
<?php 
echo $livres_audio->titre 
?>
<br>
<?php 
echo $livres_audio->auteur 
?>
<br>
<?php 
echo $livres_audio->image 
?>
</body>
</html>
Merci

Posté : 23 juin 2006, 17:59
par Henri
Il te manque la ligne qui permet de transférer le résultat de la requête $result dans la variable $livres_audio.

jette un coup d'oeil à http://www.php.net/manual/fr/function.m ... object.php

Posté : 23 juin 2006, 18:38
par neo765
<?php
$link = mysql_connect('serveur', 'nom_bdd', 'mdp');
$db_selected = mysql_select_db('nom_bdd', $link);
$query = sprintf("SELECT * FROM livres_audio WHERE id=1");
$result = mysql_query($query);
$row = mysql_fetch_object($result);
mysql_free_result($result);
?>
Résulta identique

J'ai ajouté la fonction, mais il faut modifier "$query" "$result" ?

Merci

Posté : 24 juin 2006, 09:20
par Henri
$query, c'est du texte "select ...";
$result, c'est un tableau en mémoire, inutilisable directement, avec le résultat de ta requête
$row, c'est dans ton cas, l'objet qui contient les résultats

Question : Tu stockes le résultat dans $row et tu affiches $livres_audio ?

Posté : 24 juin 2006, 14:52
par neo765
J'ai dans ma bdd une table qui se nomme livres_audio, celle çi à 4 collones titre ; auteur ; image ; prix

Après je ne suis encore assez à l'aise pour répondre à tes questions, merci de me guider.

Merci

Posté : 24 juin 2006, 15:06
par Vorkosigan
J'ai dans ma bdd une table qui se nomme livres_audio, celle çi à 4 collones titre ; auteur ; image ; prix
Après je ne suis encore assez à l'aise pour répondre à tes questions, merci de me guider.
Relis ce qui a ete ecrit plus haut.

Le resultat de ta requete n'est pas dans la variable $livres_audio mais dans la ligne $row... c'est donc son contenu qu'il te faut afficher.

Posté : 24 juin 2006, 15:38
par neo765
J'ai dans ma bdd une table qui se nomme livres_audio, celle çi à 4 collones titre ; auteur ; image ; prix
Après je ne suis encore assez à l'aise pour répondre à tes questions, merci de me guider.
Relis ce qui a ete ecrit plus haut.

Le resultat de ta requete n'est pas dans la variable $livres_audio mais dans la ligne $row... c'est donc son contenu qu'il te faut afficher.
Ok, mais comment procéder ? Je débute completement dans mysql.

Merci

Posté : 24 juin 2006, 19:05
par Vorkosigan
Ok, mais comment procéder ? Je débute completement dans mysql.
Pourquoi est-ce que l'on t'a donne le lien suivant a ton avis ? :roll:
http://www.php.net/manual/fr/function.m ... object.php

Posté : 24 juin 2006, 19:15
par neo765
mysql_fetch_object ( resource result )
C'est quoi la "resource result", je dois le remplacer par quoi ?

Posté : 26 juin 2006, 09:16
par Henri
C'est quoi la "resource result", je dois le remplacer par quoi ?
Par ... $result, mais tu l'as déjà fait. Oui, ta table s'appelle livres_audio, mais ça c'est dans MySQL. On est dans PHP maintenant.

Relis bien ton code :
$row = mysql_fetch_object($result); 
Tu viens de transférer le résultat de ta requête dans une variable qui s'appelle $row. Où est-ce que tu l'utilises par la suite ? A contrario, tu fais des affichages
echo $livres_audio->titre 
D'où sort cette variable $livres_audio ? Comment a t'elle été initialisée ? N'oublie pas que nous sommes en PHP et pas en MySQL.

Fais le parallèle avec l'exemple qui est sur la page dont je t'ai donné le lien
<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select * from mytable");
while ($row = mysql_fetch_object($result)) {
   echo $row->user_id;
   echo $row->fullname;
}
mysql_free_result($result);
?> 

Posté : 26 juin 2006, 16:24
par neo765
Merci beaucoup pour ta réponse,

Il me met :
Parse error: syntax error, unexpected T_STRING in /home/coursdes/www/boutique/test.php on line 10
.

Ligne 10 :
mysql_free_result($result);
--------------------------------------------------------------------------------

J'ai fais le parallele avec le code donné (que j'ai modifié)
while ($row = mysql_fetch_object($result)) {
   echo $row->user_id;
   echo $row->fullname;
} 
par
$row = mysql_fetch_object($result)
Merci