PHP.SU

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

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

> Найдено сообщений: 12
ketovpavel Отправлено: 01 Февраля, 2015 - 01:54:48 • Тема: Прочесть значение записи ячейки через запятую • Форум: Программирование на PHP

Ответов: 3
Просмотров: 749
Всё тему закрываю, вопрос решил следующим решением:

PHP:
скопировать код в буфер обмена
  1.  
  2. $sql_goods = mysql_query("SELECT * FROM goods");
  3.         while($ref = mysql_fetch_array($sql_goods)){
  4.                 $id = trim($ref['id']);
  5.                 $s_goods[$id]['id'] = trim($ref['id']);
  6.  
  7.                 $arr_goods = explode(',',trim($ref['cat_id']));
  8.  
  9.                 foreach($arr_goods as $i_goods)
  10.                        
  11.                 $s_goods[$id]['title_id'][$i_goods]['title_goods'] = mysql_result(mysql_query("SELECT title FROM category WHERE id = $i_goods"),0);
  12.         }
  13.  
ketovpavel Отправлено: 31 Января, 2015 - 19:00:23 • Тема: Прочесть значение записи ячейки через запятую • Форум: Программирование на PHP

Ответов: 3
Просмотров: 749
DelphinPRO пишет:
ketovpavel пишет:
записи чисел через запятую например: 1,2,3

Категорически неправильно построена база. Вот и не получается у вас нифига.
Сделайте нормальную связующую таблицу.


Всё правильно у меня составлена база, я просто не весь код показал и даже не ту базу которая у меня, так для примера сократил чтоб наглядней было и понятней, если начну всю суть проекта описывать там черт ногу уже сломит.

А так все работает и сортирует правильно, если вывести:

PHP:
скопировать код в буфер обмена
  1.  
  2. echo $s_goods[$id]['title_goods'] = mysql_result(mysql_query("SELECT title FROM category WHERE id = $i_goods"),0);
  3.  


Дело в том, что работаю с php не так давно и не могу ещё полностью разобраться как реализовать цыкл в цыкле и по этому такой переплёт получается с выводом
ketovpavel Отправлено: 31 Января, 2015 - 15:25:47 • Тема: Прочесть значение записи ячейки через запятую • Форум: Программирование на PHP

Ответов: 3
Просмотров: 749
Есть таблица goods в которой есть столбец с именем cat_id типом varchar значение которого является записи чисел через запятую например: 1,2,3 или 15,48,50 и т.д. и т.п. Каждое число является id конкретной категории из другой таблицы category для вывода на экран.

Вопрос как мне прочесть данную запись конкретной ячейки допустим мне нужно вывести 15,48,50 соответственно вместо чисел нужно сравнить с таблицей category и вывести на экран title конкретной записи?

Делаю так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql_goods = mysql_query("SELECT * FROM goods");
  3.         while($ref = mysql_fetch_array($sql_goods)){
  4.                 $id = trim($ref['id']);
  5.                 $s_goods[$id]['id'] = trim($ref['id']);
  6.  
  7.                 $arr_goods = explode(',',trim($ref['cat_id']));
  8.  
  9.                 foreach($arr_goods as $i_goods)
  10.                        
  11.                 $s_goods[$id]['title_goods'] = mysql_result(mysql_query("SELECT title FROM category WHERE id = $i_goods"),0);
  12.         }
  13.  


Почему выводит только по последнему числу, а не все числа например если значение 1,2,3 то выводит только 3 или если 15,48,50 то выводит только 50
ketovpavel Отправлено: 18 Ноября, 2014 - 11:39:23 • Тема: Сравнение столбца в одной и той же таблице • Форум: SQL и Архитектура БД

Ответов: 14
Просмотров: 80
Sail теперь понятно спасибо!
ketovpavel Отправлено: 18 Ноября, 2014 - 10:46:55 • Тема: Сравнение столбца в одной и той же таблице • Форум: SQL и Архитектура БД

Ответов: 14
Просмотров: 80
Sail Огромнейшее Вам спасибо, был бы миллионером подарил бы Вам миллион Радость !

Вот теперь всё правильно работает, а то скорей всего esterio неправильно меня понял , то что мне на самом деле нужно.

Если выбирать по строке в которых совпадает два поля то я делаю так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $reply_to_name_guest = mysql_result(mysql_query("SELECT name_guest FROM comments WHERE comm_id_parent = id"),0);
  3.  

Разве так неправильно и нужно делать какую то ещё проверку? Однако
ketovpavel Отправлено: 17 Ноября, 2014 - 16:48:11 • Тема: Сравнение столбца в одной и той же таблице • Форум: SQL и Архитектура БД

Ответов: 14
Просмотров: 80
Sail прав, то что если использовать способ esterio то сравнение получается если к примеру comm_id_parent = 2 то выбирается всё равно name_guest из id 1 а мне нужно если comm_id_parent = 2 то и выбирать он должен id 2
(Добавление)
Sail пишет:
esterio, серьезно?
ketovpavel, для этого существуют псевдонимы.
Например, так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT t1.`field1`, t2.`field1` FROM `table1` t1 JOIN `table1` t2 ON t2.`id` = t1.`parent_id`

или 'left join', чтобы выбрать из t1 ещё и те, что не ссылаются на t2...


Sail Опишите пожалуйста по подробней как использовать Ваш способ в моем примере, а то как оказалось у меня тупо сравнение идет только по 1 id а это значит что я не правильно использую примеры
(Добавление)
По идее всё должно сравниваться, но нет ни фига не сравнивает, что не так?
PHP:
скопировать код в буфер обмена
  1.  
  2. $reply_to_name_guest = mysql_result(mysql_query("SELECT t1.`name_guest`, t2.`name_guest` FROM `comments` t1 JOIN comments t2 ON t2.`id` = t1.`comm_id_parent`"),0);
  3.  
ketovpavel Отправлено: 17 Ноября, 2014 - 16:03:32 • Тема: Сравнение столбца в одной и той же таблице • Форум: SQL и Архитектура БД

Ответов: 14
Просмотров: 80
Да Ваш вариант то же работает спасибо!
Sail пишет:
esterio пишет:
Sail
там же одна таблица. я так понял это дерево. и автор топика ищет строкы в которых совпадает два поля

Да, таблица одна Улыбка
Но стрелочка-то к другой строчке на скриншоте...

Не ожидал, что вариантов будет несколько Закатив глазки
ketovpavel Отправлено: 17 Ноября, 2014 - 15:48:49 • Тема: Сравнение столбца в одной и той же таблице • Форум: SQL и Архитектура БД

Ответов: 14
Просмотров: 80
Работает!!! Радость
esterio пишет:
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query('SELECT name_guest FROM comments WHERE comm_id_parent = id');
  2. if($result)
  3. {
  4.     $row = mysql_fetch_assoc($result);
  5. }
  6. else
  7. {
  8.     die(mysql_error());
  9.  
  10. var_dump($row);
  11. }


Спасибо огромное, Вы мне очень помогли!
А я битые два часа пытался составить, но даже близко к этому не было... Не понял
ketovpavel Отправлено: 17 Ноября, 2014 - 15:26:41 • Тема: Сравнение столбца в одной и той же таблице • Форум: SQL и Архитектура БД

Ответов: 14
Просмотров: 80
Например:

PHP:
скопировать код в буфер обмена
  1.  
  2. $reply_to_name_guest = mysql_result(mysql_query("SELECT name_guest FROM comments WHERE comm_id_parent = чему то"),0);
  3.  


На скриншоте я указал, что мне надо сравнить comm_id_parent с (id 1) но как это сделать?

Или вообще такое не возможно?
ketovpavel Отправлено: 15 Ноября, 2014 - 13:36:49 • Тема: Как вывести массив в php • Форум: Работа с сетью

Ответов: 2
Просмотров: 1112
Viper да изначально нужно было с именем получать, но сейчас уже хотя бы емайлы получить

Все равно не видит массив
Даже так если делать то приходит (To: Array)
PHP:
скопировать код в буфер обмена
  1.  
  2. ->to(''.$mass_comm_email.'')
  3.  
ketovpavel Отправлено: 15 Ноября, 2014 - 12:26:50 • Тема: Как вывести массив в php • Форум: Работа с сетью

Ответов: 2
Просмотров: 1112
Использовал скрипт который предоставлен на этой странице: http://forum.php.su/topic.php?fo...ostid=1416046593
Я новичок в php подскажите пожалуйста, как вывести массив в php?
Сразу прошу прощения за копию сообщения просто не хотел создавать тему для этого но всё же что не так в данном коде:
Есть две таблицы в базе данных, 1-я (users) 2-я (subs_comment) мне нужно из обеих таблиц вытащить значение и сравнить их, все работает если использовать echo но как только я хочу использовать массив вне цикла то он его не видит
PHP:
скопировать код в буфер обмена
  1.  
  2. // Получаем E-mail-ы пользователей кто подписан на обновления  
  3.     $sql_subs_comment_id = mysql_query("SELECT * FROM subs_comment"); // Вытаскиваем страницу продукта и автора
  4.     while($ref = mysql_fetch_array($sql_subs_comment_id)){
  5.       $cont_id = trim($ref['cont_id']);
  6.       $auth_id = trim($ref['auth_id']);
  7.      
  8.     // Получаем массив из авторов
  9.       $sql_comm_email = mysql_query("SELECT email FROM users WHERE id = $auth_id AND $cont_id = $product");
  10.       $mass_comm_email = array();
  11.       while ($arr_comm_email = mysql_fetch_assoc($sql_comm_email)){
  12.      
  13.       // Выводим для теста массив на экран # Всё прекрасно выводиться
  14.         echo $mass_comm_email[] = $arr_comm_email['email']."
  15. ";
  16.  
  17.       }
  18.     }
  19.  
  20.   // Подключаем класс для отправки почты
  21.     require_once ('Send_mail.php');
  22.    
  23.   // Отправляем письма подписчикам
  24.     Send_mail::from('robot@site.ru', 'Site.ru')
  25.    
  26.     // Вот сюда надо получить значение массива в таком вот виде
  27.       ->to($toUsers = array(
  28.         array('user@mail.ru', 'Василий'),
  29.             array('user2@mail.ru', 'Андрей')
  30.       ))
  31.     ////////////////////////////////////////////
  32.    
  33.     // ПРОБОВАЛ ТАК: # Но ни чего не подставляется
  34.     //  ->to($mass_comm_email[] = $arr_comm_email['email'])
  35.    
  36.       ->subject('Новый комментарий на сайте Site.ru')
  37.       ->message('Это письмо отправлено автоматически так как Вы подписаны на обновления комментариев
  38. Отписаться: url')
  39.       ->charset('utf-8')
  40.       ->time_limit(30)
  41.       ->content_type(Send_mail::CONTENT_TYPE_HTML)
  42.       ->content_encoding(Send_mail::CONTENT_ENCODING_QUOTED_PRINTTABLE)
  43.       ->send();
  44.  
  45.   // END Отправки письма подписчикам
  46.  

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB