2009-04-03 12 views
0

Désolé pour cette question d'être un "pouvez-vous résoudre le problème", mais ce petit morceau de code m'a dérouté depuis un moment maintenant.Utilisation de variables variables PHP dans une requête SQL

Je suis fondamentalement en train de faire une table avec un tas de lignes et de colonnes et dans chacun j'ai une requête SQL légèrement changeante. Pour rendre le tout un peu plus facile au lieu de taper tout cela, j'ai fait ce petit bout de script mais ça commence à devenir un peu compliqué, donc est-ce que l'un d'entre vous réussira à le corriger?

echo '<td background="images/map/'; 
$tile = mysql_fetch_array(mysql_query("SELECT image FROM map WHERE horizontal = ${'mapPiece' . $mapPieceCount . [0]} AND verticle = ${'mapPiece' . $mapPieceCount . [0]}")); 
echo $tile[0]; 
echo '.png"></td>'; 

Merci, Stanni

Répondre

5

En supposant que j'interprété ce droit, [0] doit aller à l'extérieur des accolades:

echo '<td background="images/map/'; 
$tile = mysql_fetch_array(
      mysql_query(
      "SELECT image FROM map WHERE horizontal = ". 
      ${'mapPiece' . $mapPieceCount}[0]. 
      " AND verticle = ". 
      ${'mapPiece' . $mapPieceCount}[0] 
     ) 
     ); 
echo $tile[0]; 
echo '.png"></td>'; 
+0

Merci à vous deux. – Ryan

4

Tout d'abord, vous ne pouvez pas ajouter la tableau index [0] comme ça, comme si vous êtes en train de concaténer sur une chaîne. Dans l'ensemble, il serait beaucoup plus facile si vous venez d'ajouter quelques lignes supplémentaires pour rendre les choses plus propres:

$currentPiece = 'mapPiece' . $mapPieceCount; 
echo '<td background="images/map/'; 

$query = 'SELECT image '. 
      'FROM map '. 
      'WHERE horizontal = '.${$currentPiece}[0].' '. 
       'AND verticle = '.${$currentPiece}[0]; 
$result = mysql_query($query); 
$tile = mysql_fetch_array($result); 

echo $tile[0]; 
echo '.png"></td>';