2015-12-29 2 views
0

Это мой стол:Уведомление о получении и обработке

enter image description here

Я хочу, чтобы запрос, который будет извлекать максимальную QID из таблицы, где указываю ФИД. Затем я хочу взять выбранное значение и добавить к нему 1. Я хочу, чтобы это работало, даже если на qid нет значения, где Pid, ​​например, 1 или 2.

Например, если max qid равен 1, где pid равно 1, я хочу, чтобы код возвращал значение qid = 1 и добавить 1 к нему. Тогда новое значение «2» в этом случае должно храниться в скрытом поле ввода. Если я, например, поставлю «WHERE pid = 4» в свой запрос, и в моей таблице нет pid = 4, который извлекает нулевое значение из qid, которое также должно работать, а новое значение должно быть 1 (null + 1 = 1).

У меня есть это, но я не знаю, правильно ли это. Возможно, я ошибаюсь в запросе.

<?php 
 
$qu = "SELECT coalesce(max(qid),1) AS id FROM answer_det WHERE pid = '1' "; 
 
$result = $mysqli->query($qu); 
 

 
if ($result->num_rows > 0) { 
 
    while($row = $result->fetch_array()) { 
 
     
 
     echo " 
 
      <form action='insertdilemma.php' method='post'> 
 
      <input type='text' name='ans1'> 
 
      <input type='hidden' name='qidsend' value='". $row["id"]. "'> 
 
      <input type='submit' name='submit' value='Send'> 
 
      </form>"; 
 
}} 
 
    else { 
 
    echo "0 results"; 
 
} 
 

 
mysqli_close($mysqli); 
 
\t  
 
?>

Я получаю сообщение об ошибке: Примечание: Попытка получить свойство не-объекта в C: \ XAMPP \ HTDOCS \ лесной пожар \ dilemman.php на линии 132

Это на линии 132: если ($ result-> num_rows> 0) {

+3

Ваш запрос не удался из-за очевидной ошибки синтаксиса –

+2

В вашем запросе есть два 'WHERE'. –

+0

В вашем запросе сказано 'WHERE WHERE' ... стереть один из них. – Zeke

ответ

3

просто удалить второй, где

$qu = "SELECT ifnull(max(qid)+1,1) AS id FROM answer_det WHERE pid = '1' "; 

и вы должны представить новый qid, но также и идентификатор.

echo " 
     <form action='insertdilemma.php' method='post'> 
     <input type='text' name='ans1'> 
     <input type='hidden' name='pidsend' value='". $row["pid"]. "'> 
     <input type='hidden' name='qidsend' value='". $row["id"]. "'> 
     <input type='submit' name='submit' value='Send'> 
     </form>"; 
+0

Да, я сделал это, но это только удалило уведомление. Теперь все выглядит хорошо на странице, но цель не работает. То есть, чтобы проверить max qid, где я выбираю конкретный pid и добавляю 1 к нему. Я всегда получаю значение 1, добавление функцииg не работает. – Max

+0

Вы уверены, что сохранили действительный результат в db? И во-вторых, почему вы используете pid = '1', а не pid = '$ your_var_pid'? – scaisEdge

+0

У меня есть обновление asnwer. я думаю, что вы не отправили pid (не только qid/id) – scaisEdge

Смежные вопросы