[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Занести значение из базы в массив
Братуха
У меня есть такой вопрос можно ли занести значения из базы в масссив, разделителем данных служит не запятая как обычно, а вот это \\ . То есть у меня в базе есть некоторый перечень данных первое \\ второе \\ третье \\ четвертое и тд. А мне надо занести эти данные в массив.как это сделать?



Спустя 3 минуты, 3 секунды (20.09.2012 - 23:33) neadekvat написал(а):
"Как обычно" используют нормальные формы, а не запятые. База спроектирована неверно.

Спустя 1 минута, 2 секунды (20.09.2012 - 23:34) inpost написал(а):
1. Абсолютно неверный подход, нарушена первая нормальная форма БД. Уверен на 99%.
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. И для каждой пары новость+тэг делать новую запись в этой таблице.
Это первая нормальная форма. Почитай про них. И не только на Вики - там довольно академично написано.

Спустя 17 минут, 38 секунд (21.09.2012 - 00:51) Братуха написал(а):
У мненя есть две таблицы offer и order. В таблице order храниться информация о задаче order_id, order_categ -категория, order_title - название, order_description -суть задачи, id - id пользователь, который написал задачу. Вот таким вот способом я выбираю данные из таблиццыКод PHP
$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']}");
if(mysql_num_rows($res) > 0)
$data = htmlChars(mysql_fetch_assoc($res));
То есть выбрал данные из обеих таблиц в строках которых order_id совпадает с $_GET['order_id']. Данные из order достаются хорошо(всегда выходит одна страка, задачи не повторяются), а вот с offer проблемка там могут храниться несколько строк в которых order_id совпадает с $_GET['order_id']. Попробывал достать вот так
while ( $row = mysql_fetch_array($res))  
{ echo $row['subject_coment'];}
То есть я хотел достать все значения subject_coment в которых order_id совпадает с $_GET['order_id']. Что я не так сделал. Помогите пожалуйста. Зарание большое спасибо.

Спустя 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)
У меня в таблицах так и есть

Как это, ты сам говоришь, что у тебя там разделитель какой-то.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.