2015-12-29 4 views
1

У меня есть следующая таблица под названием «вопрос».Извлечь идентификатор и обработать его

enter image description here

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

Например, если max qid равен 1, где pid равно 1, я хочу, чтобы код извлекал 1 и добавлял 1. Если Я в своем запросе положил «WHERE pid = 2», и в моей таблице нет pid = 2, я хочу, чтобы он сделал qid = 1.

У меня этот код, чтобы получить максимальное значение qid, но оно не работает.

$qu = mysqli_query("SELECT max(qid) AS id FROM answer_det WHERE WHERE pid = '1' ");   
$result = $mysqli->query($qu); 
if ($result->num_rows > 0) { 
    while($row = $result->fetch_array()) { 
     echo $row['id']; 
    } 
} 
+0

определить "это не работает". Что происходит? Что бы вы ожидали по-другому? – ArSeN

+0

change 'max (qid)' to 'coalesce (max (qid), 1)' coalesce принимает первое ненулевое значение в ряду. – xQbert

ответ

2

Я думаю, вы должны использовать IFNULL

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

Таким образом, если вы пытаетесь запрос для ФИД, который не существует, вы получите значение 1 в противном случае вы получите значение +1

+0

У меня есть ответ для обеих ситуаций. – scaisEdge

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