Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wdc_black_

[Resolvido] Erro estranho ao mostrar dados do banco de dados.

Recommended Posts

eai galera, to com 1 script de cadastro e edicao de produtos...

mas ao mostrar a lista dos produtos ele está pegando as informacoes dos ultimos produtos cadastrados...

quando eu tinha cadastrado apenas 6 produtos, estava ok... quando passei disse, começou esse problema...

 

Imagem Postada

 

 

Imagem Postada

 

 

nessas imagens vcs podem ver que estou clicando no produto de id = 1

mas ele ta pegando as informacoes do ultimo produto que eu casdastrei, que foi a placa de video...

 

pagina com lista dos produtos

<?
include ("verifica.php");
include ("config.php");

?>
<table width="70%" border="0" cellpadding="8" cellspacing="3">
  <tr>
     <td class='top-cont'><span style='color:#e77817; font-weight:bold'>Produtos de Promoções e Sugestões</span></td>
  </tr> 
  <tr>
  	 <td style="border:1px solid #ececec" align="center">
          <a href="?pag=add-prod" style="cursor:pointer"><img src="images/add.gif" border="0"></a></td>
  </tr>                     
</table><br /><br />
<?
$resultado = mysql_query("SELECT * FROM produtos") or die(mysql_error());
$contagem = mysql_num_rows($resultado);
if ( $contagem == 0 ) { 
echo "Nenhum produto encontrado!";
}else{

while ($dados = mysql_fetch_array($resultado)){

$id= $dados["id"];
$titulo= $dados["titulo"];

echo "
<table width='70%' border='0' cellspacing='0' cellpadding='0' style='border:1px solid #ececec'>
  <tr>
    <td>
	<table width='100%' border='0' cellspacing='4' cellpadding='0'>
	 <tr>
	   <td width='60%' class='editar'>$titulo</td>
	   <td width='20%' class='editar'><a href='edita-prod.php?produto=$id'>Editar Produto</a></td>
	   <td width='20%' class='editar'><a style='color:#d20202; text-decoration:underline;' href='excluir.php?produto=$id'>Excluir Produto</a></td>
	 </tr>
	</table>
	</td>
  </tr>
</table>
";
}
}
?>

 

formulario de edição

<div align="center" style="padding-left:20%; padding-right:20%;">
<table width="70%" border="0" cellpadding="8" cellspacing="3">
 <tr>
     <td class='top-cont'><span style='color:#e77817; font-weight:bold'>Editando um produto</span></td>
  </tr>                 
</table><br /><br />
<form id="form1" name="form1" method="post" action="edita-prod-func.php" enctype="multipart/form-data">
<?
  $sql = mysql_query("SELECT * FROM produtos WHERE id LIKE '%".@$_GET['produto']."%'");
  while($linha = mysql_fetch_array($sql)){
       $id = $linha['id'];
  }
?>
<input type="hidden" name="id" value="<? echo $id ?>" />
<table width="70%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center" valign="top">
 	
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
      	<?
  $sql = mysql_query("SELECT * FROM produtos WHERE id LIKE '%".@$_GET['produto']."%'");
  while($linha = mysql_fetch_array($sql)){
       $foto = $linha['foto'];
  }
?>
        <td width="25%" align="center"><img src="produtos/<? echo $foto ?>" ></td>
        <td width="75%" valign="top">
        
        <table width="100%" border="0" cellspacing="6" cellpadding="0">
  <?
  $sql = mysql_query("SELECT * FROM produtos WHERE id LIKE '%".@$_GET['produto']."%'");
  while($linha = mysql_fetch_array($sql)){
       $titulo = $linha['titulo'];
  }
  ?>
<tr>
    <td><span style="color:#e77817; font-size:10px; font-weight:bold">Nome do Produto</span> - <span style="color:#9d9c9c; font-size:10px;">(Ex.: Gabinete ATX 4 Baias)</span></td>
  </tr>
   <?
  $sql = mysql_query("SELECT * FROM produtos WHERE id LIKE '%".@$_GET['produto']."%'");
  while($linha = mysql_fetch_array($sql)){
       $titulo = $linha['titulo'];
  }
  ?>
  <tr>
    <td><input type="text" name="titulo" style="width:230px; height:20px;" value="<? echo $titulo ?>"></td>
  </tr>
  <tr>
    <td><span style="color:#e77817; font-size:10px; font-weight:bold">Foto do Produto</span></td>
  </tr>
  <tr>
    <td>
    <input type="radio" name="enviar_imagem" onclick="document.form1.foto.disabled=false" id="enviar_imagem" value="sim" />
    SIM    
    <input type="radio" name="enviar_imagem"  onclick="document.form1.foto.disabled=true" id="enviar_imagem" value="nao" checked="checked" />
    NÃO</p><br />
    <input type="file" size=23 name="foto" disabled="disabled" /></td>
  </tr>
  <tr>
    <td><span style="color:#e77817; font-size:10px; font-weight:bold">Descrição do Produto</span> - <span style="color:#9d9c9c; font-size:10px;">(Ex.: Gainete ATX 4 Baias, C/ Fonte 200w, Tela LCD Frontal)</span></td>
  </tr>
   <?
  $sql = mysql_query("SELECT * FROM produtos WHERE id LIKE '%".@$_GET['produto']."%'");
  while($linha = mysql_fetch_array($sql)){
       $descricao = $linha['descricao'];
  }
  ?>
  <tr>
    <td valign="middle"><textarea name="descricao" id="descricao" style="width:232px; height:54px;"><? echo $descricao ?></textarea></td>
  </tr>
  <tr>
    <td><span style="color:#e77817; font-size:10px; font-weight:bold">Preço à Vista</span> - <span style="color:#9d9c9c; font-size:10px;">(Ex.: 145,00)</span></td>
  </tr>
  <?
  $sql = mysql_query("SELECT * FROM produtos WHERE id LIKE '%".@$_GET['produto']."%'");
  while($linha = mysql_fetch_array($sql)){
       $preco = $linha['preco'];
  }
  ?>
  <tr>
    <td><input type="text" name="preco" style="width:230px; height:20px;" value="<? echo $preco ?>"></td>
  </tr> 
  <tr>
    <td><span style="color:#e77817; font-size:10px; font-weight:bold">Mostrar na página principal? -</span>
    <?
  $sql = mysql_query("SELECT * FROM produtos WHERE id LIKE '%".@$_GET['produto']."%'");
  while($linha = mysql_fetch_array($sql)){
       $mostrar = $linha['mostrar'];
  }
  if ($mostrar == '1') {
  echo "<input name='mostrar' type='checkbox' value='' checked><br /><br />";
  }else {
  echo "<input name='mostrar' type='checkbox' value=''><br /><br />";
  }
  ?></td>
  </tr>
  <tr>
    <td><span style="color:#e77817; font-size:10px; font-weight:bold">Produto de promoções ou sugestões?</span></td>
  </tr>
  <tr>
    <td>
    <?
  $sql = mysql_query("SELECT * FROM produtos WHERE id LIKE '%".@$_GET['produto']."%'");
  while($linha = mysql_fetch_array($sql)){
       $prod = $linha['prod'];
  }
  if ($prod == '0') {
  echo "<input name='prod' type='radio' id='prod' checked='checked' value='sim' /> Promoções | <input name='prod' type='radio' id='prod' value='não' /> Sugestões";
  }else {
  echo "<input name='prod' type='radio' id='prod' value='sim' /> Promoções | <input name='prod' type='radio' checked='checked' id='prod' value='não' /> Sugestões";
  }
  ?></td>
  </tr>
  <tr>
    <td>
</table>
        
        </td>
      </tr>
    </table>
    
    <table width='70%' border='0' cellspacing='2' cellpadding='0'>
         <tr>
           <td><br /><input type="submit" name="button" id="button" value="Salvar Alterações" /></td>
         </tr> 
    </table>

      </td>
     </tr>
</table>
</form>
</div>

script que grava a edição

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?
include "config.php";
$enviar_imagem = $_POST['enviar_imagem'];
$id = $_POST['id'];
$titulo = $_POST['titulo'];
$descricao = $_POST['descricao'];
$foto = $_POST['foto'];
$preco = $_POST['preco'];
$prod = $_POST['prod'];
$mostrar = $_POST['mostrar'];

if($enviar_imagem == "sim"){

	$foto = $_FILES['foto']['name'];
	
	$foto = str_replace(" ", "_", $foto);
	$foto = str_replace("ã", "a", $foto);
	$foto = str_replace("á", "a", $foto);
	$foto = str_replace("à", "a", $foto);
	$foto = str_replace("é", "e", $foto);
	$foto = str_replace("ê", "e", $foto);
	$foto = str_replace("è", "e", $foto);
	$foto = str_replace("í", "i", $foto);
	$foto = str_replace("ì", "i", $foto);
	$foto = str_replace("ó", "o", $foto);
	$foto = str_replace("õ", "o", $foto);
	$foto = str_replace("ç", "c", $foto);

	$foto = strtolower($foto);
	
	if(!eregi("^image\/(jpeg|png|gif|pjpeg|jpg)$", $_FILES['foto']['type'])){
		
		echo "
		<META HTTP-EQUIV=REFRESH CONTENT='0; URL=edita-prod.php?produto=$id'>
		<script type=\"text/javascript\">
		alert(\"Formato inválido\");
		</script>
		";
		
	}else{
		
		if(file_exists("produtos/$foto")){
			$a = 1;
			while(file_exists("produtos/[$a]$foto")){
				$a++;
			}
			
			$foto = "[".$a."]".$foto;
			
		}
		
		if(!move_uploaded_file($_FILES['foto']['tmp_name'], "produtos/".$foto)){
			
			echo "
		<META HTTP-EQUIV=REFRESH CONTENT='0; URL=edita-prod.php?produto=$id'>
		<script type=\"text/javascript\">
		alert(\"Erro ao enviar o foto.\");
		</script>
		";
			
		}
	
	}	
if(isset($_POST["mostrar"]))
		{
			$mostrar = '1'; 
		}
else
		{	
			$mostrar = '0';
		}

if($prod == 'sim' )
		{
			$prod = "0";
		}
else
		{
			$prod = "1";
		}
		$sql = mysql_query("UPDATE produtos SET titulo='$titulo', descricao='$descricao', foto='$foto', preco='$preco', prod='$prod', mostrar='$mostrar', data = NOW() WHERE id = '$id'");
		echo "
		<script type=\"text/javascript\">
		alert(\"Produto editado com sucesso!\");
		</script>
		<meta http-equiv='Refresh' content='1; url=edita-prod.php?produto=$id' />";
		
}else{
		if(isset($_POST["mostrar"]))
		{
			$mostrar = '1'; 
		}
else
		{	
			$mostrar = '0';
		}

if($prod == 'sim' )
		{
			$prod = "0";
		}
else
		{
			$prod = "1";
		}
		$sql = mysql_query("UPDATE produtos SET titulo='$titulo', descricao='$descricao', preco='$preco', prod='$prod', mostrar='$mostrar', data = NOW() WHERE id = '$id'");
		echo "
		<script type=\"text/javascript\">
		alert(\"Produto editado com sucesso!\");
		</script>
		<meta http-equiv='Refresh' content='1; url=edita-prod.php?produto=$id' />";

}	

?>

estrutura do banco de dados

Imagem Postada

 

espero que vcs tenham ideia do que ta dando de errado, pq eu ja n sei q q ta acontecendo :/

vlw :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = mysql_query("SELECT * FROM produtos WHERE id LIKE '%".@$_GET['produto']."%'");

Porque você está usando like no sql?!

Tente usar a query dessa maneira.

 

$sql = mysql_query("SELECT * FROM produtos WHERE id = '".$_GET['produto']."'");

E também não te recomendo a inserção direta do get na query, você pode ter problemas com sql injection.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummm, tu acha ke é só isso o problema???

é ke assim esse script é pronto, eu sei muito pouco de php e sql...

entao n conheco falhas e etc...

 

--------------- edit

oxi veio, te amo uiahaiau

resolveu meus problema ^^

vlw msm...

tenhu que estudar ainda um pko mais pra descobrir esses detalhes do php =]

muito obrigado msm :D

abraçao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveita e troca o código

$foto = $_FILES['foto']['name'];

       $foto = str_replace(" ", "_", $foto);
       $foto = str_replace("ã", "a", $foto);
       $foto = str_replace("á", "a", $foto);
       $foto = str_replace("à", "a", $foto);
       $foto = str_replace("é", "e", $foto);
       $foto = str_replace("ê", "e", $foto);
       $foto = str_replace("è", "e", $foto);
       $foto = str_replace("í", "i", $foto);
       $foto = str_replace("ì", "i", $foto);
       $foto = str_replace("ó", "o", $foto);
       $foto = str_replace("õ", "o", $foto);
       $foto = str_replace("ç", "c", $foto);

por

$foto = $_FILES['foto']['name'];
$procura = array(" ","ã","á","à","é","ê","è","í","ì","ó","õ","ç");
$coloca = array("_","a","a","a","e","e","e","i","i","o","o","c");
$foto = str_replace($procura, $coloca, $foto);

vai poupar algumas linhas de código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.