консультация sql в php только показывает мне первый результат

Я делаю консультацию ''sqlenphputilizandopostrgesql' как администратор, и консультация только показывает мне первый результат, который он находит, уже я подтвердил в базе данных и он был бы должен показывать мне 13 результатов в договоренности, моя консультация - следующая:

$query = "SELECT num_documento FROM letra_cambio where fecha_venc <= date '".$fecha_actual."'";
$resultado = pg_query($con, $query);
$res = pg_fetch_row($resultado);

echo json_encode($res);

так он был бы должен показывать мне все возможные результаты, пожалуйста, если кто-то может помогать мне, спасибо

1
задан 19.03.2019, 20:07
1 ответ

Я даю благополучное прибытие Stackoverflow.

важен, чтобы ты понял из-за quГ©, тебе показывала sГіlo одна lГ-nea используя cГіdigo asГ-:

$res = pg_fetch_row($resultado);
echo json_encode($res);

, Когда ты консультируешься в базу данных, что ты получаешь, является ресурсом или указателем к данным. В этом случае этот ресурс находится в переменной $resultado.

, Чтобы читать эти данные, существуют некоторые mГ©todos. Есть один mГ©todo, что является pg_fetch_all, которые помещают весь набор результатов сразу в переменную. Но ГЛАЗ, этот mГ©todo не является рекомендуемым, когда ты ждешь много данных, потому что podrГ-схвати иметь проблемы памяти или результата 1 .

Поэтому, обычно данные читают себе линию из-за линии, двигая указатель внутри цикла. Если ты наблюдаешь примеры Учебника PHP , он asГ - как он осуществляется в cГіdigo.

В твоем случае, serГ - во что-то asГ-:

$resultado = pg_query($con, $query);
$res = array();
while ($row = pg_fetch_row($resultado) ){
    $res[]=$row;
}
echo json_encode($res);

В этом случае, двинул ресурс внутри цикла while и поместил в каждый шаг каждую линию внутри array, представленного $res.

В cГіdigo твоего вопроса указатель не seguГ - в двигая , потому что не был использован цикл, применял к себе pg_fetch_row единственный раз к указателю данных, и поэтому sГіlo удавалось достаться Г©l первой линии результатов.


Помимо всего: интересная информация немного интересные

, который ты можешь тестировать независимо любой cГіdigo, - это:

print_r(pg_fetch_row($resultado));
print_r(pg_fetch_row($resultado));

VerГЎs, которые достают тебе первые две линии данных. ВїPor quГ© во втором print_r он не достает tambiГ©n первую линию? Потому что в первом указатель moviГі во вторую.

, Если ты снова выполняешь:

print_r(pg_fetch_row($resultado));

VerГЎs третья линия результатов... Это иллюстративное, чтобы понимать, как функционируют ресурсы, которые возвращают консультации в базу данных.

Надеялся, что он полезен.


Замечаний:

  1. Это - то, что говорит Учебник PHP о fetchAll, хотя он не находится в ней documentaciГіn относительная в postgresql, оно vГЎlido tambiГ©n для этого случая:

    Использовать этот mГ©todo, чтобы получать наборы больших результатов darГЎ как оказанный сильное требование системы и, возможно, сетевых ресурсов . Вместо того, чтобы возвращать все данные и манипулировать ими в PHP, considГ©rese использовать сервер баз данных, чтобы манипулировать наборами результатов. Например, могут использовать их clГЎusulas WHERE и ORDER BY в решениях SQL, чтобы ограничивать результат перед тем, как возвращать их и обрабатывать их с PHP.

2
ответ дан 02.12.2019, 05:27
  • 1
    очень хорошая твой ответ, сомнение, точно в q они называют его большими наборами результатов? или же q количество результатов мы говорим –  Yasmany Alonso Cabrera 20.03.2019, 15:11
  • 2
    Это вопрос difí cil ответа @YasmanyAlonsoCabrera, потому что он зависит от нескольких факторов, между ними, cuá ntas колонны принеси консультацию, qué тип они, qué количество памяти ты имеешь позволенная для PHP. Давайте представлять консультацию в таблицу, которую он приносит capí tulos книги, и ты приносишь несколько capí tulos нескольких мягких или старинных танцев informació n и ты помещаешь все их сразу используя fetchAll... очень вероятно, что рукописный шрифт блокируется. Другой фактор, который играет во всем этом, - количество пользователей: давайте представлять несколько тысяч пользователей консультируя этот же самый info в то же время. –  A. Cedano 20.03.2019, 15:18
  • 3
    уже, я понимаю, большое спасибо из-за всего –  Yasmany Alonso Cabrera 20.03.2019, 15:40

Теги

Похожие вопросы