|
|
|
| Здравствуйте,
подскажите, пожалуйста, что нужно вставить ниже для получения идентификатора по последней добавленной в БД строке id_catalog с AUTO_INCREMENT.
$query = "SELECT name FROM lands_photocat WHERE id_catalog = ...";
|
| |
|
|
|
|
|
|
|
для: Stifter2
(02.04.2009 в 15:05)
| | $query = "SELECT name FROM lands_photocat WHERE id_catalog = LAST_INSERT_ID()";
почемуто не работает.
Или еще как вариант обнаружить эту ячейку в моём случае: в таблице есть еще поле position, так вот как можно было бы опредедить id_catalog через position, значение которого самое большое? | |
|
|
|
|
|
|
|
|
для: Stifter2
(02.04.2009 в 15:31)
| | Или вообще 3 вариант, как вывести id_catalog по самому большому его значению в таблице. | |
|
|
|
|
|
|
|
для: Stifter2
(02.04.2009 в 15:33)
| | С функцией LAST_INSERT_ID() почему-то не удавался вывод:
Получилось сделать вот так:
$latest = mysql_query("SELECT MAX(id_catalog) AS 'id_cat' FROM lands_photocat");
$lat = mysql_fetch_array($latest);
$l = $lat['id_cat'];
$query= mysql_query("SELECT name FROM lands_photocat WHERE id_catalog = $l");
Может быть как-то проще можно было функцию MAX сделать для id_catalog? | |
|
|
|
|
|
|
|
для: Stifter2
(02.04.2009 в 15:40)
| | >С функцией LAST_INSERT_ID() почему-то не удавался вывод:
что значит "почему-то" ?
А если почему-то не удастся вывод со всеми остальными функциями? | |
|
|
|
|
|
|
|
для: Trianon
(02.04.2009 в 17:30)
| | Он выводил совсем другую строку, никак не последнюю добавленную. | |
|
|
|
|
|
|
|
для: Stifter2
(04.04.2009 в 17:20)
| | показывайте фрагмент кода, который добавляет строку, а затем выводит её номер. | |
|
|
|
|
|
|
|
для: Trianon
(04.04.2009 в 17:25)
| | Таблица состоит из следующих полей (лишнее убрал для удобочитаемости):
id_catalog (ключ)
name
pos
Добавление в таблицу:
$query = "INSERT INTO таблица VALUES (NULL, '".$_POST['name']."', ".$_POST['pos'].")";
|
Вывод всех строк, последнюю добавленную строку выделить полужирным (например):
$latest = mysql_query("SELECT MAX(id_catalog) AS 'id_cat' FROM таблица");
$lat = mysql_fetch_array($latest);
$l = $lat['id_cat'];
$query = "SELECT name, id_catalog, pos FROM таблица ";
$alb = mysql_query($query);
if(mysql_num_rows($alb) > 0) {
while($album = mysql_fetch_array($alb)) {
if (($album['id_catalog']) == $l) {
echo "<b>".$album['name']."</b>";
} else
echo ".$album['name'].";
}
}
|
Вот примерно такой код. | |
|
|
|
|
|
|
|
для: Stifter2
(04.04.2009 в 17:40)
| | >Добавление в таблицу:
$query = "INSERT INTO таблица VALUES (NULL, '".$_POST['name']."', ".$_POST['pos'].")";
$last = mysql_insert_id();
|
>Вывод всех строк, последнюю добавленную строку выделить полужирным (например):
$query = "SELECT name, id_catalog, pos FROM таблица ";
$alb = mysql_query($query);
if(mysql_num_rows($alb) > 0) {
while($album = mysql_fetch_array($alb)) {
if (($album['id_catalog']) == $last) {
echo "<b>".$album['name']."</b>";
} else
echo ".$album['name'].";
}
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(04.04.2009 в 17:49)
| | А если добавление и вывод находятся в разных файлах? | |
|
|
|
|
|
|
|
для: Stifter2
(04.04.2009 в 17:58)
| | тогда можете использовать свой вариант, но гарантий, что скрипт отметит именно ту строку, которую другой скрипт добавлял, уже никто не даст. | |
|
|
|
|
|
|
|
для: Trianon
(04.04.2009 в 18:08)
| | Большое спасибо за ответы и беседу, Trianon. Спасибо за помощь! | |
|
|
|
|
|
|
|
для: Stifter2
(02.04.2009 в 15:33)
| | это не вариант.
Самое большое значение вовсе не обязательно является только что добавленным в рамках данного соединения, а значит такой подход будет приводить к ошибкам. | |
|
|
|
|
|
|
|
для: Trianon
(02.04.2009 в 17:29)
| | У меня это работает без ошибок, т. к. строки новые добавляет только администратор. | |
|
|
|