我对php很新,并且遇到以下代码块问题。由于某种原因,当所有已被执行时,我被发送到:auctionx.php?id =“。当它应该是id = 1.我试图从$ new_id变量得到”1“。有人请指出我的错误?提前多多感谢.PS当我对我的项目进行排序时,就功能而言,我会告诉我所知道的是对mysqli的合理翻译。再次感谢。
哦,还有最后一件事,我意识到我可能会缺少捷径。在INSERT查询之后,如果你知道我的意思,一些代码可以直接知道新id是什么?保存我做下一个查询。它就像在第一个值字段中使用“$ new_id”一样简单。希望很清楚。
if ($check_1 == 0)
{
//Then need to register the auction...so...
$auc_update = mysql_query("
INSERT INTO auction VALUES ('','$afil','$user','','','','','')
//Should the first be "$new_id" here (above) i mean
");
$row_1 = mysql_query("
SELECT * FROM auction WHERE host = $user AND auc_no = $afil
");
//Find
$new_id = $row_1['id'];
//Id obtained
//Go to:
header ("location:auctionx.php?id='$new_id'");
}
答案 0 :(得分:1)
//Find
$new_id = $row_1['id'];
尝试将mysql_fetch_assoc()
添加到new_id
,例如:
$new_id = mysql_fetch_assoc($row_1)['id'];
答案 1 :(得分:1)
mysql_query()
后,您必须使用mysql_fetch_assoc()
$result_1 = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil");
$row_1 = mysql_fetch_assoc($result_1);
$new_id = $row_1['id'];
答案 2 :(得分:0)
首先,您错过了一个mysql_xxx()
函数调用。 mysql_query()
只是将查询发送到mysql,但对于SELECT
,您需要检索如下结果:
$result = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil");
$row1 = mysql_fetch_assoc($result);
$new_id = $row1['id'];
header ("Location: auctionx.php?id=$new_id");
有关所用功能的更多信息: mysql_query() mysql_fetch_assoc()
然后你真的应该确保你的查询有效,所以检查返回值并检查它是否为false,否则显示错误:
$result = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil");
if(false == $result) {
echo "Mysql error '" . mysql_errno() . "' : " . mysql_error();
}
然后,您想要的是检索与数据库中最后一次插入相关联的ID。您不需要SELECT
,只需使用mysql_insert_id()即可。
考虑到这一切,您的代码将成为:
if ($check_1 == 0)
{
$auc_update = mysql_query("INSERT INTO auction VALUES ('','$afil','$user','','','','','')");
if(false == $auc_update ) {
echo "Mysql error '" . mysql_errno() . "' : " . mysql_error();
} else {
$new_id = mysql_insert_id();
header ("Location: auctionx.php?id=$new_id");
}
答案 3 :(得分:0)
语法错误:您试图在sql语句中添加注释。此外,您需要在调用后获取行:
<?php
if ($check_1 == 0){
//Then need to register the auction...so...
$auc_update = mysql_query("INSERT INTO auction VALUES ('','$afil','$user','','','','','')");
//Should the first be "$new_id" here (above) i mean
$row_1 = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil ");
$row_1 = mysql_fetch_assoc($row_1);
//Find
$new_id = $row_1['id'];
//Id obtained
//Go to:
header ("location:auctionx.php?id='$new_id'");
}?>
答案 4 :(得分:0)
$new_id = $row_1['id'];
在执行此操作之前,您应该mysqli_fetch_array()
。
最好使用PDO或mysqli_*
代替mysql_
。