2016-11-15 4 views
1

У меня есть массив с 3 значениями в нем. Эти три значения изменяются в зависимости от учетной записи пользователя (для ссылок на вопросы восстановления по их идентификатору).Создайте запрос mysql для каждого элемента массива

Когда они отправляют форму с адресом электронной почты, система проверяет ее и, если она существует, получает свои 3 идентификатора вопроса восстановления, которые хранятся в другой базе данных, и 3 ответа от их учетной записи.

Затем он хранит информацию в массиве, как так:

<?php 
    $questions = Array($question1id, $question2id, $question3id); 
?> 

Как я могу сделать foreach() для этого массива, который будет запрашивать, как так

Select * FROM recovery_questions WHERE rid='$val' 

и вернуться, что для каждого вопроса и хранить их в отдельных переменных, таких как $cleanquestion1, $cleanquestion2 и $cleanquestion3?

Каждый раз, когда я пытаюсь, я перезаписываю последнее значение, и оно меня разочаровывает. Спасибо

+1

Почему бы не выпустить 1 оператор, который говорит Select * FROM recovery_questions 'WHERE rid in ($ question1id, $ question2id, $ question3ID) order by rid', так что вы возвращаете все 3 в 1 вызов? – xQbert

+0

Это кажется жизнеспособным, но как я могу назвать их отдельно? Я не часто связываю свой запрос, вот почему я спрашиваю. Я представляю себе что-то вроде $ row [0], $ row [1] и т. Д.? – Kaboom

+0

Предполагая использование PDO, вот ссылка на пример: http://stackoverflow.com/questions/1756743/how-to-loop-through-a-mysql-result-set – xQbert

ответ

1
<?php 
$a = 1; 
$questions = Array($question1id, $question2id, $question3id); 
foreach ($questions as $v){ 
    $sel = "Select * FROM recovery_questions WHERE rid='$v'"; 
    $stmt = $db->query($sel); 
    while($r = $stmt->fetch()){ 
      $qvar = "cleanquestion".$a; 
      $qqvar = $<<results>> 
    } 
    $a++; 
} 
?> 

Заменить результаты тем, что вы вернетесь из ДБ.

затем

echo $cleanquestion1 

приведет с тем, что результатом question1id есть.

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