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 :: Как можно получить последнюю строку в таблице Mysql?

 PHP.SU

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


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

> Без описания
Кирюха
Отправлено: 14 Сентября, 2012 - 22:58:46
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Июль 2012  


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




Вем привет, как можно получить последнюю строку в таблице Mysql?
 
 Top
Tox
Отправлено: 14 Сентября, 2012 - 23:09:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011  
Откуда: Россия


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




гуглите. в сети это есть.


-----
In Console We Trust. Code hard. Or die.
 
 Top
Кирюха
Отправлено: 14 Сентября, 2012 - 23:16:31
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Июль 2012  


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




я не нашел, мне интересно а можно это в sql запросе отправить ?
типа:
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query ("последняя строка такой то таблицы");
  3.  
 
 Top
Tox
Отправлено: 14 Сентября, 2012 - 23:21:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011  
Откуда: Россия


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




Вторая ссылка в гугл по запросу "как можно получить последнюю строку в таблице Mysql":
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM newraz ORDER BY id DESC LIMIT 1;

Кирюха пишет:
$result = mysql_query ("последняя строка такой то таблицы");

понимаете ли в чем прикол. чтобы что-то понять, надо захотеть. почитайте туториалы, маны. php, mysql.
я вот хочу понять, что вы имеете в виду, но не могу.


-----
In Console We Trust. Code hard. Or die.
 
 Top
avtor.fox
Отправлено: 15 Сентября, 2012 - 04:49:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Кирюха, всё дело в том, как у Вас построена таблица. Если есть к примеру колонка ID (автоинкремент), то выбрать можно вот так -

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT MAX(`id`) WHERE `table`
 
 Top
Кирюха
Отправлено: 15 Сентября, 2012 - 09:10:52
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Июль 2012  


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




да id у меня автоинкремент. Спасибо большое сейчас попробую
 
 Top
Кирюха
Отправлено: 15 Сентября, 2012 - 12:22:29
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Июль 2012  


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




Вот как я решил свою проблему
PHP:
скопировать код в буфер обмена
  1.  
  2. $resul = mysql_query("SELECT term_id FROM wp_terms ORDER BY term_id DESC");
  3.  
 
 Top
KingStar
Отправлено: 15 Сентября, 2012 - 12:47:27
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




Кирюха пишет:
Вот как я решил свою проблему
PHP:
скопировать код в буфер обмена
  1.  
  2. $resul = mysql_query("SELECT term_id FROM wp_terms ORDER BY term_id DESC");
  3.  


не решил, LIMIT 1 в конец запроса добавь
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $resul = mysql_query("SELECT term_id FROM wp_terms ORDER BY term_id DESC LIMIT 1");


-----
То что программа работает, не означает что она написана правильно!
 
 Top
tuareg
Отправлено: 15 Сентября, 2012 - 17:25:56
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Если Вам надо именно последний id(term_id в вашем случае), то запрос
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT term_id FROM wp_terms ORDER BY term_id DESC LIMIT 1;
  3.  

плохая идея.
Лучше использовать, причем гораздо лучше Улыбка
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT MAX(`term_id`) WHERE `wp_terms`
  3.  
 
 Top
snikers987
Отправлено: 15 Сентября, 2012 - 17:51:19
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




tuareg пишет:

плохая идея.
Лучше использовать, причем гораздо лучше Улыбка
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT MAX(`term_id`) WHERE `wp_terms`
  3.  

Так он получит максимальный id в таблице, а не последнюю строку.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
tuareg
Отправлено: 15 Сентября, 2012 - 18:03:57
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Еще раз если нужен последний id(если он автоинкремент) то лучше использовать запрос с MAX(`id`).
Цитата:

Так он получит максимальный id в таблице, а не последнюю строку.

А если id не инкремент, то последнюю строку получить вообще невозможно Улыбка
 
 Top
avtor.fox
Отправлено: 16 Сентября, 2012 - 00:59:58
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




tuareg к сожалению возможно Огорчение
 
 Top
tuareg
Отправлено: 16 Сентября, 2012 - 01:01:43
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




А можно пример
Таблица такая
id
1
5
6
9
2
id не инкремент. Как получить 2?
 
 Top
avtor.fox
Отправлено: 16 Сентября, 2012 - 01:13:50
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




tuareg
Всё дело в том, что мускул пишет данные как ему захочется. При простой выборке без инкремента (SELECT * FROM `table`) мускул выдаст данные в таком порядке, в каком ты их и записал. Следовательно в твоём примере запрос "SELECT * FROM `table` ORDER BY `id` DESC LIMIT 1" вернёт тебе строку с id 2 Улыбка

(Отредактировано автором: 16 Сентября, 2012 - 01:14:26)

 
 Top
tuareg
Отправлено: 16 Сентября, 2012 - 01:27:21
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Я очень в этом сомневаюсь Не понял
Вот таблица
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. DROP TABLE IF EXISTS `new_table`;
  3. CREATE TABLE `new_table` (
  4.   `id` int(11) UNSIGNED NOT NULL DEFAULT '0'
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  6. INSERT INTO `new_table` VALUES (1);
  7. INSERT INTO `new_table` VALUES (2);
  8. INSERT INTO `new_table` VALUES (3);
  9. INSERT INTO `new_table` VALUES (6);
  10. INSERT INTO `new_table` VALUES (4);
  11.  

А вот запросы
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM `new_table`;
  3. /*result
  4. 1
  5. 2
  6. 3
  7. 6
  8. 4
  9. */
  10. SELECT * FROM `new_table` ORDER BY `id` DESC LIMIT 1;
  11. /*result
  12. 6
  13. */
  14.  

Результат предсказуем. единственно верный порядок вернул 1 запрос, но не уверен, что этот порядок всегда будет верен.
Второй запрос не может вернуть 4, т.к сначала id отсортируются по убыванию и вернется один результат, логично ==>6
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB