2016-04-30 2 views
0

Мне нужно создать таблицу, которая автоматически заполняется в зависимости от того, сколько объектов в базе данных.Looped form с выбранными данными

В настоящее время у меня простой оператор выбора;

$articleID = $_GET['id']; 
    $stmt = $pdo->query('SELECT * FROM article WHERE articleID = "' . $articleID . '"'); 
    $result = $stmt->fetch(PDO::FETCH_ASSOC); 
    $stmt2 = $pdo->query('SELECT * FROM comments WHERE artID = "' . $articleID . '"'); 
    $result2 = $stmt2->fetch(PDO::FETCH_ASSOC); 

Я пробовал использовать форму, но в ней хранится только одна часть данных.

+0

Мне нужно всего лишь зацикливать результаты второго оператора – ScaperExe

+0

, вы попробовали цикл 'while'? – RST

+0

'Я пытался использовать форму', как вы пробовали? –

ответ

1

Из вашего кода SQL Я понимаю, что articleId является основным ключом таблицы статей и что artId в таблице комментариев является внешним ключом.

Итак, ваш первый запрос должен возвращаться только по результату, следовательно, метод выборки. Второй запрос, с другой стороны, может возвращать много строк, но метод выборки возвращает только первый. Чтобы получить массив результатов, вы должны использовать метод fetchAll и перебрать полученный результирующий массив, чтобы показать все комментарии.

Вот код с двумя результатами, сбрасываемыми, чтобы помочь вам увидеть структуру. Я также дал вам простой пример того, как вы могли бы перебрать второй результат.

$articleID = $_GET['id']; 
$stmt = $pdo->query('SELECT * FROM article WHERE articleID = "' . $articleID . '"'); 
$result = $stmt->fetch(PDO::FETCH_ASSOC); 

$stmt2 = $pdo->query('SELECT * FROM comments WHERE artID = "' . $articleID . '"'); 
$result2 = $stmt2->fetchAll(PDO::FETCH_ASSOC); 

var_dump($result); 
var_dump($result2); 

foreach($result2 as $comment){ 
    echo '<p>'.$comment['text'].'<p>'; 
} 
Смежные вопросы