Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: SELECT* из двух колонок с сортировкой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
butsasha
Отправлено: 22 Декабря, 2013 - 12:41:42
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Всем привет ребята. Нужна помощь. Как с 2 столбиков в таблице выбрать меньшее число в рядке и записать в другую колонку и потом отсортировав рядки по последней колонке?
Есть такой код:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include ("conf.php");
  3.     // соединяемся с сервером базы данных
  4.     $connect_to_db = mysql_connect($db_host, $db_username, $db_password)
  5.                 or die("Could not connect: " . mysql_error());
  6.     // подключаемся к базе данных
  7.     mysql_select_db($db_name, $connect_to_db)
  8.                 or die("Could not select DB: " . mysql_error());
  9.     mysql_query ("SET NAMES cp1251");
  10.     // выбираем все значения из таблицы
  11.     $qr_result = mysql_query("SELECT * FROM $db_table_to_show")
  12.                 or die(mysql_error());
  13.         // выводим на страницу сайта заголовки HTML-таблицы
  14.         echo '<thead>';
  15.         echo '<tr>';
  16.         echo '<th>№</th>';
  17.         echo '<th>Имя</th>';
  18.         echo '<th>Авто</th>';
  19.     echo '<th>Привод</th>';
  20.         echo '<th>Тренировочный</th>';
  21.         echo '<th>1 боевой</th>';
  22.     echo '<th>2 боевой</th>';
  23.         echo '<td>Лучшее время</td>';
  24.         echo '</tr>';
  25.         echo '</thead>';
  26.         echo '<tbody>';
  27.    // выводим в HTML-таблицу все данные клиентов из таблицы MySQL
  28.         while($data = mysql_fetch_array($qr_result)){
  29.                 echo '<tr>';
  30.                 echo '<th>' . $data['id'] . '</th>';
  31.                 echo '<td>' . $data['name'] . '</td>';
  32.                 echo '<td>' . $data['auto'] . '</td>';
  33.                 echo '<td>' . $data['priv'] . '</td>';
  34.                 echo '<td>' . $data['tren'] . '</td>';
  35.                 echo '<td>' . $data['boi1'] . '</td>';
  36.                 echo '<td>' . $data['boi2'] . '</td>';
  37.                 echo '</tr>';
  38.  
  39.                 }
  40.        
  41.     echo '</tbody>';
  42.  
  43.  // закрываем соединение с сервером  базы данных
  44.     mysql_close($connect_to_db);
  45. ?>


То есть: из двух чисел (1 боевой и 2 боевой) выбрать меньшее число и записать в Лучшее время. После строки отсортировать по лучшему времени. Уже все перепробовал. Помогите пожалуйста.
 
 Top
LIME
Отправлено: 22 Декабря, 2013 - 12:47:04
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *, best = IF(boi1<boi2,boi1,boi2) FROM $db_table_to_show ORDER BY best
 
 Top
butsasha
Отправлено: 22 Декабря, 2013 - 12:52:33
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




LIME пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *, best = IF(boi1<boi2,boi1,boi2) FROM $db_table_to_show ORDER BY best

Спасибо, но беда в том, что нету колонки "best", как я понимаю мне нужно изменить код таким образом!?

PHP:
скопировать код в буфер обмена
  1.  
  2.     // выбираем все значения из таблицы
  3.     $qr_result = mysql_query("SELECT *, best = IF(boi1<boi2,boi1,boi2) FROM $db_table_to_show ORDER BY best") //тут поменяли
  4.                 or die(mysql_error());
  5.         // выводим на страницу сайта заголовки HTML-таблицы
  6.         echo '<thead>';
  7.         echo '<tr>';
  8.         echo '<th>№</th>';
  9.         echo '<th>Имя</th>';
  10.         echo '<th>Авто</th>';
  11.     echo '<th>Привод</th>';
  12.         echo '<th>Тренировочный</th>';
  13.         echo '<th>1 боевой</th>';
  14.     echo '<th>2 боевой</th>';
  15.         echo '<td>Лучшее время</td>';
  16.         echo '</tr>';
  17.         echo '</thead>';
  18.         echo '<tbody>';
  19.    // выводим в HTML-таблицу все данные клиентов из таблицы MySQL
  20.         while($data = mysql_fetch_array($qr_result)){
  21.                 echo '<tr>';
  22.                 echo '<th>' . $data['id'] . '</th>';
  23.                 echo '<td>' . $data['name'] . '</td>';
  24.                 echo '<td>' . $data['auto'] . '</td>';
  25.                 echo '<td>' . $data['priv'] . '</td>';
  26.                 echo '<td>' . $data['tren'] . '</td>';
  27.                 echo '<td>' . $data['boi1'] . '</td>';
  28.                 echo '<td>' . $data['boi2'] . '</td>';
  29.                 echo '<td>' . $data['best'] . '</td>'; //тут добавили
  30.                 echo '</tr>';
  31.  
 
 Top
LIME
Отправлено: 22 Декабря, 2013 - 12:56:31
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




а ты измени и узнаешь
 
 Top
butsasha
Отправлено: 22 Декабря, 2013 - 13:01:12
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




LIME пишет:
а ты измени и узнаешь

Добавил колонку "best" - возникает проблема:
PHP:
скопировать код в буфер обмена
  1. Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (cp1257_general_ci,IMPLICIT) for operation '<'

Можно посмотреть http://but[dot]pp[dot]ua/result/res.php
 
 Top
Мелкий Супермодератор
Отправлено: 22 Декабря, 2013 - 13:04:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT time1, time2, IF (time1>time2, time2, time1) AS min_time FROM TABLE ORDER BY min_time
?


-----
PostgreSQL DBA
 
 Top
butsasha
Отправлено: 22 Декабря, 2013 - 13:09:23
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Мелкий пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT time1, time2, IF (time1>time2, time2, time1) AS min_time FROM TABLE ORDER BY min_time
?

Возникает проблема как я понимаю со знаком '>'. Что в этом может быть проблемой!?
(Добавление)
Всем огромное спасибо) Я дурачекб случайно выбрал cp1257) Жаль плючии не могу вам поставитью Огромное спасмбо)
 
 Top
Мелкий Супермодератор
Отправлено: 22 Декабря, 2013 - 13:15:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




А, у меня вкладка устарела. Бывает.

Приведите все свои кодировки к одинаковому знаменателю. И почему у вас вообще числовые данные в символьных типах данных?


-----
PostgreSQL DBA
 
 Top
butsasha
Отправлено: 22 Декабря, 2013 - 13:20:03
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Мелкий пишет:
А, у меня вкладка устарела. Бывает.

Приведите все свои кодировки к одинаковому знаменателю. И почему у вас вообще числовые данные в символьных типах данных?


Уже изменил тип данных на INT
(Добавление)
Мелкий пишет:
А, у меня вкладка устарела. Бывает.

Приведите все свои кодировки к одинаковому знаменателю. И почему у вас вообще числовые данные в символьных типах данных?

Пришлось изменить на VARCHAR так как нужно что бы высвечивало милисекунды.
 
 Top
Мелкий Супермодератор
Отправлено: 22 Декабря, 2013 - 13:57:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




decimal


-----
PostgreSQL DBA
 
 Top
butsasha
Отправлено: 22 Декабря, 2013 - 14:54:31
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Мелкий пишет:
decimal

Выходит формат 1 или 0, так как используются числа 1,01,13 или к примеру 1,12,95 то-есть мнуты, секунды, милисекунды
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB