Исходные данные:
Есть база на 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 - Чем не гениальнее?

Спустя 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] - будет самый большой.
Опять таки мой запрос, без Лимита. Под $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`?
$MaxNumber будет содержать самое большое значение поля `number`?
Спустя 50 секунд (2.10.2010 - 14:57) Mizka написал(а):
самый корректный запрос линкера... в крайнем случает инпоста... но он будет работать медленнее так что не гениальнее...
можно ещё короче:
as там кажется не к чему...
можно ещё короче:
$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
Чисто на всякий случай.
Mizka
Чисто на всякий случай.
Спустя 1 минута, 9 секунд (2.10.2010 - 15:00) chaymik написал(а):
Спасибо огромное!