Спустя 3 минуты, 3 секунды (20.09.2012 - 23:33) neadekvat написал(а):
"Как обычно" используют нормальные формы, а не запятые. База спроектирована неверно.
Спустя 1 минута, 2 секунды (20.09.2012 - 23:34) inpost написал(а):
1. Абсолютно неверный подход, нарушена первая нормальная форма БД. Уверен на 99%.
2. explode - разделяет по символу.
2. explode - разделяет по символу.
Спустя 44 минуты, 6 секунд (21.09.2012 - 00:18) Братуха написал(а):
Я просто хотел занести в одно поле данные, которые могут содержать в себе и запятые, а если они есть, значит их примут как разделитель, мне это не как не подходит. Раскажу для чего мне все это надо, может дадите толковый совет. У меня есть страничка на которой есть условие задачи с соответствующим id и вот пользователю понравилась задача и он жмет на ссылку и добавляет в базу данные, что мол ему нравиться эта задача и так могут сделать несколько пользователей и все должны написать какой-то текст. Все эти данные я хотел сохранять в одном поле,(вместе с данными по задаче) разделителем в котором яв-ся \\. А вывести эти данные из базы я хотел при помощи массива и foreach. Зарание большое спасибо.
Спустя 15 минут, 43 секунды (21.09.2012 - 00:34) neadekvat написал(а):
Братуха, нет, должна быть отдельная таблица.
Например, есть таблица новостей и тэгов:
news
news_id | title
tags
tag_id | name
Как их соединить твоим, неправильным, методом: добавить в news еще одно поле: tags и забивать туда данные как-то так: 1,2,7,91
Как сделать праивльно: создать таблицу news_tags, а внем два поля: news_id и tag_id. И для каждой пары новость+тэг делать новую запись в этой таблице.
Это первая нормальная форма. Почитай про них. И не только на Вики - там довольно академично написано.
Например, есть таблица новостей и тэгов:
news
news_id | title
tags
tag_id | name
Как их соединить твоим, неправильным, методом: добавить в news еще одно поле: tags и забивать туда данные как-то так: 1,2,7,91
Как сделать праивльно: создать таблицу news_tags, а внем два поля: news_id и tag_id. И для каждой пары новость+тэг делать новую запись в этой таблице.
Это первая нормальная форма. Почитай про них. И не только на Вики - там довольно академично написано.
Спустя 17 минут, 38 секунд (21.09.2012 - 00:51) Братуха написал(а):
У мненя есть две таблицы offer и order. В таблице order храниться информация о задаче order_id, order_categ -категория, order_title - название, order_description -суть задачи, id - id пользователь, который написал задачу. Вот таким вот способом я выбираю данные из таблиццыКод PHP
Как Вы уже поняли я выбрал ту строку в которой есть id равное $_GET['order_id'] ну и в зависимости от этого я вывожу на страничке данные order_categ order_title order_description. Вот и подходим к второй таблице (offer). Вот ее содержимое subject_coment коментарии к задачи, id пользователя который оставил коментарий, order_id - id задачи, котороя нас интересует(то есть у нас есть пользователи, которые оставили каментарии на эти задачи). Я хотел спросить как можно вывести данные таблиц order и offer, на одной страничке, что бы у них были одинаковые order_id. Или лучше использовать другой вариант?
$res = mysqlQuery("SELECT *
FROM `order`
WHERE `order_id` = ".$_GET['order_id']);
if(mysql_num_rows($res) > 0)
$data = htmlChars(mysql_fetch_assoc($res));
Как Вы уже поняли я выбрал ту строку в которой есть id равное $_GET['order_id'] ну и в зависимости от этого я вывожу на страничке данные order_categ order_title order_description. Вот и подходим к второй таблице (offer). Вот ее содержимое subject_coment коментарии к задачи, id пользователя который оставил коментарий, order_id - id задачи, котороя нас интересует(то есть у нас есть пользователи, которые оставили каментарии на эти задачи). Я хотел спросить как можно вывести данные таблиц order и offer, на одной страничке, что бы у них были одинаковые order_id. Или лучше использовать другой вариант?
Спустя 7 минут, 8 секунд (21.09.2012 - 00:58) neadekvat написал(а):
Братуха, что вот здесь было непонятно?
Спустя 13 часов, 15 минут, 23 секунды (21.09.2012 - 14:14) Братуха написал(а):
Вот смотрите незнаю правильно ли сделал, есть две таблицы offer и order. В первой сведенья о задаче(все описывал выше) и таблица offer в которой есть данные о коментариях. У этих таблиц есть общее поле order_id вот ткой запрос я сделал
$res = mysqlQuery("SELECT order.*,offer.* FROM order,offer WHERE offer.order_id={$_GET['order_id']} or order.order_id = {$_GET['order_id']}");То есть выбрал данные из обеих таблиц в строках которых order_id совпадает с $_GET['order_id']. Данные из order достаются хорошо(всегда выходит одна страка, задачи не повторяются), а вот с offer проблемка там могут храниться несколько строк в которых order_id совпадает с $_GET['order_id']. Попробывал достать вот так
if(mysql_num_rows($res) > 0)
$data = htmlChars(mysql_fetch_assoc($res));
while ( $row = mysql_fetch_array($res))То есть я хотел достать все значения subject_coment в которых order_id совпадает с $_GET['order_id']. Что я не так сделал. Помогите пожалуйста. Зарание большое спасибо.
{ echo $row['subject_coment'];}
Спустя 1 час, 39 минут, 51 секунда (21.09.2012 - 15:54) neadekvat написал(а):
Цитата (Братуха @ 21.09.2012 - 15:14) |
Что я не так сделал. |
Не послушал меня.
Спустя 4 часа, 37 минут, 3 секунды (21.09.2012 - 20:31) Братуха написал(а):
Но так это то же самое ведь в одной таблице есть order_id и есть id то же самое что Вы предлагали создать отдельную таблицу с двумя id разных таблиц, или все же я не понял простоту использованиея Вашего варианта?
Спустя 2 часа, 16 минут, 56 секунд (21.09.2012 - 22:48) neadekvat написал(а):
Ты читал про нормальные формы?
Спустя 9 часов, 7 минут, 24 секунды (22.09.2012 - 07:55) Братуха написал(а):
Я читал статью, но не из википедии,там слишком умно написано, там написано что в каждом поле должно быть по одному значению. У меня в таблицах так и есть. Только я все рвно, равно не понимаю как связывать в запросе таблицу order, и положенные ей каментарии в таблице с order_id = order_id из таблицы order
Спустя 5 часов, 15 минут, 40 секунд (22.09.2012 - 13:11) neadekvat написал(а):
Цитата (Братуха @ 22.09.2012 - 08:55) |
У меня в таблицах так и есть |
Как это, ты сам говоришь, что у тебя там разделитель какой-то.