[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка из базы самого большого значения
chaymik
Привет всем, я совсем чайник, но пытаюсь разобраться. Возник вопрос, своими силами пока не удается решить, надеюсь на Вашу помощь.

Исходные данные:

Есть база на MySQL в этой базе есть таблица `baza`, ну а в таблице некое поле `numer` туда записываются некие числа (не буду вдаваться в подробности суть дела не в этом), числа целые и могут записываться в любой последовательности 1, 2, 3, 100, а могут и 8, 1, 60, 1001

мне из этого поля надо выбрать самое большое значение

$sample=("SELECT `baza` FROM `numer`");  
$result=mysql_query($sample);
while($ext=mysql_fetch_assoc($result)
//А вот дальше я не знаю как мне найти самое большое значение в массиме $ext




Спустя 1 минута, 17 секунд (2.10.2010 - 14:13) linker написал(а):
SELECT MAX(`number`) as `maxnumber` FROM `baza`

Спустя 1 минута, 8 секунд (2.10.2010 - 14:14) chaymik написал(а):
Цитата (linker @ 2.10.2010 - 11:13)
SELECT MAX(`number`) as `maxnumber` FROM `baza`

Гениально!!!

Спустя 13 минут, 42 секунды (2.10.2010 - 14:28) inpost написал(а):
ORDER BY `number` DESC LIMIT 1 - Чем не гениальнее? smile.gif

Спустя 4 минуты, 37 секунд (2.10.2010 - 14:32) chaymik написал(а):
Мне это конечно подойдет, но хотелось бы иначе, мне нужно результат выборки поместить в массив, а из массива уже выбрать наибольшее значение.

как я думаю типо этого
$sample=("SELECT `baza` FROM `numer`");  
$result=mysql_query($sample);
while($ext=mysql_fetch_assoc($result){
$i=array($ext);}

//А уже из $i вытащить самое большое значение

Спустя 3 минуты, 13 секунд (2.10.2010 - 14:35) inpost написал(а):
chaymik
Опять таки мой запрос, без Лимита. Под $i[0] - будет самый большой.

Спустя 1 минута, 10 секунд (2.10.2010 - 14:37) linker написал(а):
Вопрос в том, что будет быстрее работать.

Спустя 5 минут, 43 секунды (2.10.2010 - 14:42) vital написал(а):
Цитата
ыборки поместить в массив, а из массива уже выбрать наибольшее значение.

Уже тогда так
$sample=("SELECT `numer` FROM `baza`");  
$result=mysql_query($sample);
while($ext=mysql_fetch_num($result){
$i[]=$ext;}
$max=$i[0];
for ($n=1;$n<count($i);$n++)
{
if ($max<$i[$n]){$max=$i[$n]}
}


Cобственно само простое нахождение самого большого элемента маасива - пузырьковый алгоритм. В случае большого массива - лучше используйте шейкерную сортировку, или там делением..
Пс.
По-моему у пыха есть готовые ф-и которые вернут макс значение из массива..

Спустя 1 минута, 38 секунд (2.10.2010 - 14:44) chaymik написал(а):
inpost
$sample=("SELECT `baza` FROM `numer`ORDER BY `number` DESC");  
$result=mysql_query($sample);
while($ext=mysql_fetch_assoc($result){
$i=array($ext);}
echo $i[0];//будет самый большой результат


Я все правильно понял?

Спустя 2 минуты, 5 секунд (2.10.2010 - 14:46) vital написал(а):
Цитата
Я все правильно понял?

Нет не будет. Собственно, это вообще работать не будет. ПО карйней мере так, как вы ожидаете.
Выполните этот код и сделайте print_r($i)

Спустя 6 минут, 14 секунд (2.10.2010 - 14:52) linker написал(а):
Извращенцы, извините
$MaxNumber = 0;
if ($Result = mysql_query("SELECT MAX(`number`) as `maxnumber` FROM `baza`"))
$MaxNumber = mysql_result($Result, 0);

Спустя 4 минуты, 14 секунд (2.10.2010 - 14:57) chaymik написал(а):
linker
$MaxNumber будет содержать самое большое значение поля `number`?

Спустя 50 секунд (2.10.2010 - 14:57) Mizka написал(а):
самый корректный запрос линкера... в крайнем случает инпоста... но он будет работать медленнее так что не гениальнее...
можно ещё короче:
 
$res = mysql_query("SELECT MAX(number) FROM `baza`");
echo mysql_result($res, 0, 0);

as там кажется не к чему...

Спустя 40 секунд (2.10.2010 - 14:58) Mizka написал(а):
Цитата
$MaxNumber будет содержать самое большое значение поля `number`?
да

Спустя 22 секунды (2.10.2010 - 14:58) linker написал(а):
Конечно.
Mizka
Чисто на всякий случай.

Спустя 1 минута, 9 секунд (2.10.2010 - 15:00) chaymik написал(а):
Спасибо огромное!
Быстрый ответ:

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