for ($i=5; $i>=1; $i-1)
{
$sql="SELECT * FROM `$table`,`$table_d` where `$table_d`.`city`='$gorod' and `table_d`.`vid` ='$vid' and `$table`.`zvezda`='$i'";
if ($res=mysql_query($sql))
{
while ($sr=mysql_fetch_array($res))
{
echo "<tr><td width=900>Название: ".$sr['name']."</td></tr>";
}///while
}///if
}///for
причем сразу скажу что в таблице $table в поле `zvezda` может быть значение null
Спустя 3 минуты, 38 секунд (27.01.2010 - 08:59) Guest написал(а):
UNION для объединения таблиц, если у них одинаковые колонки.
Хотя зачем в цикле делать обращение к базе данных? Чтоб одна и та же информация по 5 раз выводилась?!
Хотя зачем в цикле делать обращение к базе данных? Чтоб одна и та же информация по 5 раз выводилась?!
Спустя 4 минуты, 25 секунд (27.01.2010 - 09:03) maxsim1982i написал(а):
а если не одинаковые колонки в таблицах?
Спустя 1 час, 11 минут, 24 секунды (27.01.2010 - 10:14) Ice написал(а):
for ($i=5; $i>=1; $i-1)
// $i -- - это не $i - 1</span>
Задумайтесь над этим.
Вы так задумали, что в звёздах, судя по всему, отеля, может быть NULL?
Запрос можно было осуществить быстрее, то есть без цикла и без повторения ненужных запросов. Дело в том, что мускуль работает не как РНР: РНР пробегается тупо по коду, везде, где видит свои теги, думает:"Во, а вт это - мое. И обрабатывает", а мускуль, сначала анализирует весь запрос, а потом уже его выполняет.
Затем..: зачем выбирать все поля таблицы, если вам нужно только одно название на вывод? Ещё один неуместный оператор - звёздочка, уменьшающий быстродействие.
Спустя 9 минут, 4 секунды (27.01.2010 - 10:23) maxsim1982i написал(а):
А как в запросе поставить условие что `zvezda` может иметь значение от 0 до 5
Спустя 1 минута, 9 секунд (27.01.2010 - 10:25) Ice написал(а):
$sql="SELECT `name` FROM `$table`,`$table_d`
WHERE `$table_d`.`city`='$gorod'
AND `table_d`.`vid` ='$vid'
AND `$table`.`zvezda` IN('0','1','2','3','4','5')";
Спустя 1 минута, 52 секунды (27.01.2010 - 10:26) Winston написал(а):
Попробуй так:
$sql="SELECT * FROM `$table`,`$table_d` where `$table_d`.`city`='$gorod' and `$table_d`.`vid` ='$vid'";
$res = mysql_query($sql);
while ($sr=mysql_fetch_assoc($res))
{
echo "<tr><td width=900>Название: ".$sr['name']."</td></tr>";
}
Спустя 1 минута, 19 секунд (27.01.2010 - 10:28) maxsim1982i написал(а):
А $i будет брать значения из цикла for ($i=0; $i>0; $i=$i-1)
Спустя 2 минуты, 33 секунды (27.01.2010 - 10:30) maxsim1982i написал(а):
IN('0','1','2','3','4','5')
вот так она будет в какой последовательности выбирать начиная с нуля или порядка не существует
мне нужен порядок что сначала 5 потом 4 и в конце nul
вот так она будет в какой последовательности выбирать начиная с нуля или порядка не существует
мне нужен порядок что сначала 5 потом 4 и в конце nul
Спустя 2 минуты, 19 секунд (27.01.2010 - 10:33) Ice написал(а):
Цитата (maxsim1982i @ 27.01.2010 - 07:28) |
А $i будет брать значения из цикла for ($i=0; $i>0; $i=$i-1) |
Запомните на будущее, что SQL - хоть это и язык запросов, но он тоже весьма и весьма мощен. Все, что можно сделать в базе, пусть делается в базе. А в ней можно достаточно многое сделать, а не просто использовать всю мощь MySQL в качестве ведра, для хранения данных.
Спустя 3 минуты, 29 секунд (27.01.2010 - 10:36) Ice написал(а):
Цитата (maxsim1982i @ 27.01.2010 - 07:30) |
IN('0','1','2','3','4','5') вот так она будет в какой последовательности выбирать начиная с нуля или порядка не существует мне нужен порядок что сначала 5 потом 4 и в конце nul |
Почему не существует? Существует и еще какой=))) Кто вам мешает отсортировать по полю со звёздами?=)
$sql="SELECT `name` FROM `$table`,`$table_d`
WHERE `$table_d`.`city`='$gorod'
AND `table_d`.`vid` ='$vid'
AND `$table`.`zvezda` IN('0','1','2','3','4','5')
ORDER BY `$table`.`zvezda` ASC";
ASC и DESC - флаги сортировки.
Upd.: Ваши таблицы имеют поля с первичными ключами или нет?
Спустя 2 минуты, 32 секунды (27.01.2010 - 10:39) maxsim1982i написал(а):
Ice
Спасибо всё понил. Тема закрыта.
Спасибо всё понил. Тема закрыта.
Спустя 1 час, 45 минут, 59 секунд (27.01.2010 - 12:25) Gabriel написал(а):
Ice
а разве нельзя воспользоварся between?
а разве нельзя воспользоварся between?
Спустя 1 час, 2 минуты, 22 секунды (27.01.2010 - 13:27) Ice написал(а):
Цитата (Gabriel @ 27.01.2010 - 09:25) |
Ice а разве нельзя воспользоварся between? |
Можно конечно! Вот и вправду=)
_____________