2014-10-10 51 views
0

我在这里有两个不同的查询。第一个查询是针对两个具有相同item_code的表,而第二个表仅针对具有项目代码的表1。我添加console.log来在另一页上运行脚本。我的代码的过程是,如果第一个查询(对这两个表的查询)执行失败,则执行第二个查询(仅查询表1)。这两个查询正确执行,但我在console.log上收到此错误。试图在Console.log中获取非对象的属性


通知:试图得到非对象的属性在C:\ Xampplite文件\ htdocs中\ edit.php上线21,23,25
0”

的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

你为什么不检查错误? mysqli_error()会告诉你什么是错的。 – 2014-10-10 02:08:57

+1

定义了“$ val1_item_copy”和“$ val1_id”在哪里?在打开'<?php'标签后立即在文件顶部添加错误报告 'error_reporting(E_ALL); ini_set('display_errors',1);'看看它是否产生任何东西。同样'或者死(mysqli_error($ mysqli))'到'mysqli_query()'。 – 2014-10-10 02:09:31

+0

@ Fred-ii-就这样? $ mysqli = new mysqli(“localhost”,“root”,“”,“database”)或者死(mysqli_error($ mysqli))到mysqli_query(); – user3631428 2014-10-10 02:19:25

回答

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'; 
} 
} 
0

你很可能会得到一个“ 1“,因为更新查询成功。这并不意味着它做了任何改变,只是它没有崩溃。

您可以通过检查

printf("Affected rows (Non-Select): %d\n", $mysqli->affected_rows); 
相关问题