Форум: "Потрепаться";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
ВнизPHP&MySQL. Нужно узнать значение присвоеное автоинкр. полю. Найти похожие ветки
← →
SergP (2003-12-18 00:50) [0]Добавляю запись в таблицу:
$postquery="INSERT INTO $post_table VALUES (0, $parent, $topic, $forum, $datetime, $userid, "$poster_ip", "$subject", "$post_text",0,0,1,"admin","",0,"")";
@mysql_query($postquery);
Первое поле в ней типа mediumint(8) unsigned - автоинкрементное
Т.е. я туда типа записываю 0, но MySQL автоматически присваивает ему нужное значение.
Вопрос: как мне узнать какое значение было присвоено этому автоинкрементному полю в только-что добавленной записи?
← →
Style (2003-12-18 01:03) [1]Можно вытащить последнюю строчку
$sql = "select `название того поля` from $post_table
order by `название того поля` DESC LIMIT 1"
Я вообще не пользуюсь автоинкрементными полями
просто написал несколько функции и вроде все пашет.
//************** Возвращает новый ID **************
function GetID($Table, $ID)
{
$query =
"SELECT ".$ID." from ".$Table." Order by ".$ID." DESC LIMIT 1";
$result = mysql_query($query) or Die("Error");
if (mysql_num_rows($result) != 0)
{
$row = mysql_fetch_row($result);
}
mysql_free_result($result);
return $row[0] + "1";
}
//************** Может и это пригодится **************
class TQueryResult
{
var $RowCount; //Количество строк
var $ColCount; //Кол-во Полей
var $Data; //Массив с данными
var $Fields; //Названия полей
function TQueryResult($result) //Конструкор
{
$this->RowCount = mysql_num_rows($result);
$this->ColCount = mysql_num_fields($result);
$this->ConvertToQueryResult($result);
$Array = array();
for ($i=0; $i < $this->ColCount; $i++)
{
$Array = $Array + array(mysql_field_name($result, $i) => $i);
}
$this->Fields = $Array;
}
function FieldByName($name) //В общем таким макаром можно написать интерфейс как в BDE TDataSet :)
{
return $this->Fields[$name];
}
// Данная функция конвертирует Result запроса в Массив Data;
function ConvertToQueryResult($result)
{
$i = 0;
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
$this->Data[$i] = $line;
$u = 0;
foreach($line as $value)
{
$this->Data[$i][$u] = $value;
$u++;
}
$i++;
}
}
}
← →
SergP (2003-12-18 01:20) [2]
> Style © (18.12.03 01:03) [1]
> Можно вытащить последнюю строчку
Но ведь теоретически за это время кто-нить другой тоже может добавить свою запись....
Хотя мне нужен этот id (значение автоинкрементного поля) для того чтобы в другие таблицы ( со списком топиков и форумов подобавлять записи о последнем посте в конкретных топике и форуме...) Ладно. В принципе появилась мысль. Попробую ее заюзать...
← →
Style (2003-12-18 01:27) [3]>>Ладно. В принципе появилась мысль. Попробую ее заюзать...
Самое главное что бы были мысли!!! :)
Удачи.
← →
SergP (2003-12-18 09:20) [4]Все. На другом форуме мне посоветовали:
http://ua2.php.net/mysql_insert_id
Так что вопрос отменяется....
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c