Frage

Ich versuche eine Website zu erstellen, auf der ein Benutzer Details auf einem Bildschirm eingibt, und er wird auf das folgende Skript veröffentlicht. Dieses Skript soll diese Details in einer Datenbank zusammen mit einer eindeutigen Ganzzahl -ID (die dies tut) speichern und dann zwei Links generieren, die die eindeutige ID des gerade erstellten Datensatzes enthalten. Da die Datenbank die ID und nicht die Seite zuvor erstellt hat, habe ich versucht, die Datenbank für den neuesten Datensatz abzufragen (dh die mit dem höchsten eindeutigen ID -Wert) und diese Zahl im Link zu verwenden, jedoch mit dem aktuellen Skript das ID scheint nicht auf der Seite zu sehen. Ist es eine variable Art? Gibt es eine einfachere Möglichkeit, die gerade erstellte ID der Seite erstellt zu erhalten? Hier ist der Code:

$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);
War es hilfreich?

Lösung

Gleich nachdem Sie das getan haben mysql_query() Für den Einsatz können Sie verwenden mysql_insert_id () Um die ID der eingefügten Zeile zu erhalten.

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

Andere Tipps

Du brauchst mysql_insert_id.

Ist es "ID" oder "ShopID" genannt? Aber Sie sollten verwenden: http://php.net/mysql_insert_id

Alternativ können Sie die folgende MySQL -Abfrage durchführen:

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

Obwohl ich verwirrt bin, warum Sie benutzt haben Bestellung von ShopID Aber in einem späteren Zeilenanruf:

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

Gibt es auch wirklich die Notwendigkeit, das zu machen Strval () Anruf? PHP tippt diese Konvertierung bereits für Sie bei, wenn Sie anrufen Echo(). Und derzeit alle Ergebnisdaten, die von beiden zurückgegeben wurden, mysql_query () oder mysqli_query (), wird im String -Format zurückgegeben, unabhängig von dem Datentyp dieser Spalte in MySQL.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top