2014-09-22 3 views
-1

Я получил этот кодПолучить переменную не записывается в базу данных

$cislonakupu=$_GET['cislonakupu']; 

    if($_REQUEST['command']=='update'){ 
     $datum = Date("j/m/Y H:i:s", Time()); 
    $user1=mysql_query("SELECT * FROM `register` WHERE `username`='$session'"); 
    $mu=mysql_query("SELECT * FROM `velikostiobj` WHERE `objednavkac`='$cislonakupu'");$cislonakupu=$_GET['cislonakupu']; 

     $customerid=mysql_insert_id(); 
     $date=date('Y-m-d'); 
     $orderid=mysql_insert_id(); 

     $max=count($_SESSION['cart']); 
     for($i=0;$i<$max;$i++){ 
      $pid=$_SESSION['cart'][$i]['productid']; 
      $q=$_SESSION['cart'][$i]['qty']; 
      $price=get_price($pid); 
      $cp=$_POST['cp']; 
     $velikots=$row['velikost']; 

$n= date('j/m/Y H:i:s', strtotime($Date. ' + 14 days')); 

    while ($row=mysql_fetch_array($mu)) { 

         $resultik=mysql_query("INSERT INTO `objednavkyinfo`(cislonakupu,produkt,mnozstvi,cena,cislofaktury,username,datumnakupu,dorucitdodata,velikost,dorucspol) VALUES ('$cislonakupu','$pid','$q','$price','$cislofaktury','$session','$datum','$n','$velikots','$cp')") or die(mysql_error()); 
} 

     } 
     header("Location: shoppingcart.php?delete=ano"); 


    } 

Мне нужно написать $velikots к и базы данных.

Если $velikots="Some text"; - это работает

Если $velikots=$row['velikost']; - не работает

Где проблема?

+0

Как вы знаете, ваш код уязвим для SQL-инъекции. – Max

+0

@Max: Да, я знаю, я сначала решаю эту проблему, затем SQLI-безопасность. – user2808698

+0

Почему бы вам не использовать 'INSERT INTO ... SELECT' вместо цикла? – Barmar

ответ

2

Вы никогда не придумываете свои результаты. Вы пытаетесь использовать результаты своего запроса, прежде чем вы их извлечете из своей базы данных.

$row = mysql_fetch_assoc($mu); 
$velikots = $row['velikost']; 

Затем вы должны быть в состоянии удалить время цикла:

while ($row=mysql_fetch_array($mu)) { ... } // remove this. 

Please, don't use mysql_* functions in new code. Они больше не поддерживаются and are officially deprecated. См. red box? Узнайте о prepared statements вместо этого и используйте PDO или MySQLi - this article поможет вам решить, какой. Если вы выберете PDO, here is a good tutorial. Вы также открыты к SQL injections

+0

У него есть 'while ($ row = mysql_fetch_array ($ mu)) {'. Проблема в том, что это после назначения. – Barmar

+0

Ahh. Я пропустил это при сканировании кода. Реформирование ответа. –

+0

Хмм, Он все еще не пишет $ velikots в базу данных – user2808698

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