Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Просьба помоч с Select
Форумы портала PHP.SU » » Работа с СУБД » Просьба помоч с Select

Страниц (1): [1]
 

1. Alex_dark74 - 10 Января, 2016 - 20:13:09 - перейти к сообщению
Есть 2 таблицы
http://joxi[dot]ru/gmveyXjFMYzbra
и
http://joxi[dot]ru/DmBEbY7ixeQorP

они связаны между собой.
Из них нужно сделать выборку с такой логикой
Из таблицы "Size" нужно выбрать `size_id`,`size_name` такие `id` которых нет в таблице "material_format" под определенным `id_density`. Делаю так.
PHP:
скопировать код в буфер обмена
  1.  
  2. function view_list_not_format($id_density_mat){
  3.     $result = $this->msql_select_static("
  4.      SELECT
  5.        size.`size_id`,
  6.        size.`size_name`
  7.      FROM
  8.      `size`,`material_format`
  9.      WHERE
  10.        size.`size_id` != material_format.`id_size`
  11.      AND
  12.        material_format.`id_density` = ".$id_density_mat."
  13.    ");
  14.     return $result;
  15.   }
  16.  

$id_density_mat - приходит idдля выборки
Но почему то не получается. Выводит вот
Array ( [0] => Array ( [size_id] => 1 [size_name] => 210x297 (A4) ) [1] => Array ( [size_id] => 1 [size_name] => 210x297 (A4) ) [2] => Array ( [size_id] => 1 [size_name] => 210x297 (A4) ) [3] => Array ( [size_id] => 2 [size_name] => 297x420 (A3) ) [4] => Array ( [size_id] => 2 [size_name] => 297x420 (A3) ) [5] => Array ( [size_id] => 2 [size_name] => 297x420 (A3) ) [6] => Array ( [size_id] => 2 [size_name] => 297x420 (A3) ) [7] => Array ( [size_id] => 3 [size_name] => 320x450 (SR A3) ) [8] => Array ( [size_id] => 3 [size_name] => 320x450 (SR A3) ) [9] => Array ( [size_id] => 3 [size_name] => 320x450 (SR A3) ) [10] => Array ( [size_id] => 4 [size_name] => 330x450 ) [11] => Array ( [size_id] => 4 [size_name] => 330x450 ) [12] => Array ( [size_id] => 4 [size_name] => 330x450 ) [13] => Array ( [size_id] => 5 [size_name] => 430x305 ) [14] => Array ( [size_id] => 5 [size_name] => 430x305 ) [15] => Array ( [size_id] => 5 [size_name] => 430x305 ) [16] => Array ( [size_id] => 5 [size_name] => 430x305 ) [17] => Array ( [size_id] => 6 [size_name] => 430x610 ) [18] => Array ( [size_id] => 6 [size_name] => 430x610 ) [19] => Array ( [size_id] => 6 [size_name] => 430x610 ) [20] => Array ( [size_id] => 6 [size_name] => 430x610 ) [21] => Array ( [size_id] => 7 [size_name] => 470x650 ) [22] => Array ( [size_id] => 7 [size_name] => 470x650 ) [23] => Array ( [size_id] => 7 [size_name] => 470x650 ) [24] => Array ( [size_id] => 7 [size_name] => 470x650 ) [25] => Array ( [size_id] => 8 [size_name] => 480x650 ) [26] => Array ( [size_id] => 8 [size_name] => 480x650 ) [27] => Array ( [size_id] => 8 [size_name] => 480x650 ) [28] => Array ( [size_id] => 8 [size_name] => 480x650 ) [29] => Array ( [size_id] => 9 [size_name] => 500x700 ) [30] => Array ( [size_id] => 9 [size_name] => 500x700 ) [31] => Array ( [size_id] => 9 [size_name] => 500x700 ) [32] => Array ( [size_id] => 9 [size_name] => 500x700 ) [33] => Array ( [size_id] => 10 [size_name] => 520x720 ) [34] => Array ( [size_id] => 10 [size_name] => 520x720 ) [35] => Array ( [size_id] => 10 [size_name] => 520x720 ) [36] => Array ( [size_id] => 10 [size_name] => 520x720 ) [37] => Array ( [size_id] => 11 [size_name] => 530x740 ) [38] => Array ( [size_id] => 11 [size_name] => 530x740 ) [39] => Array ( [size_id] => 11 [size_name] => 530x740 ) [40] => Array ( [size_id] => 11 [size_name] => 530x740 ) [41] => Array ( [size_id] => 12 [size_name] => 620x940 ) [42] => Array ( [size_id] => 12 [size_name] => 620x940 ) [43] => Array ( [size_id] => 12 [size_name] => 620x940 ) [44] => Array ( [size_id] => 12 [size_name] => 620x940 ) [45] => Array ( [size_id] => 13 [size_name] => 700x1000 ) [46] => Array ( [size_id] => 13 [size_name] => 700x1000 ) [47] => Array ( [size_id] => 13 [size_name] => 700x1000 ) [48] => Array ( [size_id] => 13 [size_name] => 700x1000 ) [49] => Array ( [size_id] => 14 [size_name] => 700x1020 ) [50] => Array ( [size_id] => 14 [size_name] => 700x1020 ) [51] => Array ( [size_id] => 14 [size_name] => 700x1020 ) [52] => Array ( [size_id] => 15 [size_name] => 720x1010 ) [53] => Array ( [size_id] => 15 [size_name] => 720x1010 ) [54] => Array ( [size_id] => 15 [size_name] => 720x1010 ) [55] => Array ( [size_id] => 15 [size_name] => 720x1010 ) [56] => Array ( [size_id] => 16 [size_name] => 720x1020 ) [57] => Array ( [size_id] => 16 [size_name] => 720x1020 ) [58] => Array ( [size_id] => 16 [size_name] => 720x1020 ) [59] => Array ( [size_id] => 16 [size_name] => 720x1020 ) [60] => Array ( [size_id] => 17 [size_name] => 720x1040 ) [61] => Array ( [size_id] => 17 [size_name] => 720x1040 ) [62] => Array ( [size_id] => 17 [size_name] => 720x1040 ) [63] => Array ( [size_id] => 17 [size_name] => 720x1040 ) [64] => Array ( [size_id] => 18 [size_name] => 720x1080 ) [65] => Array ( [size_id] => 18 [size_name] => 720x1080 ) [66] => Array ( [size_id] => 18 [size_name] => 720x1080 ) [67] => Array ( [size_id] => 18 [size_name] => 720x1080 ) [68] => Array ( [size_id] => 19 [size_name] => 780x1080 ) [69] => Array ( [size_id] => 19 [size_name] => 780x1080 ) [70] => Array ( [size_id] => 19 [size_name] => 780x1080 ) [71] => Array ( [size_id] => 19 [size_name] => 780x1080 ) [72] => Array ( [size_id] => 20 [size_name] => 920x640 ) [73] => Array ( [size_id] => 20 [size_name] => 920x640 ) [74] => Array ( [size_id] => 20 [size_name] => 920x640 ) [75] => Array ( [size_id] => 20 [size_name] => 920x640 ) [76] => Array ( [size_id] => 21 [size_name] => 940x650 ) [77] => Array ( [size_id] => 21 [size_name] => 940x650 ) [78] => Array ( [size_id] => 21 [size_name] => 940x650 ) [79] => Array ( [size_id] => 21 [size_name] => 940x650 ) [80] => Array ( [size_id] => 22 [size_name] => 1000x1400 ) [81] => Array ( [size_id] => 22 [size_name] => 1000x1400 ) [82] => Array ( [size_id] => 22 [size_name] => 1000x1400 ) [83] => Array ( [size_id] => 22 [size_name] => 1000x1400 ) [84] => Array ( [size_id] => 23 [size_name] => 1040x720 ) [85] => Array ( [size_id] => 23 [size_name] => 1040x720 ) [86] => Array ( [size_id] => 23 [size_name] => 1040x720 ) [87] => Array ( [size_id] => 23 [size_name] => 1040x720 ) )
2. Faraon-san - 11 Января, 2016 - 10:57:10 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1.  SELECT `size_id`, `size_name` FROM `size` WHERE `size_id` NOT IN SELECT DISTINCT `id_size` FROM `material_format` WHERE `id_density` = ".$id_density_mat."
3. Alex_dark74 - 12 Января, 2016 - 17:22:56 - перейти к сообщению
Выдает
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT DISTINCT `id_size` FROM `material_format` WHERE `id_density` = 1' at line 7
4. Alex_dark74 - 12 Января, 2016 - 20:07:19 - перейти к сообщению
Мучался мучался и сделал так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $not_format = array();
  3.  
  4.   foreach($all_format as $all_format_v){
  5.     $temp = 0;
  6.     foreach ($format as $format_v){
  7.       if($all_format_v['size_name'] === $format_v['size_name']){
  8.         $temp = $temp+1;
  9.       }
  10.     }
  11.      if ($temp == 0){
  12.         $not_format[] = $all_format_v;
  13.      }
  14.   }
  15.  
5. Faraon-san - 13 Января, 2016 - 15:05:13 - перейти к сообщению
попробуй так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `size_id`, `size_name` FROM `size` WHERE `size_id` NOT IN (SELECT DISTINCT `id_size` FROM `material_format` WHERE `id_density` = '".$id_density_mat."')

 

Powered by ExBB FM 1.0 RC1