Page 1 sur 1

Interrogation BDD et traitement du résultat

Posté : 05 mai 2006, 12:40
par legniarf
Bonjour,

J'ai une BDD qui est un index des rues de Paris. Je ne sais pas comment l'interroger et comment traiter la réponse.

Par exemple pour afficher dans quel arrondissement se trouve la place des Abesses, voici comment je m'y prends :
<html>
<head>
</head>
<body>
<?php

$db = mysql_connect(localhost, root, password);

mysql_select_db(base_test, $db);

$req = "SELECT arrondissement
FROM index_des_rues
WHERE nom_de_la_voie = place des Abesses";

$res = mysql_query($req);

echo "L'arrondissement est : $res.";

mysql_close();

?>
</body>
</html>
Mon navigateur affiche alors :
L'arrondissement est : .
Comme je n'ai qu'un seul résultat à afficher, je me disais que je n'avais pas besoin de faire une boucle avec while comme je le vois sur les différents tutoriaux que j'ai consulté sur le web.

Posté : 05 mai 2006, 13:18
par Vaedan
Il te manque un pti quelquechose !

Code : Tout sélectionner

SELECT arrondissement FROM index_des_rues WHERE nom_de_la_voie = "place des Abesses" LIMIT 1
De simples guillemets :D

Posté : 05 mai 2006, 13:35
par legniarf
OK, du coup j'ai mis des apostrophes et des guillemets :
<html>
<head>
</head>
<body>
<?php

$db = mysql_connect(localhost, root, password);

mysql_select_db(base_test, $db);

$req = 'SELECT arrondissement
FROM index_des_rues
WHERE nom_de_la_voie = "place des Abesses"
LIMIT 1';

$res = mysql_query($req);

echo "L'arrondissement est : $res.";

mysql_close();

?>
</body>
</html>
Mais là le navigateur affiche :
L'arrondissement est : Resource id #3.
Et je ne sais pas ce que signifie ce "Resource id #3".

Posté : 05 mai 2006, 13:37
par Vaedan
mysql_query() permet d'exécuter une requête sur le serveur MySQL. Toutefois elle n'en extrait pas les données ! Je te conseille d'aller faire un tour du côté de mysql_fetch_array(), mysql_fetch_row() et mysql_result().

EDIT: correction de S dans le nom des fonctions :lol:

Posté : 05 mai 2006, 14:15
par legniarf
Merci, j'ai commencé à regarder ces trois fonctions. Si je n'ai qu'une seule donnée à extraire, est-ce que c'est "mysql_result()" que je dois utiliser plutôt que les deux autres fonctions ?

Posté : 05 mai 2006, 16:48
par legniarf
Ça y est, j'ai réussi, voici mon nouveau code :
<html>
<head>
</head>
<body>
<?php

$db = mysql_connect(localhost, root, password);

mysql_select_db(base_test, $db);

$sql = 'SELECT arrondissement
FROM index_des_rues
WHERE nom_de_la_voie = "place des Abesses"';

$req = mysql_query($sql)
or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

$data = mysql_fetch_array($req);

mysql_free_result ($req);
mysql_close ();

?>

L'arrondissement est :<? echo $data['arrondissement'];?>.
</body>
</html>
Et là, ça marche !