2013-04-23 81 views
0

我得到錯誤:未知列'數組'在'字段列表'時試圖執行該過程..我仍然是新的PHP,所以我想知道我的編碼有什麼問題。錯誤:'字段列表'中的列'Array'未知

這是編碼第一。

<?php 
include("dbconnect.php"); 


$q = mysql_query("SELECT bachok_qtt FROM bachok WHERE bachok_type = 'pants' "); 
if(is_resource($q) and mysql_num_rows($q)>0) 
{ 
    $r = mysql_fetch_array($q); 
    $r["bachok_qtt"]; 
} 

$w = mysql_query("SELECT bachok_qtt FROM bachok WHERE bachok_type = 'clothes' "); 
if(is_resource($w) and mysql_num_rows($w)>0) 
{ 
    $s = mysql_fetch_array($w); 
    $s["bachok_qtt"]; 
}  

$e = mysql_query("SELECT stock_qtt FROM stock WHERE stock_type = 'pants' "); 
if(is_resource($e) and mysql_num_rows($e)>0) 
{ 
    $a = mysql_fetch_array($e); 
    $a["stock_qtt"]; 
}  

$t = mysql_query("SELECT stock_qtt FROM stock WHERE stock_type = 'clothes' "); 
if(is_resource($t) and mysql_num_rows($t)>0) 
{ 
    $b = mysql_fetch_array($t); 
    $b["stock_qtt"]; 
}  


if ($r < $a) 
{ 
    if($s < $b) 
    { 
     $sql1 = "UPDATE stock SET stock_qtt = stock_qtt - $r WHERE stock_type = 'pants' "; 
     $sql2 = "UPDATE stock SET stock_qtt = stock_qtt - $s WHERE stock_type = 'clothes' "; 

     $result1 = mysql_query($sql1) or die ("Error: " . mysql_error()); 
     $result2 = mysql_query($sql2) or die ("Error: " . mysql_error()); 

     if($result1) 
     { 
      if($result2) 
      { 
      echo "Successful"; 
      echo "<br>"; 
      echo "<a href='admin2.php'>Back to main page</a>"; 
      } 
     } 
     else 
     { 
      echo "ERROR"; 
     } 
    } 
} 
else 
{ 
    echo "Not enough stock"; 
    echo "<br>"; 
    echo "<a href='admin2.php'>Back to main page</a>"; 
} 




?> 

那麼,爲什麼它拋出未知列數組時executed..Hav我用MySQL_fetch_array()是否正確?

回答

0

我覺得你可以看看$r["bachok_qtt"]; 也許你想說些什麼樣$r = $r["bachok_qtt"];

+0

感謝所有,但我已經解決了它做你喜歡說... ..阿什維尼糾正我以前..謝謝.. ^^ – 2013-04-24 02:32:57

3

問題是這裏..

$sql1 = "UPDATE stock SET stock_qtt = stock_qtt - $r WHERE stock_type = 'pants' "; 
$sql2 = "UPDATE stock SET stock_qtt = stock_qtt - $s WHERE stock_type = 'clothes' "; 

兩個$r$s是數組。

我認爲你正在嘗試做這個..

$r = mysql_fetch_array($q); 
$r = $r["bachok_qtt"]; 
+0

它的工作..謝謝先生..所以這意味着,當我鍵入$ r = $ r [「bachok_qtt」];所以變量將是int? – 2013-04-23 09:52:19

+0

@AshwiniAgarwal不完全。 MySQL中的數據類型不是用PHP轉換的。不要忘記,PHP是一種弱類型的語言... – BenM 2013-04-23 09:57:03

+0

@BenM。那麼他必須將該變量轉換爲「int」。 – 2013-04-23 09:59:06

1

你的問題是你定義$r爲數組,然後嘗試在字符串中使用它。仔細查看你的代碼,我確實懷疑你希望將$r["bachok_qtt"]的值賦給一個變量,然後在你的查詢中使用它。如下

$r["bachok_qtt"]; 

您應該更新代碼:

例如,下面的代碼沒有做任何事情

$q = mysql_query("SELECT bachok_qtt FROM bachok WHERE bachok_type = 'pants' "); 
if(is_resource($q) and mysql_num_rows($q)>0) 
{ 
    $r = mysql_fetch_array($q); 
    $bachok_qtt = $r["bachok_qtt"]; 
} 

$w = mysql_query("SELECT bachok_qtt FROM bachok WHERE bachok_type = 'clothes' "); 
if(is_resource($w) and mysql_num_rows($w)>0) 
{ 
    $s = mysql_fetch_array($w); 
    $bachok2 = $s["bachok_qtt"]; 
}  

然後你的SQL如下:

$sql1 = "UPDATE stock SET stock_qtt = stock_qtt - $bachok_qtt WHERE stock_type = 'pants' "; 
$sql2 = "UPDATE stock SET stock_qtt = stock_qtt - $bachok2 WHERE stock_type = 'clothes' "; 

你也應該被告知,mysql_*函數系列現在正在depreca的過程中很快就會失效。您應該考慮使用MySQLiPDO,而不是在新代碼中使用它們。他們不僅將長壽的好處帶到了桌子上,而且還消除了使用mysql_*的一些安全風險。

+0

非常感謝BenM先生..我是一個初學者在PHP和試圖自己學習這個.. – 2013-04-24 02:34:26

0

在這裏你走我固定的錯誤回報。試試這個

<?php 
include("dbconnect.php"); 


$q = mysql_query("SELECT bachok_qtt FROM bachok WHERE bachok_type = 'pants' "); 
if(is_resource($q) and mysql_num_rows($q)>0) 
{ 
    $r = mysql_fetch_array($q); 

    } 

$w = mysql_query("SELECT bachok_qtt FROM bachok WHERE bachok_type = 'clothes' "); 
if(is_resource($w) and mysql_num_rows($w)>0) 
{ 
    $s = mysql_fetch_array($w); 

}  

$e = mysql_query("SELECT stock_qtt FROM stock WHERE stock_type = 'pants' "); 
if(is_resource($e) and mysql_num_rows($e)>0) 
{ 
    $a = mysql_fetch_array($e); 

}  

$t = mysql_query("SELECT stock_qtt FROM stock WHERE stock_type = 'clothes' "); 
if(is_resource($t) and mysql_num_rows($t)>0) 
{ 
$b = mysql_fetch_array($t); 

}  


if ($r["bachok_qtt"] < $a["stock_qtt"]) 
{ 
if($s["bachok_qtt"] < $b["stock_qtt"]) 
{ 
    $sql1 = "UPDATE stock SET stock_qtt = stock_qtt - '".$r["bachok_qtt"]."' WHERE stock_type = 'pants' "; 
    $sql2 = "UPDATE stock SET stock_qtt = stock_qtt - '".$s["bachok_qtt"]."' WHERE stock_type = 'clothes' "; 

    $result1 = mysql_query($sql1) or die ("Error: " . mysql_error()); 
    $result2 = mysql_query($sql2) or die ("Error: " . mysql_error()); 

    if($result1) 
    { 
     if($result2) 
     { 
     echo "Successful"; 
     echo "<br>"; 
     echo "<a href='admin2.php'>Back to main page</a>"; 
     } 
    } 
    else 
    { 
     echo "ERROR"; 
    } 
} 
} 
else 
{ 
echo "Not enough stock"; 
echo "<br>"; 
echo "<a href='admin2.php'>Back to main page</a>"; 
} 

    ?> 
相關問題