Главная страница
    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.014 c
1-25423
3DiMaN
2003-12-24 10:38
2004.01.09
просмотр изображения


6-25469
lkj
2003-11-07 13:45
2004.01.09
Кодинг сокетов юзая winsock в Дэлфи


3-25243
ss300
2003-12-10 16:24
2004.01.09
ZeosDB


3-25185
malamba
2003-12-08 17:37
2004.01.09
программа должна работать на другом ПК. Но не хочет


4-25647
Юрий Ж.
2003-11-02 11:48
2004.01.09
BUTTON, STATIC и т.д.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский