recuperer resultat requete mysql dans tableau associatif dont on definit la cle

Petit nouveau ! | 2 Messages

31 déc. 2007, 11:38

Bonjour,

Je cherche à sauvegarder dans un tableau associatif le resultat d'une requete MYSQL mais je souhaite pouvoir choisir la valeur de la cle.

Voici mon code (qui ne fonctionne pas)
        $query="select date,titre from evenement";
        $result=mysql_query($query);


         $toto=array();

         while($row=mysql_fetch_array($result)){
            $date=$row['date'];
            $titre=$row['titre'];
            $toto=$row['$date']=>$row['titre'];
         }
Au final, ce serait pour obtenir un tableau du genre

Code : Tout sélectionner

array( 'date1'=>'titre1'; 'date2'=>'titre2'; 'date3'=>'titre3'; );
car j'exploiterai ses valeurs dans la suite de mes traitements.

Si quelqu'un a une idée, je vous en remercie d'avance

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

31 déc. 2007, 11:49

Bonjour,

La syntaxe pour créer un tableau est la suivante :
$monTableau['cle'] = 'valeur';
Donc, pour stocker la date dans la clé et le titre dans la valeur, quand tu as ta date dans la variable $date et le titre dans la variable $titre, pour les stocker dans un tableau, un suffit d'écrire
$monTableau[$date] = $titre;
N'oublie pas d'initialiser ton tableau avant de commencer le parcours de la boucle.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 2 Messages

31 déc. 2007, 17:37

Merci Zeus, effectivement ca marche!

Je savais que ca ne devait pas etre bien sorcier mais je n'avançais plus!

En suivant ton idée, j'ai adapté mon code comme suit :

Code : Tout sélectionner

$query="select date,titre from evenement"; $result=mysql_query($query); $toto=array(); while($row=mysql_fetch_array($result)){ $toto[$row['date']] = $row['titre']; }
Ce qui donne, quand je fais un print_r($toto);

Array ( [29112007] => Evenement 1
[19122007] => Evenement 2
[12122007] => Evenement 3
)


Entre temps, je suis tombé sur la fonction array_combine() et ca fonctionne également mais ta méthode est plus directe.

Voila et merci encore