xavrim 0 Denunciar post Postado Outubro 30, 2007 Galera, estou com easyphp 1.8 instalado na minha máquina, e estou utilizando o php 4.3.10 e está dando o seguinte erro: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\midiabhnovo\admin\deletar\deletardesigngrafico.php on line 75 Antes de instalar o easyphp 1.8, está tudo beleza, agora está dando este erro.. Qual é este argumento? Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Outubro 30, 2007 mysql_fetch_array() espera um recurso (resource) como argumento. No caso, você deve ter valorizado uma variável com este recurso, como em: $qry = mysql_query("SELECT * FROM tabela"); Caso o comando sql seja executado sem erros, $qry será um recurso. Caso contrário, será valorizada com FALSE. Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 30, 2007 poste o código ai, para verificar-mos o que está errado. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
xavrim 0 Denunciar post Postado Outubro 30, 2007 <? include '../conexao.php'; $db=conectar(); $sql=mysql_query("select * from 3d_modelagem", $db); while($valor=mysql_fetch_array($sql)){ $horarios = $valor['horarios']; if($horarios!="[Selecione o Horário]"){ echo "Horário: <input type='text' value='$horarios' size='102'>"; } } ?> O código e este. Eu akbei de conseguir, mas surgiu outra dúvida. Tenho começo do código, a validação da sessão sendo chamado pela include.. <?php include "../valida_cookies.php"; ?> Dentro desta página tenho uma função que tem o nome de conectar(); <? function conectar(){ $login="root"; /* Conexão com o estúdio do site - Usueario:" " */ $senha="midia"; /* Conexão com o estúdio do site - Senha: " " */ $servidor="localhost"; $banco="user_senha"; $db=mysql_connect($servidor,$login,$senha) or die("Erro ao Conectar: " . mysql_error()); mysql_select_db($banco,$db); return($db); } ?> Está verifica o usuariom so que tenho outra página que tomá contar de outro assunto.. include '../conexao.php'; $db=conectar(); O nome da função e o mesmo, isso está dando o seguinte erro: Fatal error: Cannot redeclare conectar() (previously declared in c:\arquivos de programas\easyphp1-8\www\midiabhnovo\admin\conexao_user.php:3) in c:\arquivos de programas\easyphp1-8\www\midiabhnovo\admin\conexao.php on line 2 Coloco o nome diferente e funciona.. Ai que tá, pq com easyphp instalado está dando este seguinte erro, e antes estava tudo dando certo, e até mesmo no meu espaço de hospedagem está tudo ok? Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Outubro 30, 2007 é que você está incluindo o arquivo da função de conectar duas vezes, e consequentemente a função será declarada duas vezes (o que não é permitido). Utilize include_once() no lugar de include. Assim, caso o arquivo já tenha sido anteriormente incluido, este não será re-incluido. Compartilhar este post Link para o post Compartilhar em outros sites
xavrim 0 Denunciar post Postado Outubro 30, 2007 Não deu.. Utiliza assim: include_once ('pagina.php'); Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 30, 2007 é que você está incluindo o arquivo da função de conectar duas vezes, e consequentemente a função será declarada duas vezes (o que não é permitido). Utilize include_once() no lugar de include. Assim, caso o arquivo já tenha sido anteriormente incluido, este não será re-incluido. O marcio.sfs já respondeu. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Compartilhar este post Link para o post Compartilhar em outros sites
xavrim 0 Denunciar post Postado Outubro 30, 2007 Quanto mais eu mexo, dar mais erro :angry: Olha só: <? include '../conexao.php'; $db=conectar_cursos(); $cont=0; $ver=0; $tamanho = $_POST["tamanho"]; $tabela = $_POST["tabela"]; while($cont<$tamanho){ $del=$_POST["deleta$cont"]; $id=$_POST["id$cont"]; if ($del=="on"){ [b]$ver = mysql_query("delete from $tabela where id='$id'", $db); mysql_num_rows($ver);[/b] } $cont++; } [b]if($ver>=1){ echo "Horário(s) deletado(s)!<br/><br/>Tabela: $tabela<br><br><a href='../horarios.php' class='texto'>Voltar</a><br><br>"; }[/b] else{ echo "<span class='falso'>Nada foi alterado.</span><br/><br/>Relatar os problemas ao administrador do sistema."; } ?> Coloquei este mysql_num_rows só para verificar se algo foi alterado, mais dá este erro: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\midiabhnovo\admin\deletar\deletado.php on line 78 O bkna, que funciona, mas se colocou um teste para ver quantas linhas foram alteradas ele voltar o valor 1 mesmo se marquei 2 caixas. Alguém pod me ajudar... Tá osso :( Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 30, 2007 Modifiquei teu código tenta ai... altere os dados de acordo com o seu servidor... PHP <?<?php function conexao(){ global $base; $base = mysql_connect("localhost","USUARIO","SENHA")or die("Erro ao se conectar com o DB"); $db = mysql_select_db("NOME_DB,$base)or die("Erro na seleção do DB"); } ?> <? conexao(); $cont=0; $ver=0; $tamanho = $_POST["tamanho"]; $tabela = $_POST["tabela"]; while($cont < $tamanho){ $del=$_POST["deleta$cont"]; $id=$_POST["id$cont"]; if ($del=="on"){ $ver = mysql_query("delete from $tabela where id='$id'", $base); mysql_num_rows($ver); } $cont++; } if($ver>=1){ echo "Horário(s) deletado(s)!<br/><br/>Tabela: $tabela<br><br><a href='../horarios.php' class='texto'>Voltar</a><br><br>"; } else{ echo "<span class='falso'>Nada foi alterado.</span><br/><br/>Relatar os problemas ao administrador do sistema."; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
xavrim 0 Denunciar post Postado Outubro 30, 2007 Vlw, mas dá a mesma mensagem: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\midiabhnovo\admin\deletar\deletado.php on line 113 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\midiabhnovo\admin\deletar\deletado.php on line 113 Horário(s) deletado(s)! Tá dificil! Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 30, 2007 tente novamente. Abraço. PHP <?<?php function conexao(){ global $base; $base = mysql_connect("localhost","USUARIO","SENHA")or die("Erro ao se conectar com o DB"); $db = mysql_select_db("NOME_DB,$base)or die("Erro na seleção do DB"); } ?> <? conexao(); $cont=0; $ver=0; $tamanho = $_POST["tamanho"]; $tabela = $_POST["tabela"]; while($cont < $tamanho){ $del=$_POST["deleta"]; $id=$_POST["id"]; if ($del=="on"){ $ver = mysql_query("delete from $tabela where id='$id'", $base); } $cont++; } $contar = mysql_query("SELECT * FROM $tabela", $base)or die("Erro..") $linhas = mysql_num_rows($contar); if($linhas > =1){ echo "Horário(s) deletado(s)!<br/><br/>Tabela: $tabela<br><br><a href='../horarios.php' class='texto'>Voltar</a><br><br>"; } else{ echo "<span class='falso'>Nada foi alterado.</span><br/><br/>Relatar os problemas ao administrador do sistema."; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
slipce 0 Denunciar post Postado Outubro 30, 2007 mysql_num_rows não funciona para delets, acho que o comando que você quer é o mysql_affected_rows que mostra as linhas que foram afetadas com a operação. Compartilhar este post Link para o post Compartilhar em outros sites
xavrim 0 Denunciar post Postado Outubro 30, 2007 Agora deu sim... O que estava acontecendo antes. Pq não estava dando? Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 30, 2007 Foi por isso que eu criei a função mysql_num_rows(); em conjunto com o select que fiz... assim não da esse problema. outra coisa: isso está errado : PHP while($cont < $tamanho){ $del=$_POST["deleta $cont "]; // não pode ter essa variável ai... $id=$_POST["id $cont "]; // e aqui também não. if ($del=="on"){ http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
xavrim 0 Denunciar post Postado Outubro 30, 2007 Eu retirei igual você tinha feito, so q não dar certo, pois a pagina que recebe os dados não tem o valor de deleta por exemplo, senão todos os campos anteriores terao o mesmo nome e por isso não será passado nenhum valor. você fez uma consulta onde não vai pegar quantas linhas foram apagadas, daí modifiquei: ...if ($del=="on"){ $ver = mysql_query("delete from $tabela where id='$id'", $base); $linhas = mysql_num_rows($ver)or die("Erro..".mysql_error()); }... Ainda está dando mensagem que não contem argumento. :( .. Brigado kra! Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 30, 2007 Amigo olha o post do slipce.... Ele já esplicou o porque que não da certo... o PHP mysql_num_rows(); serve para contar as linhas e não para trazer linhas afetadas por uma consulta exceto a seleção dos dados para a contagem de linhas, então logo tu podes usar a função que ele disse que é a PHP mysql_affected_rows(); segue o código correto. PHP <?php function conexao(){ global $base; $base = mysql_connect("localhost","USUARIO","SENHA")or die("Erro ao se conectar com o DB"); $db = mysql_select_db("NOME_DB,$base)or die("Erro na seleção do DB"); } ?> <? conexao(); $cont=0; $ver=0; $tamanho = $_POST["tamanho"]; $tabela = $_POST["tabela"]; while($cont < $tamanho){ $del=$_POST["deleta"]; $id=$_POST["id"]; if ($del=="on"){ $ver = mysql_query("delete from $tabela where id='$id'", $base); $linhas = mysql_affected_rows($ver); } $cont++; } if($linhas == true){ echo "Horário(s) deletado(s)!<br/><br/>Tabela: $tabela<br><br><a href='../horarios.php' class='texto'>Voltar</a><br><br>"; } else{ echo "<span class='falso'>Nada foi alterado.</span><br/><br/>Relatar os problemas ao administrador do sistema."; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
xavrim 0 Denunciar post Postado Outubro 30, 2007 Ow.. Vlw mesmo.. Tem que estudar mesmo.. Agora tem umas coisas que é mutio dificil de entender.. Este argumento que estava aparecendo então no mysql_num_rows não era para este caso, pois: "serve para contar as linhas e não para trazer linhas afetadas por uma consulta exceto a seleção dos dados para a contagem de linhas..." Estou com zik mesmo: Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in c:\arquivos de programas\easyphp1-8\www\midiabhnovo\admin\deletar\deletado.php on line 81 O pior de tudo que excluir o que quero! Brigadão! Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 30, 2007 Somos Brasileiros ! hehehhe tente novamente... PHP <?php function conexao(){ global $base; $base = mysql_connect("localhost","USUARIO","SENHA")or die("Erro ao se conectar com o DB"); $db = mysql_select_db("NOME_DB,$base)or die("Erro na seleção do DB"); } ?> <? conexao(); $cont=0; $ver=0; $tamanho = $_POST["tamanho"]; $tabela = $_POST["tabela"]; while($cont < $tamanho){ $del=$_POST["deleta"]; $id=$_POST["id"]; if ($del=="on"){ $ver = mysql_query("delete from $tabela where id='$id'", $base); printf("Registros excluídos ! %dn", mysql_affected_rows()); } $cont++; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Outubro 30, 2007 Só uma dica: enquanto esta linha não retornar corretamente um resource, não vai dar certo o que você está tentando fazer. Linha: $ver = mysql_query("delete from $tabela where id='$id'", $base); Tenta printar um mysql_error(), por exemplo pra descobrir porque o resource não tá sendo gerado. Compartilhar este post Link para o post Compartilhar em outros sites
xavrim 0 Denunciar post Postado Outubro 31, 2007 Só uma dica: enquanto esta linha não retornar corretamente um resource, não vai dar certo o que você está tentando fazer. Linha: CODE $ver = mysql_query("delete from $tabela where id='$id'", $base); Tenta printar um mysql_error(), por exemplo pra descobrir porque o resource não tá sendo gerado. Então nesta linha vou colocar: $ver = mysql_query("delete from $tabela where id='$id'", $base) or die (mysql_error()); Já aproveitando, coloco o coódigo ... or die (mysql_error()); Onde eu quiser, para ver se aparece algum erro? Desde já agradeço. Compartilhar este post Link para o post Compartilhar em outros sites