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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Выборка одинаковых id из нескольких таблиц

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
arhat
Отправлено: 21 Марта, 2014 - 13:40:16
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




Всем привет! В php новичёк, поэтому необессудьте за мои вопросы Улыбка Уже месяца три тренируюсь в создании подобия инет-магазина, пытаюсь понят общие принципы Улыбка Проблема первая. В БД есть две таблицы с детскими товарами "products_m", "products_g", структура у таблиц абсолютно одинаковая. При нажатии "Добавить в корзину" на товаре из таблицы "products_g", в корзину всё равно летит товар из "products_m" с таким же id. Также подсчёт общей суммы идёт неправильный, но это уже будет следующий вопрос. Сначала понять бы, как направлять определённый товар из любой таблицы в корзину.... Заранее искренне благодарен Улыбка

Вот код вывода в корзине:

CODE (php):
скопировать код в буфер обмена
  1. <?php foreach ($_SESSION['cart'] as $id => $quantity):
  2.          $product = get_product($id);
  3.          $product1 = get_product1($id);
  4.          
  5.        ?>
  6.  
  7.           <tr>
  8.           <td align="center"><?=$product['title']; ?></td>
  9.          
  10.           <td align="center">   <?=number_format($product['price'],2); ?> руб</td>
  11.          
  12.           <td align="center">  <?=number_format($product['price'] * $quantity ,2); ?> руб</td>
  13.           </tr>
  14.      
  15.       <?php endforeach; ?>


Это вывод продукта из таблицы "products_m":

CODE (htmlphp):
скопировать код в буфер обмена
  1. <div><a href="#"><img src="userfiles/<?=$product['image']?>" width="150" height="100"     alt="" /></a></div>
  2. <div class="description">
  3.                  <div class="product-name"><a href="#"><?=$product['title']?></a></div>
  4.                  <div class="product-price">Цена: <?=$product['price']?> руб</div>
  5.                  <div><a href="index.php?view=add_to_cart&id=<?=$product['id']?>">Добавить в корзину</a></div>




Это вывод продукта из таблицы "products_g":



CODE (htmlphp):
скопировать код в буфер обмена
  1. <div><a href="#"><img src="userfiles/<?=$product1['image']?>" width="150" height="100"     alt="" /></a></div>
  2.                     <div class="description">
  3.                         <div class="product-name"><a href="#"><?=$product1['title']?>a></div>
  4.                         <div class="product-price">Цена: <?=$product1['price']?> руб</div>
  5.                         <div><a href="index.php?view=add_to_cart1&id=<?=$product1['id']?>">Добавить в корзину</a></div>



Здесь выборка из двух таблиц:

CODE (htmlphp):
скопировать код в буфер обмена
  1. function get_product($id)
  2.   {
  3.     db_connect();
  4.     $query = ("SELECT * FROM `products_m`   WHERE id='$id'   ");
  5.    
  6.     $result = mysql_query($query);
  7.    
  8.     $row = mysql_fetch_array($result);
  9.    
  10.     return $row;
  11.     }
  12.    
  13.    
  14.     function get_product1($id)
  15.   {
  16.     db_connect();
  17.     $query = ("SELECT * FROM `products_g`  WHERE id='$id'   ");
  18.    
  19.     $result = mysql_query($query);
  20.    
  21.     $row = mysql_fetch_array($result);
  22.    
  23.     return $row;
  24.     }
 
 Top
difight
Отправлено: 21 Марта, 2014 - 13:47:25
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




А если у таблиц одна структура и в обеих хранятся товары, то зачем их две ? Зачем вообще вам для товара 2 таблицы?
 
My status
 Top
arhat
Отправлено: 21 Марта, 2014 - 13:54:22
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




difight пишет:
А если у таблиц одна структура и в обеих хранятся товары, то зачем их две ? Зачем вообще вам для товара 2 таблицы?


difight, в одной таблице хотелось бы хранить данные о товарах для мальчиков, в другой - для девочек.
 
 Top
Мелкий Супермодератор
Отправлено: 21 Марта, 2014 - 14:06:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




arhat пишет:
структура у таблиц абсолютно одинаковая

Что означает ошибку проектирования.
Если только вы не седой DBA - то без вариантов ошибка проектирования.


-----
PostgreSQL DBA
 
 Top
difight
Отправлено: 21 Марта, 2014 - 14:10:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




arhat пишет:
difight пишет:
А если у таблиц одна структура и в обеих хранятся товары, то зачем их две ? Зачем вообще вам для товара 2 таблицы?


difight, в одной таблице хотелось бы хранить данные о товарах для мальчиков, в другой - для девочек.

сделать одну таблицу добавить параметр sex и мальчики 1 девочки 0 или как нить так
 
My status
 Top
arhat
Отправлено: 21 Марта, 2014 - 14:19:11
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




difight пишет:
сделать одну таблицу добавить параметр sex и мальчики 1 девочки 0 или как нить так


Да, у меня есть в одинарной таблице cat_id, где разделяю мальчиков и девочек. И с одной таблицей всё замечательно выходит. Хотел попробовать с двумя таблицами, чтобы легче было ориентироваться(для добавления товара, удаления, изменения данных). Даже не думал, что с двумя таблицами будет засада.... Огорчение или Радость
(Добавление)
Мелкий пишет:
arhat пишет:
структура у таблиц абсолютно одинаковая

Что означает ошибку проектирования.
Если только вы не седой DBA - то без вариантов ошибка проектирования.


Радость Я точно не седой DBA. Я только учусь Радость Просто попробовал разделить товары для мальчиков и товары для девочек в две разные, но одинаковые по структуре таблицы.
 
 Top
difight
Отправлено: 21 Марта, 2014 - 15:07:25
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




arhat пишет:
difight пишет:
сделать одну таблицу добавить параметр sex и мальчики 1 девочки 0 или как нить так


Да, у меня есть в одинарной таблице cat_id, где разделяю мальчиков и девочек. И с одной таблицей всё замечательно выходит. Хотел попробовать с двумя таблицами, чтобы легче было ориентироваться(для добавления товара, удаления, изменения данных). Даже не думал, что с двумя таблицами будет засада.... Огорчение или Радость
(Добавление)
Мелкий пишет:
arhat пишет:
структура у таблиц абсолютно одинаковая

Что означает ошибку проектирования.
Если только вы не седой DBA - то без вариантов ошибка проектирования.


Радость Я точно не седой DBA. Я только учусь Радость Просто попробовал разделить товары для мальчиков и товары для девочек в две разные, но одинаковые по структуре таблицы.


поле id Должно быть уникальным у товаров, а у вас получается каша и нарушение логики, при желании можно конечно отслеживать м или ж это и выбирать из нужной таблицы но все равно логика уже нарушена, да и в дальнейшем, если захотите какие нибудь лайки сделать для товара сложнее будет, так как айди у вас товары не уникальными получаются Улыбка

(Отредактировано автором: 21 Марта, 2014 - 15:08:15)

 
My status
 Top
arhat
Отправлено: 21 Марта, 2014 - 15:26:12
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




Мелкий пишет:
поле id Должно быть уникальным у товаров, а у вас получается каша и нарушение логики, при желании можно конечно отслеживать м или ж это и выбирать из нужной таблицы но все равно логика уже нарушена, да и в дальнейшем, если захотите какие нибудь лайки сделать для товара сложнее будет, так как айди у вас товары не уникальными получаются Улыбка


Если id во второй таблице ставлю уникальным, то в корзину уже вообще ничего не летит, кроме количества. И сколько до этого не бился, не получается передать этот товар в корзину Огорчение

(Отредактировано автором: 21 Марта, 2014 - 15:26:44)

 
 Top
difight
Отправлено: 21 Марта, 2014 - 15:34:16
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




arhat пишет:
Мелкий пишет:
поле id Должно быть уникальным у товаров, а у вас получается каша и нарушение логики, при желании можно конечно отслеживать м или ж это и выбирать из нужной таблицы но все равно логика уже нарушена, да и в дальнейшем, если захотите какие нибудь лайки сделать для товара сложнее будет, так как айди у вас товары не уникальными получаются Улыбка


Если id во второй таблице ставлю уникальным, то в корзину уже вообще ничего не летит, кроме количества. И сколько до этого не бился, не получается передать этот товар в корзину Огорчение

переделай все в 1 таблицу, проблем будет меньше поверь
 
My status
 Top
arhat
Отправлено: 21 Марта, 2014 - 15:34:19
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




Если посмотрите по вышеприведённым кодам в корзину передаётся только одна переменная: $product , куда передаются товары из таблицы с мальчиками, товары с девочками передаются в переменную $product1; Вот как можно передавать id из двух таблиц в одну переменную $product? Это вообще возможно?
(Добавление)
difight пишет:
переделай все в 1 таблицу, проблем будет меньше поверь


Если не получится справится с одной таблицей, то придётся так и сделать, всё собирать в одну таблицу Радость
 
 Top
difight
Отправлено: 21 Марта, 2014 - 15:37:37
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




arhat пишет:
Если посмотрите по вышеприведённым кодам в корзину передаётся только одна переменная: $product , куда передаются товары из таблицы с мальчиками, товары с девочками передаются в переменную $product1; Вот как можно передавать id из двух таблиц в одну переменную $product? Это вообще возможно?
(Добавление)
difight пишет:
переделай все в 1 таблицу, проблем будет меньше поверь


Если не получится справится с одной таблицей, то придётся так и сделать, всё собирать в одну таблицу Радость

PHP:
скопировать код в буфер обмена
  1.     function get_product($id)
  2.       {
  3.         db_connect();
  4.         $query = ("SELECT * FROM `products_m`   WHERE id='$id'   ");
  5.        
  6.         $result = mysql_query($query);
  7.        if ($result){
  8.         $row = mysql_fetch_array($result);
  9.        
  10.         return $row;
  11. }
  12.         }
  13.        
  14.        
  15.         function get_product1($id)
  16.       {
  17.         db_connect();
  18.         $query = ("SELECT * FROM `products_g`  WHERE id='$id'   ");
  19.        
  20.         $result = mysql_query($query);
  21.        if ($result){
  22.         $row = mysql_fetch_array($result);
  23.        
  24.         return $row;
  25. }
  26.         }

так м.б. прокатит, не проверял Голливудская улыбка
(Добавление)
а, забыл и все 1 переменной получай
 
My status
 Top
arhat
Отправлено: 21 Марта, 2014 - 15:44:57
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




difight пишет:
а, забыл и все 1 переменной получай


Ну вот - а как всё одной переменной получить??? Вот в корзине стоит $product , и попадает товар только из одной таблицы...

(Отредактировано автором: 21 Марта, 2014 - 16:19:54)

 
 Top
arhat
Отправлено: 21 Марта, 2014 - 19:57:03
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




difight пишет:
а, забыл и все 1 переменной получай


Так никто не знает, как два запроса присвоить одной переменной? Но всё равно благодарю, что уделили время, - есть ещё живые люди Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB