Php код

Все вопросы/проблемы по установке и использовании.
Ответить
Lozhkinda
Сообщения: 61
Зарегистрирован: 11 янв 2023, 11:15
Имя: Дмитрий
Откуда: Мурманск

Php код

Сообщение 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
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1197
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич
Контактная информация:

Re: Php код

Сообщение 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;
tehnos
Сообщения: 224
Зарегистрирован: 13 сен 2021, 17:10
Имя: Евгений
Откуда: Алушта

Re: Php код

Сообщение tehnos »

Функция db_query возвращает объект, который ещё надо преобразовать.
Например функцией mysqli_fetch_assoc, которая вернёт массив. А уже результат обработки этого массива уже можно выводить в $output_value
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1197
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич
Контактная информация:

Re: Php код

Сообщение Fait »

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

Re: Php код

Сообщение tehnos »

Fait писал(а): 24 авг 2023, 19:00
tehnos писал(а): 24 авг 2023, 17:39 Функция db_query возвращает объект, который ещё надо преобразовать.
Например функцией mysqli_fetch_assoc, которая вернёт массив. А уже результат обработки этого массива уже можно выводить в $output_value
mysqli_fetch_assoc некорректно работает внутри системы.
Зато точно работают написанные выше скрипты.
У меня вся система написана с использованием этой функции.
В чём конкретно её не корректность?
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Php код

Сообщение support »

Нужно использовать внутреннюю функцию db_fetch_array, там передается объект mysqli. Внутренняя функция так же может работать, но возможны сбои при обновлении пхп и т.д.
Ответить