我这里有两个不同的查询。第一个查询是针对具有相同item_code的表,第二个表仅针对具有项目代码的表1。我添加console.log以在另一页上运行脚本。我的代码的过程是如果第一个查询(两个表的查询)都无法执行,第二个查询(仅查询表1)执行。两个查询都正确执行但我在console.log上收到此错误。
"
注意:尝试在 21,23,25 < C:\ xampplite \ htdocs \ edit.php 中获取非对象的属性登记/>
0&#34;
第21,23和25行错误是我的if else语句。我需要获得console.log 1
。
为什么?
任何帮助都会受到赞赏。
两个表都有商品代码A000321
table 1 | table 2
|
item_code | item_code
------------|--------------
A000321 | A000321
只有表格1具有商品代码A000321
table 1 | table 2
|
item_code | item_code
------------|--------------
A000321 |
Update.php
<?php
$val1_id= $_POST['val1_id'];
$val1_item_copy= $_POST['val1_item_copy'];
$val1_catcode= $_POST['val1_catcode'];
$val1_itemcode= $_POST['val1_itemcode'];
$sql = $mysqli->query("
UPDATE code t1
INNER JOIN
app t2
ON t2.item_code= t1.item_code
SET t1.item = '$val1_item_copy',t2.item_name = '$val1_item_copy'
WHERE t1.item_code = '$val1_itemcode' AND t1.cat_code = '$val1_catcode';
")or die('There was an error running the query [' . $mysqli->error . ']');
if(($sql->num_rows)>= 1){
echo '1';
} else if(($sql->num_rows) == 0) {
$sql1 = $mysqli->query("UPDATE code SET item='$val1_item_copy' WHERE id='$val1_id'")or die('There was an error running the query [' . $mysqli->error . ']');
if(($sql1->num_rows)>= 1){
echo '1';
} else {
echo '0';
}
}
?>
答案 0 :(得分:0)
您可能获得“1”,因为更新查询成功。这并不意味着它做了任何改变,只是它没有崩溃。
您可以通过检查
来检查受影响的记录printf("Affected rows (Non-Select): %d\n", $mysqli->affected_rows);
答案 1 :(得分:0)
我只是编辑一些细节。我使用if($mysqli->affected_rows >= 1)
代替if(($sql->num_rows)>= 1)
if($mysqli->affected_rows >= 1) {
echo '1';
} else {
$sql1 = $mysqli->query("UPDATE code SET item='$val1_item_copy' WHERE id='$val1_id'")or die('There was an error running the query [' . $mysqli->error . ']');
if($mysqli->affected_rows >= 1) {
echo '1';
} else {
echo '0';
}
}