Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-25412
del_programmer
2003-12-24 14:59
2004.01.09
skin


1-25410
EugenCFG
2003-12-24 14:23
2004.01.09
Мерцания при прорисовки или большой объём файлов.


14-25535
Silver Alex
2003-12-19 11:52
2004.01.09
Поздравляю всех с днем св. Николая


1-25391
Rate
2003-12-19 20:19
2004.01.09
Ввод с клавиатуры


14-25515
vuk
2003-12-15 18:34
2004.01.09
Мыло для веревок.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский