Upadate não funciona

04/05/2015

0

PHP

Vejam o código..

$sql = 'SELECT
ordd.order_number,
prodd.name as product_name,
ordd.amount,
ord.un,
ordd.desconto,
IF(ordd.desconto >0, (ordd.amount*(ordd.price-ordd.desconto)),(ordd.amount*ordd.price)) as units_total_price,
ordd.price as unit_price,
products.sku,
ordd.id,
products.icon_thumb
FROM '.TABLE_ORDERS_ORCAR_DESCRIPTION.' ordd
INNER JOIN '.$this->tableName.' ON ordd.order_number = '.$this->tableName.'.order_number
INNER JOIN '.TABLE_PRODUCTS_DESCRIPTION.' prodd ON ordd.product_id = prodd.product_id
INNER JOIN '.TABLE_PRODUCTS.' products ON ordd.product_id = products.id
INNER JOIN '.TABLE_ORDERS_ORCAR.' ord ON ord.order_number = ordd.order_number
LEFT OUTER JOIN '.TABLE_CURRENCIES.' cur ON '.$this->tableName.'.currency = cur.code
LEFT OUTER JOIN '.TABLE_CUSTOMERS.' cust ON '.$this->tableName.'.customer_id = cust.id
WHERE
'.$this->tableName.'.'.$this->primaryKey.' = '.(int)$oid.' AND
prodd.language_id = \''.$language_id.'\' ';
if($this->customer_id != ''){
$sql .= ' AND cust.id = '.(int)$this->customer_id;
}

$result = database_query($sql, DATA_AND_ROWS, ALL_ROWS, FETCH_ASSOC);

if($result[1] > 0){
$output .= '<form action="" method="post"><table width="100%" dir="'.Application::Get('lang_dir').'" border="0" cellspacing="0" cellpadding="3" style="border:1px solid #d1d2d3">';
$output .= '<tr style="background-color:#e1e2e3;font-weight:bold;font-size:13px;">
<th align="center" > # </th>
<th align="center" width="60px">Código </th>
<th align="center" width="40px">Imagem</th>
<th align="left" width="390px">'._PRODUCT.'</th>
<th align="center" width="180px"> '._UNIT_PRICE.' </th>
<th align="center" width="180px"> Desconto </th>
<th align="center" width="90px"> Qtde </th>
<th align="right" width="90px"> '._TOTAL.' </th>
</tr>';
for($i=0; $i < $result[1]; $i++){
$output .= '<tr>';
$output .= ' <td align="center" width="40px">'.($i+1).'.</td>';
$output .= ' <td align="center">'.$result[0][$i]['sku'].' </td>';
$output .= ' <td align="center"><img src="images/products/'.$result[0][$i]['icon_thumb'].'" width="30px" height="30px"/> </td>';
$output .= ' <td align="left">'.$result[0][$i]['product_name'].' </td>';
$output .= ' <td align="center">'.Currencies::PriceFormat($result[0][$i]['unit_price'], '', '', $this->currency_format).'</td>';
$output .= ' <td align="center"><input type="text" name="desconto" value="'.$result[0][$i]['desconto'].'"></td>';
$output .= ' <td align="center">'.$result[0][$i]['amount'].'</td>';
$output .= ' <td align="right">'.Currencies::PriceFormat($result[0][$i]['units_total_price'], '', '', $this->currency_format).'</td>';
$output .= '<td align="right"><input class="form_button" type="submit" name="submit" value="'._BUTTON_UPDATE.'"></td>';
$output .= '</tr>';
}
$output .= '</table></form>';
}

}
return $output;

if(isset($_POST['submit'])) {
$des = $result[0][$i]['desconto'];
$id = $result[0][$i]['id'];
$q = database_query('UPDATE apsc_orders_orcar_description SET desconto = $des WHERE id=$id ');

if($q) {
echo "successful";
}else {
echo "error";
}
}
João Freitas

João Freitas

Responder

Posts

04/05/2015

João Freitas

Não consigo rodar, mostra tudo certinho quando clico em atualizar simplesmente não funciona.
Responder

04/05/2015

William

João por gentileza quando for postar trechos de código fonte utilize a tag code:

[img]http://arquivo.devmedia.com.br/forum/imagem/269142-20150504-064106.png[/img]

Quanto ao seu problema, você está tentando processar variáveis dentro de strings delimitadas com apóstrofos, para fazer isso sua string tem que estar entre aspas e por boa prática coloque a variável entre chaves {}:

$q = database_query("UPDATE apsc_orders_orcar_description SET desconto = {$des} WHERE id={$id}"); 
Responder

04/05/2015

João Freitas

William,

Obrigado..

Coloquei chaves - na verdade substitui pelo seu Código e ainda não funciona.
Responder

04/05/2015

João Freitas

Na verdade tem apenas uma linha de imput.

$output .= ' <td align="center"><input type="text" name="desconto" value="'.$result[0][$i]['desconto'].'"></td>';
Responder

04/05/2015

William

Precisa checar se está entrando nessa condição e se os valores estão sendo passados corretamente:

if(isset($_POST['submit'])) { 
$des = $result[0][$i]['desconto'];	
$id = $result[0][$i]['id'];
$q = database_query('UPDATE apsc_orders_orcar_description SET desconto = $des WHERE id=$id '); 

if($q) { 
echo "successful"; 
}else { 
echo "error"; 
} 
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar