Son kaydın php geri alınmasına id takılı ve başka bir tablo eklemek

4 Cevap php

Ben tablo 'yazar' ve 'Makaleler' tablosunda alınan id eklemek eklenen son kaydın id almaya çalışıyorum; İşte benim kod:

$title = mysql_real_escape_string($_POST[title]);
$body = mysql_real_escape_string($_POST[body]);
$category = mysql_real_escape_string($_POST[category]);

$insert_author="INSERT INTO authors (name) VALUES ('$title')";
$select_author= mysql_query("SELECT LAST_INSERT_ID()");

$authId = mysql_fetch_array($select_author);
$query="INSERT INTO articles (body, date, category, auth_id) VALUES ('$body', '$date_now', '$category', '$authId')";

Bu işe yaramazsa ...

Herhangi bir fikir lütfen?

Şimdiden teşekkürler

Mauro

4 Cevap

Sen mysql_insert_id() ile son uç id alabilirsiniz

$insert_author="INSERT INTO authors (name) VALUES ('$title')";
mysql_query($insert_author) or die(mysql_error());

$authId = mysql_insert_id();

$query="INSERT INTO articles (body, date, category, auth_id) VALUES
('$body', '$date_now', '$category', '$authId')";

Note Eğer insert sorgu için mysql_query işlevini eksik, ben eklemiş olması da yukarıdaki kodu.

Ne tam olarak çalışmıyor. $authId beklenen değerini içerir musunuz? Bunu kontrol etmek için dökümü mü?

Bunun dışında, size ikinci unuttum mysql_query().

Try mysql-insert-id yerine.

Adından da anlaşılacağı gibi, diğer tabloya eklemek için bu dizideki belirli bir değer almak gerekir, bu nedenle mysql_fetch_array($select_author) bir dizi döndürür.