Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка внутри поля
 
 автор: SS   (29.08.2012 в 04:18)   письмо автору
 
 

В TABLE1 есть поле str с перечисленными в нем через пробел вразброс id из TABLE2: 40 18 22 11 и т.д., которым соответствует поле title с заголовками: A C D B
Подскажите, как вывести итог отсортированным A B C D?

$arr = explode(' ', $str);
foreach ($arr as $value)
{
$sql = "SELECT
table2.id AS id,
table2.title AS title
FROM table2 WHERE id = '$value'";
$tb = mysql_query($sql); 
while($pub = mysql_fetch_array($tb))
{
echo"".$pub['title']."<br>";
}
}


Отсортировать по id не проблема через

sort($arr); 


А как отсортировать по title?

  Ответить  
 
 автор: confirm   (29.08.2012 в 08:10)   письмо автору
 
   для: SS   (29.08.2012 в 04:18)
 

В запросе указывайте сортировку:
ORDER BY title
и вернется отсортированный запрос.
Гонять sql запросами из цикла, это издевательство.

  Ответить  
 
 автор: SS   (29.08.2012 в 09:11)   письмо автору
 
   для: confirm   (29.08.2012 в 08:10)
 

Стал бы я обращаться, если бы все так было просто :)

  Ответить  
 
 автор: Valick   (29.08.2012 в 09:34)   письмо автору
 
   для: SS   (29.08.2012 в 09:11)
 

все так непросто из-за неправильной организации БД
в частности значение поля должно быть атомарным ( первая нормальная форма )

  Ответить  
 
 автор: SS   (29.08.2012 в 09:47)   письмо автору
 
   для: Valick   (29.08.2012 в 09:34)
 

Это я тоже знаю. :)
А по существу проблемы никаких предложений?

  Ответить  
 
 автор: confirm   (29.08.2012 в 10:11)   письмо автору
 
   для: SS   (29.08.2012 в 09:47)
 

<?
$id 
implode(','array_map('intval'explode(' '$str))); 
$sql "SELECT id, title 
        FROM table2 WHERE id IN("
.$id.")
        ORDER BY title"

$tb mysql_query($sql);  
if(
$tb) {
  if(
mysql_num_rows($tb)) {
     while(
$pub mysql_fetch_assoc($tb)) {
        
//действия
     
}
  }  
}

  Ответить  
 
 автор: SS   (29.08.2012 в 12:33)   письмо автору
 
   для: confirm   (29.08.2012 в 10:11)
 

Спасибо большое, все сортирует.

  Ответить  
 
 автор: Valick   (29.08.2012 в 10:48)   письмо автору
 
   для: SS   (29.08.2012 в 09:47)
 

Отсортировать по id не проблема через sort($arr);
проблема как раз в том, что вы круглое носите, а квадратное катаете, проблема в том, что вы не знаете возможности MySQL как ровно и то, что не понимаете что нельзя лепить таблицы "от балды"
меняйте структуру таблиц, пока не поздно...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования