Page 1 sur 1

Créer un tableau à partir d'une requête MySQL

Posté : 21 mai 2009, 07:33
par cyberlp
Bonjour,

J'aimerais savoir comment faire pour obtenir un tableau à partir d'une requête simple sur une base MySQL.

Exemple :

Code : Tout sélectionner

$query = mysql_query("SELECT titre FROM livres");
et j'aimerais qu'il m'affiche la liste des titres sélectionnés dans la BDD dans une variable du type :

Code : Tout sélectionner

$p = array("titre1", "titre2", "titre3"...);

Merci par avance !

Posté : 21 mai 2009, 16:27
par AB
Tu fais comme si tu voulais afficher tes résultats sauf que tu les mets dans un tableau
$p = array();
 
while($result = mysql_fetch_assoc($query)) $p[] = $result['titre'];

Posté : 21 mai 2009, 17:43
par cyberlp
Merci, par contre je ne comprends pas pourquoi :
$query = mysql_query("SELECT titre FROM livres") or die(mysql_error());
$p=array();
while ($result = mysql_fetch_assoc($query)) $p[] = $result['titre'];

$q = $_POST['ID_livre']; $i=0;
if ($q != "") {
  echo '<ul>';
  foreach($p as $prn) {
    if (substr(strtolower($prn),0,strlen($q)) == strtolower(stripslashes($q))) {
      echo '<li><a href="#" onclick="return false">'.htmlentities($prn).'</a></li>';
      if (++$i >= 10) die('<li>...</li></ul>');
    }
  }
  echo '</ul>';
}
ne marche pas

alors que si j'appelle un tableau directement et que je remplace les 3 premières lignes par disons :
$p = array("Notre-Dame De Paris", "Roméo et Juliette");
ça marche

Ca vient de la façon dont l'array est formaté ?

Posté : 21 mai 2009, 19:15
par AB
Pour bien visualiser le contenu d'un tableau (ici $p) tu peux faire
echo '<pre>';
print_r($p);
echo '</pre>';

Posté : 21 mai 2009, 19:29
par cyberlp
Alors, ça donne un tableau du genre :

Array
(
[0] => Test
[1] => TesT1
[2] => TesT2

)


ce que donne très exactement le tableau classique non tiré de MySQL.

Je ne comprends absolument pas pourquoi il ne veut pas le prendre en considération...

Posté : 21 mai 2009, 20:14
par Calimero
Bonjour,
Je ne comprends absolument pas pourquoi il ne veut pas le prendre en considération...
Ce genre de phrase ne nous donne aucun indice permettant de t'aider. Sois précis et décris-nous ce que tu observes.

Traditionnellement, quand un code comme le tien ne fonctionne pas comme attendu, soit on commente des lignes de code jusqu'à trouver laquelle empêchait le code de fonctionner, soit on ajoute des echo à toutes les lignes pour en déduire par où on passe (et par élimination, par où on ne passe pas).

Posté : 22 mai 2009, 09:53
par cyberlp
Tu as raison, mais en fait le problème venait d'un accès à la base de données qu'on m'a signalé par ailleurs.

Merci en tout cas pour votre aide.