Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Não sei da onde vem esse erro, eu preciso fazer uma consulta em uma tabela e incluir em seguida em outra tabela com os valores da 1 tabela. Fiz o seguinte codigo:
$qr2 = mysql_query("SELECT * FROM tbl_produtos WHERE id like '%$id_produto'")
or die ("Erro no querry");
while($ress = mysql_fetch_assoc($qr2)){
$descp = $ress['desc'];
$valp = $ress['valor'];
$inserir = mysql_query("INSERT INTO tbl_produtos_usados (valor, desc, id_cliente, quant) VALUES ('$valp', '$descp', '$id', '$quant')")
or die ("Erro ao incluir");
}
Está dando erro bem no insert, já tentei tudo que podem imaginar, alguem tem alguma ideia do que seja?
Sem o erro não podemos ajudar em nada né?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc, id_cliente, quant ) VALUES ("$valp", "descp", "$id", "$quant")' at line 1
Esse é o erro
>
aspas simples é para String para variável use aspas duplas.
na hora da consulta você esta dizendo:
LIKE '%$id_produto'
o que retorna incorreto ao invés de interpretar a variável e retornar o valor passado ele acaba retornando o nome da variável.
troque todas aspas simples que contém variáveis dentro para dupla.
Errado, isto é válido se você for dar um echo '$variavel'; Mas no caso de uma query você pode usar '$variavel' nos parâmetros como foi usado, pois isto vai ser analisado pelo MySQL e não pelo PHP, as regras são diferentes para os dois.
Quanto ao problema propriamente dito, poste o script completo, pois o erro retorna que o link da conexão é inválido, mas você não está especificando nenhum link na query, então o erro está em outro lugar.
>
Errado, isto é válido se você for dar um echo '$variavel'; Mas no caso de uma query você pode usar '$variavel' nos parâmetros como foi usado, pois isto vai ser analisado pelo MySQL e não pelo PHP, as regras são diferentes para os dois.
Quanto ao problema propriamente dito, poste o script completo, pois o erro retorna que o link da conexão é inválido, mas você não está especificando nenhum link na query, então o erro está em outro lugar.
Aqui ta o codigo completo (está bem simples ainda). Já tentei praticamente todas as possibilidades e nada -.-'
<html>
<head>
<title>Documento sem título</title>
</head>
<body>
<?php
include "conectar_sql.php";
$id = $_COOKIE['cliente'];
?>
<form action="orli.php" method="POST">
<table>
<tr>
<td>Produto:</td>
<td>
<?php
echo '<select name="prod">';
$qr2 = mysql_query("SELECT * FROM tbl_produtos")
or die ("Erro no querry");
while($ress = mysql_fetch_assoc($qr2)){
$id = $ress['id'];
$desc = $ress['desc'];
echo '<option value='.$id.'>'.$desc.'</option>';
}
echo '</select>';
?>
</td>
</tr>
<tr>
<td>Quantidade</td>
<td>
<?php
$cont = 1;
echo '<select name="quant">';
echo '<option value='.$cont.'>'.$cont.'</option>';
while($cont < 21){
$cont ++;
echo '<option value='.$cont.'>'.$cont.'</option>';
}
echo '</select>';
?>
</td>
</tr>
</table>
<input type="submit" value="Ok">
<br />
</form>
<?php
if (isset($_POST['prod'])){
$id_produto = $_POST['prod'];
$quant = $_POST['quant'];
$qr2 = mysql_query("SELECT * FROM tbl_produtos WHERE id like '$id_produto'")
or die ("Erro no querry");
while($ress = mysql_fetch_assoc($qr2)){
$desc = $ress['desc'];
$valor = $ress['valor'];
}
$inserir = mysql_query("INSERT INTO `tbl_produtos_usados` (
`id` ,
`valor` ,
`desc` ,
`id_cliente` ,
`quant`
)
VALUES (
NULL ,
'$valor',
'$desc',
'$id',
'$quant'
)");
echo mysql_error();
}
?>
<table>
<tr>
<td>Descrição</td>
<td>Quantidade</td>
</tr>
<tr>
<?php
$qr2 = mysql_query("SELECT * FROM tbl_produtos_usados WHERE id_cliente like '%$id'")
or die ("Erro no querry");
while($ress = mysql_fetch_assoc($qr2)){
$desc = $ress['desc'];
$quant = $ress['quant'];
?>
<td><?php echo $desc ?></td>
<td><?php echo $quant ?></td>
<?php
}
?>
</tr>
</table>
</body>
</html>O estranho que a string dele está certa e o PHP não converteu antes de envia-la para o MySQL.
Tente assim:
$inserir = mysql_query("INSERT INTO `tbl_produtos_usados` (
`id` ,
`valor` ,
`desc` ,
`id_cliente` ,
`quant`
)
VALUES (
NULL ,
'".$valor."',
'".$desc."',
'".$id."',
'".$quant."'
)");
Ou assim:
$inserir = mysql_query("INSERT INTO `tbl_produtos_usados` (
`valor` ,
`desc` ,
`id_cliente` ,
`quant`
)
VALUES (
'".$valor."',
'".$desc."',
'".$id."',
'".$quant."'
)");
Poste resultados.
Abraços...
Erick-Master - CTM Team Softwares
aspas simples é para String para variável use aspas duplas.
na hora da consulta você esta dizendo:
LIKE '%$id_produto'
o que retorna incorreto ao invés de interpretar a variável e retornar o valor passado ele acaba retornando o nome da variável.
troque todas aspas simples que contém variáveis dentro para dupla.