Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com consulta no BD mysql e php


chamuska

Pergunta

Galera, to usando javascript e php e tenho uma parte do codigo q uma variavel php recebe um valor de um comando javascript, dai uso a variavel php pra faze a consulta no BD, mas ta aparecendo a MSN de erro

<b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>/var/www/listbox/list_teste.php</b> on line <b>41</b><br />
Mas quando eu vo na variavel '$sql' e tiro o $val e troco por um valor, tipo 2, ele não da erro. E já tentei coloca "SELECT cd.id, cd.nome FROM estado es INNER JOIN cidade cd ON es.id = cd.estado_id WHERE es.id = ".$val."" e da o mesmo problema. O codigo javascript e php que to usando é esse:
< script type="text/javascript">

function estados(x){

    /*pega todos os values da list*/

    var opts = document.doublecombo.estado.options;

    <?php $cod = "d.estado.options[i].value";?>


    var group=new Array(groups);
    var groups=document.doublecombo.estado.options.length;

    for (i=0; i<groups; i++){

        group[i]=new Array();

    }

    for(i = 0; i< groups; i++){

        alert('oi');

        k = 0;

        <?php 

        $val = $cod; 

        $sql = "SELECT cd.id, cd.nome FROM estado es INNER JOIN cidade cd ON es.id = cd.estado_id WHERE es.id = $val";

        ?> <?php

        $result = mysql_query($sql, $conexao);

        
        while($estado = mysql_fetch_array($result)){ 

        $id = $estado[0];

        $nome = $estado[1];

         ?> 

        group[i][k]=new Option("<?php echo $nome ?>", "<?php echo $id ?>");

        k++;

        <?php

        } ?>

    }



    var temp=document.doublecombo.cidade;


    for (m=temp.options.length-1;m>0;m--){

        temp.options[m]=null;

    }

    for (i=0;i<group[x].length;i++){

        temp.options[i]=new Option(group[x][i].text,group[x][i].value);

    }

    temp.options[0].selected=true;    

}

</script>

já to a umas 2 horas tentando arruma isso, se alguém ai sabe o que é me avisa! Eu to achando que a $val naota indo como um valor numerido, mas sim como um caracter.

Vlws galera!

Editado por chamuska
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Tela em branco? O teu PHP deve estar com a exibição de erros desabilitada, habilita isso (pesquisa no google ou no fórum) e rode o script, pois existe algum erro na query, e o mysql_error() informa que erro é esse.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, eu vi nos erros do firebug do mozilla e apareceu la a string que criei com o select e da iaparecei onde eu tinha colocado a variavel php que recebeu o valor da variavel js, a variavel php tava mostrando o nome da variavel js e não o valor dela. To dando uma pesquisada melhor sobre variaveis php receberem variaveis js.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, você falou que tentou usar

"SELECT cd.id, cd.nome FROM estado es INNER JOIN cidade cd ON es.id = cd.estado_id WHERE es.id = ".$val.""

em vez disso tenta

"SELECT cd.id, cd.nome FROM estado es INNER JOIN cidade cd ON es.id = cd.estado_id WHERE es.id = '.$val.'"

na verdade a mesma coisa, só que com aspa simples...

não sei bem, porque não to em casa pra testar no apache, mas quem sabe funciona.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, eu testei por testa usando aspas simples, porque elas so servem se a variavel for caracter ou string, no meu caso tem q ser um inteiro. Bom, testei aqui e também não deu certo.

Parece que a variavel $val fica com o comando js em vez de pega o valor da variavel js.

Afffff, passei o dia todo tentando e não deu.

Mais alguém ai tem alguma ideia ??

Vlws!

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, é esse o problema mesmo. tem como resolve ??

Eu andei dando uma olhada na net e achei esse exemplo:

<?
function select_curso(){
$sql = "SELECT * FROM curso";
$result = mysql_query($sql);

print "<script>\n";
print "\tfunction Select (form) {\n";
print "\t\tswitch (form.curso.options[form.curso.selectedIndex].value) {\n";

while($rs = mysql_fetch_array($result)){
$cod_curso = $rs['cod_curso'];

print "\t\t\tcase '".$cod_curso."':\n";
print "\t\t\t\tform.produtos.length=0;\n";
$sqlt = "SELECT * FROM turmas WHERE cod_curso = '".$cod_curso."'";
$resultt = mysql_query($sqlt);
$option_cont = 0;
while($rst = mysql_fetch_array($resultt)){
$cod_turma = $rst['cod_turma'];
$titulo_turma = $rst['titulo_turma'];

print "\t\t\t\tform.turma.options[".$option_cont."] = new Option('".$titulo_turma."','".$cod_turma."');\n";
$option_cont += 1;
}
print "\t\t\tbreak;\n";
}
print "\t\t}\n";
print "\t}\n";
print "</script>\n";

}
?>
<select name="curso" class="borda" id="curso" onChange="java script:Select(this.form);">
<option disabled>Escolha o Curso</option>
<?
$sql = "SELECT * FROM curso";
$result = mysql_query($sql);
while($rs = mysql_fetch_array($result)){
$cod = $rs['cod_curso'];
$titulo = $rs['titulo_curso'];
print "<option value='".$cod."'>".$titulo."</option>";
}
?>
</select>
<select name="turma">
</select>

Eu to fazendo uns teste e ainda não consegui faze o segundo listbox funciona, mas vocês achao que da certo faze como ta ai, ou faze algo parecido ??

Vlws!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...