Страница 1 из 1

Php код

Добавлено: 24 авг 2023, 09:25
Lozhkinda
Подскажите пожалуйста почему не работает
$x=[id];
$output_value = db_query("select field_1755 from app_entity_120 where field_5334=" . $x);


select field_1755 from app_entity_120 where field_5334=[id] - работает на sql

Re: Php код

Добавлено: 24 авг 2023, 09:42
Fait
Lozhkinda писал(а): 24 авг 2023, 09:25 Подскажите пожалуйста почему не работает
$x=[id];
$output_value = db_query("select field_1755 from app_entity_120 where field_5334=" . $x);

select field_1755 from app_entity_120 where field_5334=[id] - работает на sql
Потому что на php данные сначала собираются в массив, после чего этот массив нужно разобрать.
Есть такой способ, через foreach (Перебирается строчка за строчкой, это удобно при работе со многими записями в запросе):

Код: Выделить всё

$x = [id];
$check_f = db_query('select * from app_entity_120 where field_5334='.$x);
foreach ($check_f as $key => $value) {
	$out = $value['field_1755'];
}
$output_value = $out;
И вот такой способ (Удобен при необходимости забрать только одно-пару значение):

Код: Выделить всё

$x = [id];
$check_f = db_query('select field_1755 from app_entity_120 where field_5334='.$x);
$values = db_fetch_array($check_f);
$out = $values['field_1755'];
$output_value = $out;

Re: Php код

Добавлено: 24 авг 2023, 17:39
tehnos
Функция db_query возвращает объект, который ещё надо преобразовать.
Например функцией mysqli_fetch_assoc, которая вернёт массив. А уже результат обработки этого массива уже можно выводить в $output_value

Re: Php код

Добавлено: 24 авг 2023, 19:00
Fait
tehnos писал(а): 24 авг 2023, 17:39 Функция db_query возвращает объект, который ещё надо преобразовать.
Например функцией mysqli_fetch_assoc, которая вернёт массив. А уже результат обработки этого массива уже можно выводить в $output_value
mysqli_fetch_assoc некорректно работает внутри системы.
Зато точно работают написанные выше скрипты.

Re: Php код

Добавлено: 24 авг 2023, 19:02
tehnos
Fait писал(а): 24 авг 2023, 19:00
tehnos писал(а): 24 авг 2023, 17:39 Функция db_query возвращает объект, который ещё надо преобразовать.
Например функцией mysqli_fetch_assoc, которая вернёт массив. А уже результат обработки этого массива уже можно выводить в $output_value
mysqli_fetch_assoc некорректно работает внутри системы.
Зато точно работают написанные выше скрипты.
У меня вся система написана с использованием этой функции.
В чём конкретно её не корректность?

Re: Php код

Добавлено: 25 авг 2023, 07:48
support
Нужно использовать внутреннюю функцию db_fetch_array, там передается объект mysqli. Внутренняя функция так же может работать, но возможны сбои при обновлении пхп и т.д.