Я пытаюсь создать веб-сайт, на котором пользователи могут голосовать за разные предметы из игры, например, за список уровней. Я хочу, чтобы элемент, за который голосует пользователь, был из случайной таблицы и случайной строки в этой таблице.
Прямо сейчас у меня есть следующий код, настроенный для поиска случайного элемента:
$ran = mt_rand(1, 10);
switch ($ran) {
case "1":$sql = "SELECT item, rating FROM ditems ORDER BY RAND() LIMIT 1";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
echo $row["gun"];
};
break;
case "2":$sql = "SELECT item, rating FROM citems ORDER BY RAND() LIMIT 1";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
echo $row["item"];
};
etc
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить доступ к тому, что выбранный элемент находится за пределами оператора switch{}
, потому что массив $row
объявлен локально, но я должен иметь возможность сделать это, чтобы я мог установить кнопку для голосования. предмет.
РЕДАКТИРОВАТЬ: я решил бросить все элементы в одну таблицу и выбрать элемент, используя ORDER BY RAND LIMIT 1
while
, когда ваши запросы возвращают только одну запись? а затем у вас есть$ran
, который указывает, из какой таблицы вы извлекли запись, почему вы не можете просто использовать ее для настройки кнопки? а также то же самое, что и @Strawberry, почему у вас больше одной таблицы?! структура данных этих таблиц отличается друг от друга? - person EhsanT   schedule 31.10.2016