2014-01-13 41 views
1
$dupnamecheck = "SELECT product_name FROM products WHERE product_name = $name"; 
    $dupnameresult = mysqli_query($link,$dupnamecheck); 
    $data = mysqli_fetch_array($dupnameresult, MYSQLI_NUM); 
    if($data[0] > 1) { 
     echo "Product name is duplicated. <br/>"; 
    } 

    else { 
    $query = ("INSERT INTO products (id, product_name, product_description, category_id, brand_id, views, price) 
    VALUES (null, '".$name."','".$desc."','".$cat."', '".$brand."', '0','".$price."')"); 

    $status = mysqli_query($link,$query) or die(mysqli_error($link)); 

    if($status){ 
    $message = "Successfully Added! Please check on products page or on inventory page in admin panel." ; 
} 
else { 
    $message = "FAILED!"; 
} 
    } 

我試圖用product_name作爲條件來檢查我的產品表中重複的名字。我有這個錯誤: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given我有以下的代碼,但它似乎並沒有爲我工作

回答

0

您的產品名稱可能是一個字符串,所以你需要引用你的變量名稱。

SELECT product_name FROM products WHERE product_name = '$name'; 
                ----^-----^-- 
0

你的代碼幾乎沒有問題,除了第一個SQL語句。在WHERE product_name = '$name'

<?php 
$dupnamecheck = "SELECT product_name FROM products WHERE product_name = '$name'"; 
//                 ^ ^
     $dupnameresult = mysqli_query($link,$dupnamecheck); 
     $data = mysqli_fetch_array($dupnameresult, MYSQLI_NUM); 
     if($data[0] > 1) { 
      echo "Product name is duplicated. <br/>"; 
     } 

     else { 
     $query = ("INSERT INTO products (id, product_name, product_description, category_id, brand_id, views, price) 
     VALUES (null, '".$name."','".$desc."','".$cat."', '".$brand."', '0','".$price."')"); 

     $status = mysqli_query($link,$query) or die(mysqli_error($link)); 

     if($status){ 
     $message = "Successfully Added! Please check on products page or on inventory page in admin panel." ; 
    } 
    else { 
     $message = "FAILED!"; 
    } 
     } 
      ?> 
0

你可以試試這個,

新增'

更正之一。

使用 - 的$dataCount = mysqli_num_rows($dupnameresult);代替$data = mysqli_fetch_array($dupnameresult, MYSQLI_NUM);

刪除(id)列,其從插入查詢null值,以爲這是自動遞增的主鍵。

$dupnamecheck = "SELECT product_name FROM products WHERE product_name = '$name' "; 
    $dupnameresult = mysqli_query($link,$dupnamecheck); 
    $dataCount = mysqli_num_rows($dupnameresult); 
    if($dataCount > 0) { 
     echo "Product name is duplicated. <br/>"; 
    }else { 
     $query = "INSERT INTO products (product_name, product_description, category_id, brand_id, views, price) 
     VALUES ('".$name."','".$desc."','".$cat."', '".$brand."', '0','".$price."')"; 

     $status = mysqli_query($link,$query) or die(mysqli_error($link)); 

     if($status){ 
      $message = "Successfully Added! Please check on products page or on inventory page in admin panel." ; 
     }else { 
      $message = "FAILED!"; 
     } 
    } 
+0

'NULL'是有效的,他也在fetch_array上發生錯誤,而不是在插入 –

+0

啊好吧,我明白了。對不起,如果我的問題很愚蠢,我正試圖解決這個問題近一個小時。 – user3087717

+0

謝謝btw傢伙 – user3087717

相關問題