2009-06-14 14 views
3

Dans mon code, je reçois des données (trois colonnes) à partir d'une base de données sql et je veux stocker les lignes dans un tableau PHP associatif. Le tableau doit être multidimensionnelle parce que je veux utiliser l'identifiant de ligne de la base de données comme une clé afin que je puisse aller chercher des valeurs comme ceci:Tableau associatif bidimensionnel en PHP

$ produits [ « f84jjg »] [ « nom »]

produits $ [ "245"] [ "code"]

J'ai essayé d'utiliser le code suivant, mais il ne fonctionne pas:

while ($row = mysql_fetch_row($sqlresult)) 
{ 
    $products = array($row[0] => array(
      name => $row[1], 
      code => $row[2] 
     ) 
    ); 
} 

En outre, comment dois-je faire référence à la clé s'il est pris d'une var iable? Ce que je veux faire est:

$productName = $products[$thisProd]["name"]; 

Est-ce que cela fonctionnera?

Répondre

8

Cela devrait le faire, en supposant row[0] « contenu de s est un identifiant unique (sinon vous pouvez remplacer une rangée):

while($row = mysql_fetch_row($sqlresult)) { 
    $products[$row[0]] = array(
     'name' => $row[1], 
     'code' => $row[2] 
    ); 
} 

Vous devez mettre des guillemets autour des clés du tableau, et vous créez un tableau de tableau de tableaux.

Notez également que vous pouvez utiliser mysql_fetch_assoc au lieu de mysql_fetch_row, qui vous donnera les clés du tableau comme les noms de colonnes, ce qui rendrait ce beaucoup plus facile/nettoyant:

while($row = mysql_fetch_assoc($sqlresult)) { 
    $products[$row['myidcolumn']] = $row; 
} 

Une fois que vous faites cela, le code décrit fonctionnerait.

Questions connexes