Interrogation BDD et traitement du résultat

legniarf
Invité n'ayant pas de compte PHPfrance

05 mai 2006, 12:40

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.

Eléphant du PHP | 493 Messages

05 mai 2006, 13:18

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

legniarf
Invité n'ayant pas de compte PHPfrance

05 mai 2006, 13:35

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".

Eléphant du PHP | 493 Messages

05 mai 2006, 13:37

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:

legniarf
Invité n'ayant pas de compte PHPfrance

05 mai 2006, 14:15

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 ?

legniarf
Invité n'ayant pas de compte PHPfrance

05 mai 2006, 16:48

Ç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 !