У меня есть php-скрипт, который выбирает данные через mysql_, однако в последнее время я читал, что PDO – это способ пойти и что mysql_ становится обесцененным. Теперь я конвертирую этот скрипт в PDO.
Мой вопрос заключается в том, что я не использую $ _POST для выбора. Я просто хочу выделить всю таблицу со всеми своими данными, поэтому я ввожу этот запрос:
$query = $dbh->prepare("SELECT * FROM students"); $query->execute(); $result = $query->fetchall(); // or you can just $result = $query as hakre proposed! 
поэтому, как и я, с моей старой обесцененной версией mysql_ скрипта, я использовал эхо-эхо-таблицу для таблицы с данными в ней.
  echo "<table border='2'> <tr> <th>ID</th> <th>A Number</th> <th>First Name</th> <th>Last Name</th> <th>Why</th> <th>Comments</th> <th>Signintime</th> </tr>" ; foreach($result as $row) { echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td><a href=Student.php?studentA_num=" . $row['anum'] . ">" .$row['anum'] . " </a></td>"; echo "<td>" . $row['first'] . "</td>"; echo "<td>" . $row['last'] . "</td>"; echo "<td>" . $row['why'] . "</td>"; echo "<td>" . $row['comments'] . "</td>"; echo "<td>" . $row['signintime'] . "</td>"; echo "<td> <input type=\"button\" value=\"Start Session\"onClick=\accept.php?id=" . $row['id'] . "&start=true></td>"; } echo "</tr>"; echo "</table>"; 
теперь, используя это, я не могу получить один вывод для своей таблицы.

Мой вопрос: я что-то упустил из своих утверждений? Или я не собираю строки? Также я установил настройки соединения в другом скрипте под названием connect.php, который требуется init.php (в верхней части всех моих страниц)
Изменить: 1
  Отредактировал код, чтобы он теперь работал, также добавляя картинку, чтобы показать другим, как это должно выглядеть!  Надеюсь, кто-то может это использовать! 
Вы делаете слишком много:
 $query = $dbh->prepare("SELECT * FROM students"); $query->execute(); $result = $dbh->query($query); 
Проблемная линия:
 $result = $dbh->query($query); 
  Проверьте с помощью http://php.net/pdo.query параметр – это строка, на самом деле строка SQL, которую вы уже используете выше, а не результат результата вызова PDO::prepare() . 
Для вашего простого запроса вы можете просто сделать:
 $result = $dbh->query("SELECT * FROM students"); 
Или если вы хотите подготовить:
 $query = $dbh->prepare("SELECT * FROM students"); $query->execute(); $result = $query; 
Более поздняя версия является некоторым шаблоном, если вы хотите вставить переменные в запрос, поэтому вы его готовите.
  Следующая проблема foreach линией foreach : 
 foreach($result as $row); 
  Вы заканчиваете цикл сразу из-за точки с запятой ;  в конце.  Удалите эту точку с запятой, чтобы следующий кодовый блок с квадратным скобкой стал телом цикла foreach. 
Ваш код неправильный:
 $query = $dbh->prepare("SELECT * FROM students"); $query->execute(); $result = $dbh->query($query); 
  После выполнения подготовленного оператора вы можете просто вызвать fetchAll() : 
 $query = $dbh->prepare("SELECT * FROM students"); $query->execute(); $result = $query->fetchAll(); 
Остальная часть вашего кода будет работать отлично после удаления точки с запятой после foreach.