2014-10-10 100 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); 
相關問題