2013-03-25 4 views
3

я начинающий PHP, пожалуйста, помогите мне ..Как получить последнее значение из тузда записи

У меня есть MySQL запись как сильфон

id name  value_1 value_2 
1 rakesh 100  50 
2 david 150  10 
3 richard 0  0 
4 michael 0  0 

Я хочу, чтобы последняя запись VALUE_1 сделать некоторые математические Но если Последняя запись значение_1 == 0 означает, что я хочу пойти и получить верхнюю верхнюю VALUE_1 (значение_1 = 150)

я использовать сильфон код, но я получаю только последнее значение

$get=mysql_query("SELECT MAX(id) FROM table_name "); 
$got = mysql_fetch_array($get); 
$next_id = $got['MAX(id)']; 

здесь получить 3d Ришара значение_1 == 0 , но я хочу второй Дэвид значение_1 150

пожалуйста, помогите мне спасибо заранее ...

+0

Что желаемый результат для данных выборки вы вывесили? –

+0

Я обновил свой ответ. –

+0

Сохраните последнюю строку, которая имеет положительное значение в переменной, например $ last_positive. Всякий раз, когда вы попадаете в строку с 0, просто используйте значение, которое хранится в $ last_positive. – kufudo

ответ

4

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

Попробуйте с этим:

SELECT * FROM table_name WHERE value_1 > 0 ORDER BY value_1 DESC LIMIT 1 
  • Он будет выбрать всю строку, так вам не нужно будет сделать дополнительный запрос.
  • WHERE value_1> 0 будет выбирать только строки, где value_1 больше 0. Предполагается, что такие записи существуют. Дайте мне знать, если это не ваше дело.
  • ORDER BY value_1 DESC сообщает запрос, чтобы упорядочить строки на value_1 в порядке убывания, и, следовательно, нужная строка будет сверху.
  • LIMIT 1 выбирает только первую строку.
2

Похоже, вы хотите:

SELECT MAX(id) FROM table_name WHERE value_1 <> 0 

будет выбрать максимальный идентификатор где value_1 не 0

1

Попробуйте это:

$get=mysql_query("SELECT value_1 FROM table_name 
        WHERE value_1 != 0 
        ORDER BY id DESC 
        LIMIT 1"); 

Я на самом деле не понял вопрос , Вот еще один ответ, который даст вам разные результаты:

$get=mysql_query("SELECT value_1 FROM table_name 
        WHERE value_1 != 0 
        ORDER BY value_1 DESC 
        LIMIT 1"); 

Diff с обоих запросов является то, что один является ORDER BY id DESC и другой ORDER BY value_1 DESC

+0

Пожалуйста, объясните -1 –

+0

Почему некоторые люди проголосуют, не читая ansers –

+0

он хочет получить 'ID' не значение, * я думаю * –

Смежные вопросы