Ecoando um número inteiro de um banco de dados MySQL
Pergunta
Estou tentando criar um site no qual um usuário insere detalhes em uma tela e eles são publicados no script a seguir. Esse script destina -se a armazenar esses detalhes em um banco de dados, juntamente com um ID inteiro exclusivo (o que ele faz) e, em seguida, gerar dois links que contêm o ID exclusivo do registro que acabamos de ser criados. Como o banco de dados cria o ID e não a página antes, tentei consultar o banco de dados para o registro mais recente (ou seja, o mais alto valor de identificação exclusivo) e usar esse número no link, no entanto, com o script atual, o script atual, o O ID não parece aparecer na página. É uma coisa do tipo variável? Existe uma maneira mais simples de criar o ID da página? Aqui está o código:
$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);
Solução
Logo depois de fazer o mysql_query()
Para a inserção, você pode usar mysql_insert_id () Para obter o ID da linha inserida.
mysql_query("INSERT INTO........");
$id=mysql_insert_id();
Outras dicas
Você precisa mysql_insert_id
.
É chamado de 'id' ou 'shopid'? Mas você deve usar: http://php.net/mysql_insert_id
Como alternativa, você pode fazer a seguinte consulta MySQL:
$query = "SELECT * FROM wps_Shops WHERE id=LAST_INSERT_ID()";
$result = mysql_query($query);
Embora eu esteja confuso sobre por que você usou Ordem de Shopid Mas em uma chamada de linha posterior:
$id = strval($lastShop['id']);
Além disso, existe realmente alguma necessidade de fazer isso strval () ligar? O PHP já faz esse tipo de conversão para você quando você liga eco(). E, atualmente, quaisquer dados de resultado retornados de qualquer um mysql_query () ou mysqli_query (), é retornado no formato da string, independentemente do tipo de dados dessa coluna no MySQL.