Проблема при использовании fetchAll

Добрый день. Прошу прощения что отвлекаю по пустякам и думаю для многих это не является проблемой. При переделывании кода возникла проблема. Задача была вывести данные о покупке товара в профиль пользователя. Вот код оригинала :

PHP:
  1. function product_list($con){
  2.     $product_list = «SELECT * FROM orders WHERE user_id = ‘».$_SESSION[‘user_date’][‘user_id’].«‘»;
  3.     $result = mysqli_query($con, $product_list);
  4.    $result_arr = mysqli_fetch_all($result,MYSQLI_ASSOC);
  5.     $i = 1;
  6.     foreach($result_arr as $key=>$value){
  7.         echo «<p class=\»product_list\»>»;
  8.         echo «<b>(«.$i.«)</b>&nbsp;»;
  9.         $i++;
  10.         order_pay($result_arr[$key],$con);
  11.         echo «</p>»;
  12.     }
  13. }
  14.  
  15. function order_pay($array, $con){
  16.     foreach($array as $k=>$v){
  17.         if($k === ‘product_id’){
  18.             $order_query = «SELECT * FROM product WHERE product_id = ‘».$v.«‘»;
  19.             $result = mysqli_fetch_assoc(mysqli_query($con, $order_query)) or die(«нет».mysqli_error($con));
  20.             echo «<b>Наименование товара:</b>&nbsp;{$result[‘product_name’]};&nbsp;»;
  21.         }elseif($k === ‘order_value’){
  22.             echo «<b>Количество товара:</b>&nbsp;{$v};&nbsp;»;      
  23.         }elseif($k === ‘order_costs’){
  24.             echo «<b>Стоимотсь заказа:</b>&nbsp;{$v};&nbsp;»;      
  25.         }elseif($k === ‘order_date’){
  26.             echo «<b>Дата покупки:</b>&nbsp;».date(«d\n«,strtotime($v)).month_ru(date(«F»),strtotime($v)).date(«\nY в H:i:s»,strtotime($v)).«&nbsp;»;
  27.         }
  28.     }
  29. }

А вот переделанный мной.

PHP:
  1. function product_list($conn){
  2.    $id = $_SESSION[‘user_date’][‘user_id’];
  3.    $product_list = «SELECT * FROM `orders` WHERE ‘user_id’ = :user_id»;
  4.    $prepare = $conn->prepare($product_list);  
  5.    $prepare->execute([‘:user_id’=>$id]);    
  6.    $result_arr = $prepare->fetchAll(PDO::FETCH_ASSOC);
  7.    $i = 1;
  8.       foreach($result_arr as $key=>$value){
  9.           echo «<p class=\»list\»>»;
  10.           echo «<b>(«.$i.«)</b>&nbsp;»;
  11.           $i++;
  12.           product_cat($result_arr[$key],$conn);
  13.           echo «</p>»;          
  14.       }
  15.  
  16. }
  17.  
  18. function product_cat($array, $conn){
  19.    foreach($array as $k=>$v){
  20.        if($k === ‘product_id’){
  21.            $query = $conn->prepare(«SELECT * FROM `product` WHERE ‘product_id’ = ‘».$v.«‘»);
  22.          $query->execute();
  23.          $result = $query->fetch(PDO::FETCH_ASSOC);          
  24.          echo «<b>Наименование товара:</b>&nbsp;{$result[‘product_name’]};&nbsp;»;
  25.        }elseif($k === ‘order_value’){
  26.            echo «<b>Количество товара:</b>&nbsp;{$v};&nbsp;»;
  27.        }elseif($k === ‘order_costs’){
  28.            echo «<b>Стоимость покупки:</b>&nbsp;{$v};&nbsp;»;
  29.        }elseif($k === ‘order_date’){
  30.            echo «<b>Дата покупки:</b>&nbsp;».date(«d\n«, strtotime($v)).month_ru(date(«F»),strtotime($v)).date(«\nY в H:i:s»,strtotime($v)).«&nbsp;»;
  31.        }
  32.    }
  33. }

Соединения отличаются $con и $conn это так было задуманно и не является ошибкой.
Надеюсь на помощь, или хотя бы направление где копать.:)

 

Если бы еще написал в чём проблема, то легче было бы найти решение. Код ошибки или пояснения будут только кстати.

 

Не выводились данные о купленных товарах.
Ошибка была банальная и глупая. В select запросах кавычки везде должны были быть ` а не ‘ . Теперь все работает корректно. Спасибо за внимание к вопросу.
— Добавлено —
Сам я новичок и бывает туплю. Как говорится заблудился в трех соснах.;)

 

Так же заметил такой нюанс, что если в запросе стоит составная колонка table.column То в этом случае её лучше не обрамлять в кавычки! По крайней мере так работает! Но может меня поправят знатоки и подскажут как-то ещё ???

 

Бред. Я тебе написал, как надо было делать, но ты проигнорил. И продолжаешь путать два разных вида кавычек после написанного мной. Это дно.

Кстити, нафига менять мускулай на ПДО? Заняться больше нечем? Код говорит об обратном ;)

 

Код (Text):
  1. `schema`.`table`.`column`
 

Большое спасибо попробую.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *