0

Всем привет, пишу с такой проблемой, что не выводит полученные данные с MySQL в PHP страницу, использую библиотеку (если её так можно назвать) PDO, только начал с ним работать, ещё не всё особо понятно.

    <?php
    $query = "SELECT * FROM moders_chat ORDER BY priority;";
    $stmt = $pdo->prepare($query);
    $stmt->execute();
    list($id, $idt, $ltg, $nntg, $post, $prefix, $warns, $points, $status) = $stmt->fetch();
echo '&lt;tr&gt;
&lt;td&gt; &lt;a href=../pages/user?id='.$idt.'&gt;'.$idt.'&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;'.$ltg.'&lt;/td&gt;
&lt;td&gt;'.$nntg.'&lt;/td&gt;
&lt;td&gt;'.$post.'&lt;/td&gt;
&lt;td&gt;'.$prefix.'&lt;/td&gt;
&lt;td&gt;'.$warns.'&lt;/td&gt;
&lt;td&gt;'.$points.'&lt;/td&gt;
&lt;td&gt;'.$status.'&lt;/td&gt;&lt;/tr&gt;';

?>

  • В-первых, перед выполнением запросов надо сначала соединиться с БД. Во-вторых, при соединении надо настроить ПДО, чтобы оно сообщало об ошибках. И в третьих, надо настроить РНР, чтобы он тоже сообщал об ошибках. После этого при возникновении проблем читать сообщение об ошибке и исправлять его. – Ипатьев Jan 08 '24 at 06:26
  • Кроме того, надо определиться, одну строку вы хотите получить, или много. Если много, то их надо выводить в цикле. Если одну, то и запрашивать надо тоже одну, а не все. Как это сделать, можно почитать, например, здесь https://phpfaq.ru/pdo – Ипатьев Jan 08 '24 at 06:29

1 Answers1

-2

Необходимо указать возвращение результата в виде массива:

$query = "SELECT * FROM moders_chat ORDER BY priority;";
$stmt = $pdo->prepare($query);
$stmt->execute();
list($id, $idt, $ltg, $nntg, $post, $prefix, $warns, $points, $status) = $stmt->fetch(PDO::FETCH_ASSOC);

Для этого используется PDO::FETCH_ASSOC

Также посмотрите через var_dump(), что у вас вернулось после выполнения запроса.

$query = "SELECT * FROM moders_chat ORDER BY priority;";
$stmt = $pdo->prepare($query);
$stmt->execute();
var_dump($stmt->fetch(PDO::FETCH_ASSOC));

Если ничего нет, нужно смотреть, какие есть ошибки при подключении к базе данных и выполнении запроса.

  • я так понял после $stmt->execute();? – pawhauo Jan 07 '24 at 22:47
  • ситуация не изменилась, можем ли мы перейти в телеграмм, для удобства? @dlebarov – pawhauo Jan 07 '24 at 22:53
  • Сталкивался с проблемой, что без ковычек запрос не обрабатывался, попробуй закрыть название таблицы в ковычки ` - (клавиша ё) – Red Jan 07 '24 at 23:55
  • @Red слово "кавычка" пишется через букву "а" – Ипатьев Jan 08 '24 at 06:20
  • К сожалению, с PDO::FETCH_ASSOC этот код как раз перестанет что-либо выводить, даже если запрос вернет какие-то данные – Ипатьев Jan 08 '24 at 06:23