Подскажите, почему не находит запись?

207
23 ноября 2021, 18:30

Пытаясь вывести из таблицы базы данных столбец на страницу, не выводится ничего! Как с этим быть?

$proj_id = $address_mysqli->query("SELECT `project_id` FROM `projects`");
$row = $proj_id->fetch_array();
echo $row['project_id'];
Answer 1

Я с этим столкнулся когда делал свой учебный варезник на чистом PHP.
Вот в чём суть.

После выборки данных - этот массив нужно обработать и сформировать другой массив при помощи цикла.
Вот так:

while( $row = $proj_id->fetch_array() ){
  $items[] = $row;
}

А использовать уже сформированный массив $items, предварительно протестировав его var_dump($items); - чтоб понять, сработал ли код вообще...

Answer 2

Кажется я понял примерно (из доп сообщений). Нужно взять конкретный id из БД-1; послать запрос на выборку в БД-2 строки по этому id(из БД-1). Результаты - отрисовать на отдельной странице. Я бы посоветовал скачать с торрентов курсик по PHP (Игоря Борисова, например)...

А если кратко: нужен ассоциативный массив (для "отлова" project_id). Если использовать двумерный массив, как тут - будет намного сложнее...

Чтоб отловить:

  1. Кидаем наш массив в foreach, с проверкой по ключу ЕСЛИ ключ == project_id - записываем в отдельную переменную и прерываем директивой break; ЭНАЧЕ прерываем директивой continue;
  2. Эту переменную используем для sql запроса по id в "нужную" БД-2... Так же получая ассоциативный массив.
  3. Отрисовываем на "нужной" странице массив при помощи foreach...

while( $row = $proj_id->fetch_array(MYSQLI_ASSOC) ){ 
	$items[] = $row; 
  } 
   
  //Массив $items в foreach 
   
  foreach ($items as $key => $itemid){ 
	if ($key == 'project_id'){ 
	  $id_sql = $itemid; //Вот мы уже поймали нужный id если задача в этом стояла 
	  break; 
  } else { 
	  continue; 
  } 
   
  //Но как я увидел из var_dump - у вас целых 3 разных записи по одному ключу 'project_id'... Мой цикл возьмёт первый и прервётся 
  //Формируем новый запрос по id, используя $id_sql ОБЯЗАТЕЛЬНО АССОЦИАТИВНЫЙ такой код с циклом ( $row = $НОВАЯ_ПЕРЕМЕННАЯ->fetch_array(MYSQLI_ASSOC) )... и получаем такой же массив но из другой БД-2  
  //Отрисуем на странице по примеру ЭТОГО МАССИВА из БД-1... 
  //Смотря сколько эл-тов (ключей) массива столько и строк: 
  foreach ($Новый_массив as $item){?> 
	<p><? echo $item['сюда вставить нужный ключь']; ?></p> 
	<p><? echo $item['сюда вставить нужный ключь']; ?></p> 
	<p><? echo $item['сюда вставить нужный ключь']; ?></p> 
	<p><? echo $item['сюда вставить нужный ключь']; ?></p> 
  <?} 
 
//Сделал "с закрытыми глазами", работоспособность не проверял)) Но у меня подобное работало! УДАЧИ!

READ ALSO
Как модернизировать данный код php?

Как модернизировать данный код php?

Суть в том что каждые 10 пунктов создают новую структуру ul куда выводится все пунктыИ все отлично работает , но у меня не ровное количество...

127
Как суммировать элементы массива PHP

Как суммировать элементы массива PHP

Как суммировать элементы массива таким образом

79
php генерация qrcode с кирилицей

php генерация qrcode с кирилицей

Генерирую qr с помощью либы phpqrcodeСохраняю в файл

165