Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не сравнивается с бд
Форумы портала PHP.SU » » HTTP и PHP » Не сравнивается с бд

Страниц (1): [1]
 

1. Grisha007 - 02 Октября, 2017 - 12:08:36 - перейти к сообщению
Здравствуйте! Подскажите пожалуйста, почему не сравнивается слово, которое берется с базы данных? Вот код:

<?php
$result=mysqli_query($connect,"SELECT word,translate FROM `dictionary` WHERE uid='$id' ORDER BY RAND() LIMIT 1");
$row=mysqli_fetch_array($result);
echo $row['word']." - ".$row['translate']."<br/>";
?>
<input type="text" name="answer" size="30" maxlength="300"/>


<input type="submit" name="submit" value="to answer"/>
</form></center>
<?php

$arr = array($row['word']);
foreach($arr as $value){
if($_POST['answer']==$value){echo "OK";}
echo $value;
}

?>

Если написать так: $arr = array("слово");

то когда вводить в строке ввода слово "слово", то выводит, а если так $arr = array($row['word']); то нет.

В чем проблема, подскажите пожалуйста!
2. Vladimir Kheifets - 02 Октября, 2017 - 17:23:26 - перейти к сообщению
Grisha007 пишет:
Здравствуйте! Подскажите пожалуйста, почему не сравнивается слово, которое берется с базы данных? Вот код:

<?php
$result=mysqli_query($connect,"SELECT word,translate FROM `dictionary` WHERE uid='$id' ORDER BY RAND() LIMIT 1");
$row=mysqli_fetch_array($result);
echo $row['word']." - ".$row['translate']."<br/>";
?>
<input type="text" name="answer" size="30" maxlength="300"/>


<input type="submit" name="submit" value="to answer"/>
</form></center>
<?php

$arr = array($row['word']);
foreach($arr as $value){
if($_POST['answer']==$value){echo "OK";}
echo $value;
}

?>

Если написать так: $arr = array("слово");

то когда вводить в строке ввода слово "слово", то выводит, а если так $arr = array($row['word']); то нет.

В чем проблема, подскажите пожалуйста!


Добрый день! Возможно, проблема в том, что функция mysqli_fetch_array возвращать результ в виде ассоциативного и обычного массива.
Если нужно получать результат только в виде ассоциативного массива, как в Вашем сдучае, то нужно использовать функцию mysqli_fetch_assoc
3. Grisha007 - 02 Октября, 2017 - 22:37:33 - перейти к сообщению
нет, проблема была не в массиве, а в запросе, я сделал запрос который выводит одно слово, сравнивал его той же конструкцией:

if($_POST['answer']==$value){echo "OK";}

и все работает, но опять проблема, если работает обычный вывод слова, то как сделать чтоб выводило рандомно слова? и чтоб после обновления страницы слово не менялось, чтоб менялось только тогда, когда нажал на кнопку "to answer"?

 

Powered by ExBB FM 1.0 RC1