PHP UPDATE脚本无法正常工作

时间:2014-05-27 13:17:25

标签: php

我试图在我的网页上实施更新脚本,但它不起作用。 我有2页,' update.php'页面和' update_ac.php'在点击'提交'之后运行脚本的页面在表格上,代码如下:

update.php

在这个页面上我有这个错误:警告:mysql_fetch_array()期望参数1是资源,第16行的C:\ xampp \ htdocs \ update.php中给出布尔值

<?php
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password="root"; // Mysql password 
$db_name="764503"; // Database name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// get value of id that sent from address bar
$id=$_GET['id'];

// Retrieve data from database 
$result=mysql_query("SELECT * FROM produse WHERE id='$id'");
$rows=mysql_fetch_array($result);
?>

<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<form name="form1" method="post" action="update_ac.php">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>&nbsp;</td>
<td colspan="3"><strong>Update data in mysql</strong> </td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center">&nbsp;</td>
<td align="center">&nbsp;</td>
<td align="center">&nbsp;</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><strong>titlu</strong></td>
<td align="center"><strong>stare</strong></td>
<td align="center"><strong>pret</strong></td>
<td align="center"><strong>descriere</strong></td>
</tr>
<tr>
<td>&nbsp;</td>
<td align="center">
<input name="titlu" type="text" id="titlu" value="<? echo $rows['titlu']; ?>">
</td>
<td align="center">
<input name="stare" type="text" id="stare" value="<? echo $rows['stare']; ?>" size="15">
</td>
<td>
<input name="pret" type="text" id="pret" value="<? echo $rows['pret']; ?>" size="15">
</td>
<td>
<input name="descriere" type="text" id="descriere" value="<? echo $rows['descriere']; ?>" size="15">
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>">
</td>
<td align="center">
<input type="submit" name="Submit" value="Submit">
</td>
<td>&nbsp;</td>
</tr>
</table>
</td>
</form>
</tr>
</table>

<?php
// close connection 
mysql_close();
?>

update_ac.php

<?php
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password="root"; // Mysql password 
$db_name="764503"; // Database name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// update data in mysql database 
$sql="UPDATE produse SET titlu='$_POST[titlu]' ,stare='$_POST[stare]' ,pret='$_POST[pret]' ,descriere='$_POST[descriere]' WHERE id='$_POST[id]'";
$result=mysql_query($sql);

// if successfully updated. 
if($result)
{
echo "Successful";
}

else 
{
echo "ERROR";
}

?> 

3 个答案:

答案 0 :(得分:1)

mysql_query 在发生错误而不是返回一个数组时返回FALSE,这个测试避免了第二个(也就是更大的)错误:如果FALSE没问题,如果你可以获取它的数组; oP

if ($result) $rows=mysql_fetch_array($result);

答案 1 :(得分:0)

这可能意味着您的查询中存在错误。如果查询中有错误,则不会创建从中获取数据的资源。

找到错误:在mysql_query命令中添加或死(mysql_error())。所以你可以找出错误。

答案 2 :(得分:0)

update_ac.php文件中的更新sql查询出错。所以没有什么可能得到更新。您在以下语句中使用错误的数组索引:

$sql="UPDATE produse SET titlu='$_POST[titlu]' ,stare='$_POST[stare]' ,pret='$_POST[pret]' ,descriere='$_POST[descriere]' WHERE id='$_POST[id]'";

$_POST[titlu]应为$_POST['titlu']$_POST[stare]应为$_POST'stare'],依此类推。所以正确的查询可以如下:

$sql="UPDATE produse SET titlu='".$_POST['titlu']."' ,stare='".$_POST['stare']."' ,pret='".$_POST['pret']."' ,descriere='".$_POST['descriere']."' WHERE id='".$_POST['id']."'";