Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
bom dia pessoal
eu tenho um notebook no qual eu digito meus códigos e crio meus sites em php, mysql e javascript. Mas a uma semana para cá, as consultas SQL simples que eu tenho feito não funcionam de forma alguma, abaixo vai u m exemplo de uma delas:
<select>
<?php
require 'scripts/config.php';
$sql = "select * from cardapio_categoria";
$res = mysql_query($sql) or die ('Não foi possivel concluir a consulta');
while($categoria=mysql_fetch_array($res) or die ('Não foi possivel concluir a consulta')) {
$cat = $categoria['card_nome'];
echo "<option> $cat </option>";
}
?>
</select>
Já tentei abrir o mesmo site no localhost de outro computador, e funcionou perfeitamente, desinstalei o xampp, instalei o wampp, passei ccleaner no pc, reiniciei, limpei cache, fiz tudo, não sei o que está acontecendo, algumas páginas o mysql funciona, e em outras, uma consulta muito parecida, nao funciona. alguem pode me ajudar? :cry:no banco vai direitinho, e eu troquei o or die e não adiantou nada. tipo a consulta é feita, mas o echo nao responde, fica um option em branco
Quando eu tive problemas parecidos, consegui resolver instalando o
ODB Connector
http://dev.mysql.com/downloads/connector/odbc/
Veja se isso ajuda a resolver seu problema =)
mas para que serve isso? "Connector / ODBC é um driver de banco de dados padronizado para Windows" é meio subjetivo rs'
Não há necessidade de uso do ODBC
Primeiramente, no PHP, configure o ambiente para gravar logs de erros e eventos:
Configuração de log e eventos de erros do PHP
Segundo, dependendo de como está sendo feita a conexão com o banco de dados, é necessário informar o resource da conexão (link_identifier)
mysql_query($sql, $con)
http://php.net/manual/en/function.mysql-connect.php
nota: evite o uso das funções mysql_xx, pois estão em desuso há alguns anos.
A recomendação é o uso das funções mysqli_xx
é um option so q fica em branco ou são varios?
tavez a chave acessada em $categoria não exista.
esse or die('bla bla') no while n é mto comum.
>
é um option so q fica em branco ou são varios?
tavez a chave acessada em $categoria não exista.
esse or die('bla bla') no while n é mto comum.
a chave existe, não há problema nenhum com o código ¬¬'
acho que eu não fui muito clara. o problema não está nos códigos, nem nos programas, e sim alguma coisa no meu notebook. Pois quando eu coloquei o mesmo site para rodar em outro computador, com o wampserver, tudo funcionou perfeitamente, mas eu não posso trocar de computador, pq né
>
acho que eu não fui muito clara. o problema não está nos códigos, nem nos programas, e sim alguma coisa no meu notebook.
acredito q não. se o problema acontece de vez enquando é problema no codigo ou o mysql esta caindo durante aquela consulta.
Bom, você garante que o problema não é o código.
Já tentou usar o easyPHP (só para testes) ?
Eu usva muito o WAMP e XAMP .....BUUUUT! tive os mesmos problemas que vc está tendo.
Acho que se você trocar o server e "funfar" é uma boa.
#8 as suas descrições são muito vagas.
descreva com objetividade e terá respostas objetivas
#8 as suas descrições são muito vagas.
OMG.
1. Já fiz outro site nesse note usando o XAMPP, e tudo deu certo;
2. Comecei a criar esse outro site usando também o XAMPP, MAS ao adicionar elementos tipo o echo, print e print_r, a função que estava dentro do IF não funcionava de forma alguma, sendo que eu já havia a colocado em outra página, uma consulta praticamente igual, e rodou certinho. Um exemplo disso é essa consulta:
<select>
<?php
require 'scripts/config.php';
$sql = "select * from cardapio_categoria";
$res = mysql_query($sql) or die (mysql_error());
while($categoria=mysql_fetch_array($res)) {
$cat = $categoria['card_nome'];
echo "<option> $cat </option>";
}
?>
</select>
a consulta é feita, toda certinha, mas na hora de executar o echo "<option> $cat </option>";, ele simplesmente ignora essa linha.
3. Como disse antes, essa mesma consulta eu usei em outra página PHP, a unica diferença foi o $sql.
Acredito que agora fui "mais clara"
Já tentou usar o easyPHP (só para testes) ?
Não tenho a intenção de mudar para o Easy, já ouvi muita gente falando que dá muito problema com o php.ini.
Faça um teste unitário, crie um arquivo .php e efetue a conexão (sem include/require) e consulta SQL, dentro do while utilize var_dump para verificar os dados retornados da consulta.
Se necessário for, vá debugando o código a cada chamada de função até encontrar o erro.
E como hinom disse:
>
Segundo, dependendo de como está sendo feita a conexão com o banco de dados, é necessário informar o resource da conexão (link_identifier)
mysql_query($sql, $con)
http://php.net/manua...sql-connect.php
Configure seu código para exibir TODAS as mensagens de erro, adicionando este código à primeira linha do script.
<?php
ini_set( 'display_errors', true );
error_reporting( E_ALL );De certa forma consegui arrumar o problema, usando o WampServer. mexi em algumas coisas no php.ini e no fim deu certo.
Mas parece que é resolver o problema e arrumar outro =]
vou postar o código:
<link href="css/cpanel_style.css" rel="stylesheet" type="text/css">
<article>
<section class="section_editar_home" >
<img src="img/menu_img.png" alt="menu" class="img_cpanel" />
<h3>Adicionar Prato</h3>
<form name="form1" action="" method="post">
<fieldset>
<table width="530" height="203" border="1" class="Mytable">
<tr>
<td height="73">Nome:</td>
<td><input type="text" name="name" />
</td>
</tr>
<tr>
<td>Categoria:</td>
<td>
<select>
<?php
require 'scripts/config.php';
$sql = "select * from cardapio_categoria";
$res = mysql_query($sql) or die (mysql_error());
while($categoria=mysql_fetch_array($res) or die (mysql_error())) {
$cat = $categoria['card_nome'];
echo "<option> $cat </option>";
}
?>
</select>
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Adicionar" class="submit" /></td>
</tr>
</table>
</fieldset>
</section>
</article>
esse <article> está sendo chamado por uma querystring. o Header aparece normalmente, mas o footer não, nem o botão submit o.o
>>>>>>>> já resolvi, era o or die no while e.e
bom q não precisou formatar o notebook para resolver. rsrs
#15 hauhuahu
ja tentou rodar a consulta direto no banco?
faça o mysql exibir as mensagens de erros corretamente:
$res = mysql_query($sql) or die (mysql_error());