Advertisement
Guest User

Untitled

a guest
Jun 27th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.84 KB | None | 0 0
  1. $db_host = 'localhost';
  2. $db_user = 'db user';
  3. $db_pass = 'db password';
  4. $db_name = 'db name';
  5.  
  6. // создаем объект подключения к базе данных
  7. $dbh = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_user, $db_pass);
  8.  
  9. // функция получает каталог. При необходимости ведет поиск. Работает с пагинацией.
  10. function get_catalog($search = null, $page = 0, $all = false) {
  11.     global $dbh;
  12.     $return = [];
  13.     $wh = '';
  14.     $limit = 0;
  15.     $offset = 9;
  16.    
  17.     if(isset($search['page'])) {
  18.         $limit = ($search['page']-1) * 9;
  19.         $offset = 9;  
  20.        
  21.         unset($search['page']);
  22.     }
  23.  
  24.  
  25.    
  26.     if($search != null) {
  27.         $wh = ' where ';
  28.         $and = [];
  29.        
  30.        
  31.         foreach($search as $key=>$param) {
  32.             if(is_array($param)) {
  33.                 foreach($param as $v) {
  34.                     $and[] = "`{$key}` LIKE '%{$v}%'";
  35.                 }
  36.             } else {
  37.                 $and[] = "`{$key}` LIKE '%{$param}%'";
  38.             }
  39.         }
  40.        
  41.         $and_str = implode(" AND ", $and);
  42.        
  43.         $wh .= $and_str;
  44.     }
  45.    
  46.    
  47.     $all_str = $all === false ? '' : "limit {$limit}, {$offset}";
  48.    
  49.     $sql = "SELECT * FROM goods {$wh} {$all_str}";
  50.     $query = $dbh->query($sql);
  51.  
  52.     $rows = $query->fetchAll(PDO::FETCH_ASSOC);
  53.  
  54.     foreach($rows as $row){
  55.         $row['composition'] = get_composition($row['id']);
  56.        
  57.         if($row['images'] != null) {
  58.             $image_ids = explode(",", $row['images']);
  59.            
  60.             foreach($image_ids as $img_id) {
  61.                 $row['image'][] = get_image_by_id($img_id)['rows'][0]??[];
  62.             }
  63.         }
  64.        
  65.         $return['rows'][] = $row;
  66.     }
  67.    
  68.  
  69.     return $return;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement