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

Eléphanteau du PHP | 31 Messages

21 mai 2009, 07:33

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 !

ViPHP
AB
ViPHP | 5818 Messages

21 mai 2009, 16:27

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'];

Eléphanteau du PHP | 31 Messages

21 mai 2009, 17:43

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é ?

ViPHP
AB
ViPHP | 5818 Messages

21 mai 2009, 19:15

Pour bien visualiser le contenu d'un tableau (ici $p) tu peux faire
echo '<pre>';
print_r($p);
echo '</pre>';

Eléphanteau du PHP | 31 Messages

21 mai 2009, 19:29

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

ViPHP
ViPHP | 2287 Messages

21 mai 2009, 20:14

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).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphanteau du PHP | 31 Messages

22 mai 2009, 09:53

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.