Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка 
:(
    Опции темы
NOOB
Дата 16.7.2004, 11:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как будет происходить сортировка если данные взяты из 3 таблиц

Например вот 2 массива:
$o=mysql_query("select tovar.creater, model, marka, year_exit, color, opn, reyting from tovar1, cell where tovar.id = cell.tovar");
$e=mysql_query("select prod.name from prod, cell where cell.prod = prod.id");

Оба массива надо отсортировать по creater'у

заранее спасиб

  Вверх
Secandr
Дата 16.7.2004, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



а почему бы в запросе не отсортировать?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
HalkaR
Дата 16.7.2004, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 2
Всего: 42



Во втором запросе вообще нет creater'a.
PM MAIL   Вверх
NOOB
Дата 16.7.2004, 11:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а как сразу в запросе отсортировать если идет сравнение where tovar.id = cell.tovar по которому он будет выводить данные, или если можно сразу в запросе то как???
  Вверх
NOOB
Дата 16.7.2004, 12:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











все выглядит так:
echo "<table border=1 width=100% bgcolor=gold>";
echo "<tr><td>Производитель</td><td>Модель</td><td>Марка</td>";
echo "<td>Год выпуска</td><td>Цвет</td><td>Опции</td>";
echo "<td>Рейтинг</td><td>Продавец</td><td>Цена</td><td>Наличие</td></tr>";

$p=mysql_query("select cell.price1, nal
from tovar1, cell where cell.tovar = tovar1.id");
$o=mysql_query("select tovar1.creater, model, marka, year_exit, color, opn, reyting from tovar1, cell where tovar1.id = cell.tovar");
$e=mysql_query("select prod.name from prod, cell where cell.prod = prod.id");

for ($i=0; $i<mysql_num_rows($o); $i++)

{
echo "<tr>";
$g=mysql_fetch_array($e);
$d=mysql_fetch_array($p);
$v=mysql_fetch_array($o);

echo "<td>$v[creater]</td><td>$v[model]</td><td>$v[marka]</td>";
echo "<td>$v[year_exit]</td><td>$v[color]</td>";
echo "<td>$v[opn]</td><td>$v[reyting]</td><td>$g[name]</td><td>$d[price1]<td><td>$d[nal]</td>";

echo "</tr>";
}
просто надо чтоб при сортировке сдвигались целые строки
  Вверх
Secandr
Дата 16.7.2004, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Код
ORDER BY table_name.colum_name



--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
NOOB
Дата 16.7.2004, 12:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а если надо сортировать не 1 таблицу а массив то как это будет выглядеть??
  Вверх
Secandr
Дата 16.7.2004, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



а что вы под этим понимаете?


Мне кажится вам нужно просто грамотно составить запрос, а не сортировать массивы.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
NOOB
Дата 16.7.2004, 13:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Надо отсортировать получившуюся таблицу в ходе предыдуших действий.
Но получившаяся таблица в свою очередь состоит из 3 таблиц Tovar, Cell, Prod. Сортировать нужно по creater. Если допустим мы отсортируем таблицу Tovar то как мне кажется остальные таблицы это не изменит. Может я чето не так понимаю....
  Вверх
Secandr
Дата 16.7.2004, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



правильно. Но если эти таблицы зависят друг от друга, то лучше получать их в одном запросе, а не трёх разных и сортировать их там же в запросе.

B вообще чем принципиально отличаются:
Код
select cell.price1, nal from tovar1, cell where cell.tovar = tovar1.id
и
Код
select tovar1.creater, model, marka, year_exit, color, opn, reyting from tovar1, cell where tovar1.id = cell.tovar

Это всё точно можно было в одном запросе получить.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
NOOB
Дата 19.7.2004, 06:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да но ведь есть еще:
$e=mysql_query("select prod.name from prod, cell where cell.prod = prod.id");
он ведь не будет участвовать в сортировке.

  Вверх
Secandr
Дата 19.7.2004, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



а каким образом этот запрос привязан к двум предыдущим?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
NOOB
Дата 19.7.2004, 09:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











на экран выводится таблица сост. из 3 таблиц:cell, prod, tovar;
В начале идут данные из tovar, затем из prod, а в конце из cell.
Я выложил все чуть выше.
А запрос этот привязан: select prod.name from prod, cell where cell.prod = prod.id
  Вверх
Secandr
Дата 19.7.2004, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



так сведи их все вместе в один запрос и не мучайся.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
NOOB
Дата 19.7.2004, 11:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ну яб не мучался тока я пока не догнал как их в 1 запрос свести, были некоторые попытки но они не увенчались успехом. Кстати как сразу провести сортировку в запросе(через and)? Заранее спасиб.
  Вверх
Secandr
Дата 19.7.2004, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



не понял вопроса, как это сортировка через and ?

Сортировку делают так:
Код
GROUP BY table1.colum1,table2.colum2,table1.colum3


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

Если уж так всё сложно используй пхп функцию array_multisort


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
NOOB
Дата 19.7.2004, 12:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Посмотри может что-то ясней станет;

Обший вид:

+---------+------+-----+----------+----+-----+-------+-----+-----+----+
|Производ.|Модель|Марка|Год ыпуска|Цвет|Опции|Рейтинг|Прод.|Цена1|Нал.|
+---------+------+-----+----------+----+-----+-------+-----+-----+----+
|bmw | |525i |2000 |red |пэп |50% |Петя |1500$|1 |
|mers | |660sl|1999 |blue|пэп |55% |Коля |1000$|2 |
|opel |omega | |1998 |red |пэп |30% |Вася |2000$|1 |

Товар:

+-+---------+------+-----+----------+----+-----+-------+
|id|Производ.|Модель|Марка|Год ыпуска|Цвет|Опции|Рейтинг|
+-+---------+------+-----+----------+----+-----+-------+
|1 |mers | |660sl|1999 |blue|-\-\-|-\-\-\-|
|2 |bmw |-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\|
|3 |opel |-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\|

Прод:

+--+---------+
|id |Имя |-\-\-|-\-\-\|-\-\-\|-\-\-\|-\-\-|
+--+---------+
|1 |Коля |
|2 |Вася |
|3 |Петя |


Cell:

+--+-----+----+------+---+
|id |tovar|prod|price1|nal|
+--+-----+----+------+---+
|1 |2 |3 |1500$ |1 |
|2 |1 |1 |1000$ |2 |
|3 |3 |2 |2000$ |1 |

Начнем сначала; как это все отсортировать. Заранее Спасиб.....
  Вверх
Secandr
Дата 19.7.2004, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



что с чем связано и как?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
NOOB
Дата 19.7.2004, 12:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











разве я на 1 странице не расписал???

{
echo $head;
echo $cp;
echo $body;
echo "<h2>$error</h2>";
echo "</body></html>";
exit;
}

mysql_select_db($db_name);

echo "<table border=1 width=100% bgcolor=gold>";
echo "<tr><td>Производитель</td><td>Модель</td><td>Марка</td>";
echo "<td>Год выпуска</td><td>Цвет</td><td>Опции</td>";
echo "<td>Рейтинг</td><td>Продавец</td><td>Цена</td><td>Наличие</td></tr>";


$o=mysql_query("select tovar1.creater, tovar1.model, tovar1.marka, tovar1.year_exit, tovar1.color, tovar1.opn, tovar1.reyting from tovar1 order by tovar1.creater");

$e=mysql_query("select prod.name from prod, cell where cell.prod = prod.id");


for ($i=0; $i<mysql_num_rows($e); $i++)

{
echo "<tr>";
$g=mysql_fetch_array($e);
$v=mysql_fetch_array($o);


echo "<td>$v[creater]</td><td>$v[model]</td><td>$v[marka]</td>";
echo "<td>$v[year_exit]</td><td>$v[color]</td>";
echo "<td>$v[opn]</td><td>$v[reyting]</td><td>$g[name]</td><td>$v[price1]</td><td>$v[nal]</td>";

echo "</tr>";
}

echo "</table></body></html>"
?>
  Вверх
NOOB
Дата 19.7.2004, 12:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Обший вид:

+---------+------+-----+----------+----+-----+-------+-----+-----+----+
|Производ.|Модель|Марка|Год ыпуска|Цвет|Опции|Рейтинг|Прод.|Цена1|Нал.|
+---------+------+-----+----------+----+-----+-------+-----+-----+----+
|bmw | |525i |2000 |red |пэп |50% |Петя |1500$|1 |
|mers | |660sl|1999 |blue|пэп |55% |Коля |1000$|2 |
|opel |omega | |1998 |red |пэп |30% |Вася |2000$|1 |

До Прод. все идет с Товара; Прод с Продавца(name); Цена1,Нал c Cell(price1, nal)
  Вверх
NOOB
Дата 20.7.2004, 13:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











че нет не у кого идей????
  Вверх
Secandr
Дата 20.7.2004, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



так и состовляй один запрос:
у тебя:
Cell.tovar = Товар.id and Cell.prod=Товар.id

и не нужно страшных сортировок!


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
No_Mad
Дата 20.7.2004, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 19.7.2004

Репутация: нет
Всего: нет



так мне сами данные нужно отсортировать (напривмер: Производителя в алфав порядке)
PM MAIL ICQ   Вверх
Secandr
Дата 20.7.2004, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



если ты все запросы сведёшь к одному, то добавив в конце запроса ORDER BY таблица.поле отсортируешь по нужному параметру.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
No_Mad
Дата 20.7.2004, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 19.7.2004

Репутация: нет
Всего: нет



Спасибо огромное!!!Яб еще долго парился с этим...
PM MAIL ICQ   Вверх
No_Mad
Дата 21.7.2004, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 19.7.2004

Репутация: нет
Всего: нет



Всплыл еще 1 вопрос. Если Столбец "время жизни сообшения" будет меньше текушей даты или столбец наличие = 0, как сделать чтоб он невыводил строку...

Это сообщение отредактировал(а) No_Mad - 21.7.2004, 08:45
PM MAIL ICQ   Вверх
Secandr
Дата 21.7.2004, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



в WHERE добавь условие "and наличие>0 and время жизни>NOW()"

Мне кажется тебе нужно идти в ветку БД и читать топик пегаса о базах данных.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
No_Mad
Дата 22.7.2004, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 19.7.2004

Репутация: нет
Всего: нет



спасиб
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0733 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.