在SQL查询中使用PHP变量变量

时间:2009-04-03 22:44:58

标签: php sql variables

很抱歉这个问题是“你可以解决它”吗,但这一点代码让我困惑了一段时间。

我基本上是用一堆行和列创建一个表,并且在每一个表中我都有一个稍微改变的SQL查询。为了让它变得更容易而不是输入所有内容,我制作了一些脚本,但它开始变得有点复杂,所以你们中的任何人都能设法让它变得正确吗?

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

谢谢Stanni

2 个答案:

答案 0 :(得分:5)

假设我解释了这一点,[0]需要超出花括号:

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

答案 1 :(得分:4)

首先,你不能像这样连接数组索引[0],就像你在字符串上连接一样。总的来说,如果你只是添加一些额外的线条以使整洁的东西更容易:

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