2013-04-23 2 views
0

Я получил ошибку: Неизвестный столбец «Массив» в «списке полей» при попытке выполнить процесс. Я все еще новичок в php, поэтому хотел бы знать в чем проблема с моим кодированием.Ошибка: Неизвестный столбец «Массив» в «списке полей»

Это первое кодирование.

<?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

спасибо всем, но я решил его сделать, как и сказал ..mr Ashwini исправило меня раньше .. спасибо .. ^^ –

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? –

+0

@AshwiniAgarwal не совсем. Тип данных в MySQL не преобразован в PHP. Не забывайте, что PHP является слабо типизированным языком ... – BenM

+0

@BenM. то он должен преобразовать переменную в 'int'. –

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_* теперь находится в процессе депрекации и в ближайшее время будет недействительным. Вместо использования их в новом коде вы должны изучить использование MySQLi или PDO. Они не только приносят пользу долговечности в таблицу, но также устраняют некоторые риски безопасности при использовании mysql_*.

+0

спасибо большое mr BenM .. я новичок в php и пытаюсь узнать это сам на самом деле .. –

0

здесь вы идете я установил вашу erros. попробуйте это

<?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>"; 
} 

    ?> 
Смежные вопросы