MySQL veritabanından bir tamsayı yankılanan

4 Cevap php

Ben bir kullanıcı bir ekranda ayrıntıları girişleri ve onlar aşağıdaki komut üzerine yayınlanmıştır hangi bir web sitesi yapmak için çalışıyorum. Bu komut dosyası (öyle) benzersiz bir tamsayı kimliğiyle birlikte bir veritabanında bu bilgileri saklamak ve daha sonra yeni oluşturulan kaydın benzersiz kimliğini içeren iki bağlantılar oluşturmak içindir. Veritabanı yerine önce sayfa daha kimliğini oluşturur yana, ben ancak mevcut komut ile, (yüksek benzersiz ID değeri ile biri yani) En son kayıt için veritabanını sorgulamak ve bağlantı bu numarayı kullanmak denedim Kimlik sayfasında göstermek için görünmüyor. Bu bir değişken türü bir şey var mı? Sadece oluşturduğunuz sayfanın kimliğini almak için basit bir yolu var mı? İşte kod:

$css = $_POST['css'];
$shopName = strip_tags($_POST['title']);
$email = $_POST['email'];

$con = mysql_connect("***","***","***");
if (!$con)
{
    die('Could not connect to database: '. mysql_error());
}

mysql_select_db("***", $con);

$sql = "INSERT INTO wps_Shops (shopName, shopEmail, shopStyle)
	VALUES ('$shopName', '$email', '$css')";

$quer = mysql_query($sql);

$result = mysql_query("SELECT *
					FROM wps_Shops
					ORDER BY shopId DESC
					LIMIT 1");

$lastShop = mysql_fetch_array($result);

$id = strval($lastShop['id']);

echo ("Id: ".$id);

if ($quer)
{
    echo("<h1>Shop created</h1>");
    echo("<p><a href=\"shop.php?id=$id\">Go to shop</a></p>");
    echo("<p><a href=\"addproducts.php?id=$id\">Add products</a></p>");
}

mysql_close($con);

4 Cevap

Eğer insert için mysql_query() do hemen sonra, mysql_insert_id() eklenen satırın kimliği almak için kullanabilirsiniz.

mysql_query("INSERT INTO........");
$id=mysql_insert_id();


Bu 'id' veya 'shopId' denir? Ama kullanmanız gerekir: http://php.net/mysql_insert_id

Alternatif olarak, aşağıdaki MySQL sorgusu yapabilirsiniz:

$query = "SELECT * FROM wps_Shops WHERE id=LAST_INSERT_ID()";
$result = mysql_query($query);

Sana ORDER BY shopId ancak bir sonraki hat aramada kullanılan neden olarak kafam karışık olsa:

$id = strval($lastShop['id']);

Ayrıca, bu strval() arama yapmak için herhangi bir ihtiyaç gerçekten var mı? Eğer echo() çağırdığınızda PHP zaten sizin için bu tip dönüşüm yapar. Ve şu anda, herhangi bir sonuç da veriler, mysql_query() veya mysqli_query(), ne olursa olsun MySQL o sütunun veri türü, dize biçiminde döndürülür döndü.