2013-04-23 83 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>"; 
} 

    ?> 
相关问题