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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Grisha007
Отправлено: 02 Октября, 2017 - 12:08:36
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Окт. 2017  


Помог: 0 раз(а)




Здравствуйте! Подскажите пожалуйста, почему не сравнивается слово, которое берется с базы данных? Вот код:

<?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']); то нет.

В чем проблема, подскажите пожалуйста!
 
 Top
Vladimir Kheifets
Отправлено: 02 Октября, 2017 - 17:23:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




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
 
 Top
Grisha007
Отправлено: 02 Октября, 2017 - 22:37:33
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Окт. 2017  


Помог: 0 раз(а)




нет, проблема была не в массиве, а в запросе, я сделал запрос который выводит одно слово, сравнивал его той же конструкцией:

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

и все работает, но опять проблема, если работает обычный вывод слова, то как сделать чтоб выводило рандомно слова? и чтоб после обновления страницы слово не менялось, чтоб менялось только тогда, когда нажал на кнопку "to answer"?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB