Запрос к базе для вывода последнего значения определённой колонки в таблице

aaachilov

Новичок
Приветствую!
В последнее время в виде хоби решил изучить основы веб програмирования.
С html css разобрался, немного в JavaScript
Настала очередь более сложных языков
Третий день как решил изучить php и MySQL
Так что не обессудьте если буду задавать глупые вопросы!

Своей первой работой на php решил создать форум со всеми вытекающими функциями типа ргитрации пользователей и тому подобное.
В настоящий момент пишу скрипт для регистрации пользователей.
В пинципе пока все получается - но по причине не знания языка сразу возникли несколько вопросов

1. Подскажите пожалуйста как выполнить запрос к базе таким образом чтобы например из таблицы users из поля UID вывести самую последнюю запись.

Я сейчас использую запрос такого типа
PHP:
$sql = "SELECT COUNT(`users`.`UID`) AS TID FROM `users`";
Но в таком случае получается что подсчитывается количество полей и если удалить пользователя из таблицы получается неверная запись при отправке регистрационных данных расчитывается не верный идентификационный номер - соответственно и рабта всех скриптов в целом неверная.


И к этому же вопросу в методичке нашёл пример как прибавить единицу в полученому результату
PHP:
$sql = "SELECT COUNT(`users`.`UID`)  + 1 AS TID FROM `users`";
Я ля того чтоб было мне пнятнее написал подругому
PHP:
$UID = $res->TID + 1;
мне так понятнее.
Подскажите есть ли разница в вариантах прибовления?
2. Как вывести работу одного документа в другой? например документа login.php на страницу index.php?

Заранее спасибо!
 

С.

Продвинутый новичок
запрос к базе таким образом чтобы например из таблицы users из поля UID вывести самую последнюю запись
Проще всего отсортировать в обратном порядке (ORDER BY ... DESC) и взять первую запись (LIMIT 1). Хотя для подобных задач используются колонки с автоматической нумерацией (AUTOINCREMENT). Без автонумерации есть вероятность конфликта (две записи с одним номером)

Как вывести работу одного документа в другой? например документа login.php на страницу index.php?
include('login.php');
 

Фанат

oncle terrible
Команда форума
1. Строго говоря - никак.
В базе нет встроенных средств, чтобы определить, какая запись последняя, а какая - первая.
Поэтому нужно добавить к таблице поле, позволяющее сортировку, не допускающее повторов и отражающее (относительное) время добавления.

Как правильно замечено выше, судя по всему, вопрос поставлен неправильно, и доставтаь последний и прибавлять к нему 1 не нужно, а нужно воспользоваться функционалом автоинкремента
 

aaachilov

Новичок
То есть я просто ставлю свойства поля (в данном случае UID) как AUTO_INCREMENT и получается добавлять его в базу мне не нужно - а что именно нужно сделать чтобы эта автонумерация не повторядась - просто указать что поле уникально?
 

aaachilov

Новичок
подскажите в этом случае я выведу работу скрипта на стрницу куда его вставлю и он будет использовать переменные которые указаны в выводимом файле и не будет конфликтов в случае если на странице на которую выводим скрипт уже есть такая переменная? Зарнее спасибо!
 

С.

Продвинутый новичок
Мы без проблем подскажем неочевидные приемы, но базовую информацию потрудитесь найти сами. Вы получили ключевое слово "include", а руководство по РНР к авшим услугам.
 

aaachilov

Новичок
Спасибо за помощь - будем стараться - Вы мне подсказали что за что отвечает теперь хотя бы знаю где искать)))
 

aaachilov

Новичок
Не ребят - наверное сегодня без Вашей помощи не как(((
Задал в базе для полей идентификаторов значения AUTO_INCREMENT и UNIQUE
Таблица с пользователями и темами работает хорошо - и при удалении строк и так далее - но таблица с сообщениями перестаёт записывать строки после того как удалить одну из строк((((
 

Фанат

oncle terrible
Команда форума
таблица с сообщениями перестаёт записывать строки после того как удалить одну из строк((((
Мы не телепаты, и определить, почему она это делает - не можем.
Надо разбираться, отлаживать.

Но вообще, сам по себе принцип автоинкремента - один из краеугольных камней типичного пхп/mysql приложения
 

aaachilov

Новичок
извините - это была моя вина - я для поля задал автоинкремент а из самого кода скрипта не убрал конструкцию которя добавляет 1 к ответу
пока что сложно смотреть в код и понимать все что там написано)))
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Поверьте, пока у вас получается лучше чем у 60% здесь появляющихся :)
 

aaachilov

Новичок
Спасибо - позновательно!
И очень интересно!
SELECT lastname FROM school WHERE klass=’7A’ ORDER BY lastname
ВЫБРАТЬ фамилии ИЗ школы [такие,] ГДЕ класс равняется 7А, ОТСОРТИРОВАВ ФАМИЛИИ ПО АЛФАВИТУ
И в правду скоро разговаривать начнём с машинами))
 

KorP

Новичок
Может перед там как что то делать, стоит почитать книжку? Приличную, а не похабщину из методички, что в топике?!
 

aaachilov

Новичок
Я прочитал несколько книг и посмтрел около 15 часов видео - но я Вам скажу, что нифига с книжки в голове почти не остаётся - практика есть практика, да и литературу - я очень даже интересуюсь на форуме какую литратуру предпочтительнее изучить и освоить - так как просто брать из сети все подрят не разумно - лучше последую совету знающих людей!)))
и тупо выучить наизусть все возможные перменные и значения - тоже ничего хорошего - в процессе практики все освоится и ляжет на свою полочку в голове!
 

KorP

Новичок
нифига с книжки в голове почти не остаётся
это плохо, хоть какой то % должен оставаться
а что мешает на листочке поэтапно расписать порядок действий скрипта, открыть книжку, посмотреть все темы, относящиеся к поставленной задаче, прочесть, попытаться осознать, положить книжку рядом с клавой и реализовать? здесь не будут учить, тут помогут если есть реальная проблема, в случае возникновения которых и стоит сюда обращаться. ну или идти на курсы.
а видео в треш, если это тока не запись вебинаров от специалиста. приличных видеоуроков по-моему не существует (по крайней мере на русском языке)
 

aaachilov

Новичок
Да да - согласен с Вами - но вместо логики на листочке я сразу пишу скрипт - и по мере появления новых требований к функционалу скрипта буду изучать требуемую информацию - да и если кто то подскажет - я вот искал пол дня в сети как сделать шаблонизацию проекта - но не нашёл - некоторые статьи в несколько строк и то с сайта на сайт перекопированные.
А здесь после одной полезной ссылки уже сделал за пол часа основные шаблоны и создал структуру - завтра разберусь с самим кодом и все во первых работает - во вторых не на листе а в реальности и в голове все это останется - потому что своими руками сделано.
И когда пропишешь запрос 5 раз - а он не правильно работает и ты при этом час мучаешься чтоб найти что не поставил запятую - думаю этот опыт ценнее прочитаной книги
 

aaachilov

Новичок
Тоже самое с админкой - один ответ на форуме и админка для работы с темами форума готова, а так бы я мог 10 книг прочитать и нужной инфрмации не найти
 
Сверху