Я делаю консультацию ''sqlen
phputilizando
postrgesql' как администратор, и консультация только показывает мне первый результат, который он находит, уже я подтвердил в базе данных и он был бы должен показывать мне 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);
так он был бы должен показывать мне все возможные результаты, пожалуйста, если кто-то может помогать мне, спасибо
Я даю благополучное прибытие 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 третья линия результатов... Это иллюстративное, чтобы понимать, как функционируют ресурсы, которые возвращают консультации в базу данных.
Надеялся, что он полезен.
Это - то, что говорит Учебник PHP о fetchAll
, хотя он не находится в ней documentaciГіn относительная в postgresql, оно vГЎlido tambiГ©n для этого случая:
Использовать этот mГ©todo, чтобы получать наборы больших результатов darГЎ как оказанный сильное требование системы и, возможно, сетевых ресурсов . Вместо того, чтобы возвращать все данные и манипулировать ими в PHP, considГ©rese использовать сервер баз данных, чтобы манипулировать наборами результатов. Например, могут использовать их clГЎusulas
WHERE
иORDER BY
в решениях SQL, чтобы ограничивать результат перед тем, как возвращать их и обрабатывать их с PHP.
fetchAll
... очень вероятно, что рукописный шрифт блокируется. Другой фактор, который играет во всем этом, - количество пользователей: давайте представлять несколько тысяч пользователей консультируя этот же самый info в то же время. – A. Cedano 20.03.2019, 15:18