Использование переменных переменных PHP в запросе SQL - PullRequest
0 голосов
/ 04 апреля 2009

Извините за вопрос, который может быть "вы можете это исправить", но этот небольшой кусочек кода некоторое время меня смущал.

Я в основном делаю таблицу с кучей строк и столбцов, и в каждом из них есть слегка изменяющийся 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>';

Спасибо, Станни

Ответы [ 2 ]

5 голосов
/ 04 апреля 2009

Предполагая, что я правильно истолковал это, [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>';
4 голосов
/ 04 апреля 2009

Прежде всего, вы не можете добавлять индекс массива [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>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...