RDP 0 Denunciar post Postado Dezembro 20, 2010 Boa Noite!! Tem um sisteminha aki que aparece um FATAL ERROR ao iniciar a pagina, apos escolha ele funciona normalmente, se alguem puder ajudar pagina form_modelo.php <script language="JavaScript" src="../js/select.js"></script> <?php include ('../include/conexao.php'); ?> <body onLoad="javascript:Atualiza();"> <div id="form_modelo"> <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post"> <span class="identificacao">Cadastro de Modelo</span> <p align="left"> <span class="gray">Todas Modelos: <select name="modelo" onChange="javascript:Atualiza(this.value);" class="borda1"> <option>-- Todas Modelos --</option> <?php $sql = "SELECT id_modelo, nome_modelo FROM modelo ORDER BY nome_modelo ASC"; $res = $conexao->query($sql); while($array = $res->fetch_object()): echo "<option value=\"".$array->id_modelo."\">".$array->nome_modelo."</option>"; endwhile; ?> </select> </p> </form> </div> <br /> <div id="atualiza"></div> <br /> . . . </body> pagina atualiza.php <?php include ('../include/conexao.php'); if (!isset($_GET['modelo']) || $_GET['modelo'] == "-- Todas Modelos --"){ echo "Escolha uma Modelo"; }else{ $sql = "SELECT * FROM modelo WHERE id_modelo = ".$_GET['modelo'].""; $res = $conexao->query($sql); while($array = $res->fetch_object()){ // esta é a linha 8 $idade = date('Y') - substr($array->nascimento_modelo,0,4); echo "<div style=float:left;>"; echo "<img src=".$array->img_modelo." border=0 width=120 height=120 ></a></div>"; echo "<div style=float:left; > <p align=left >"; echo " <span class=red >".$array->nome_modelo." ".$array->sobrenome_modelo."</span>"; echo "<br /><span class=gray >"; echo " RG: ".$array->rg_modelo."<br />"; echo " CPF: ".$array->cpf_modelo."<br />"; echo " Idade: ".$idade."<br />"; echo "</span></p></div>"; } } ?> pagina select.js var req; function loadXMLDoc(url,valor) { req = null; // Procura por um objeto nativo (Mozilla/Safari) if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open("GET", url+'?modelo='+valor, true); req.send(null); // Procura por uma versao ActiveX (IE) } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { req.onreadystatechange = processReqChange; req.open("GET", url+'?modelo='+valor, true); req.send(); } } } function processReqChange() { // apenas quando o estado for "completado" if (req.readyState == 4) { // apenas se o servidor retornar "OK" if (req.status == 200) { // procura pela div id="atualiza" e insere o conteudo // retornado nela, como texto HTML document.getElementById('atualiza').innerHTML = req.responseText; } else { alert("Houve um problema ao obter os dados:\n" + req.statusText); } } } function Atualiza(valor) { loadXMLDoc("atualiza.php",valor); } ERROR Fatal error: Call to a member function fetch_object() on a non-object in C:\wamp\www\novo_projeto\adm\atualiza.php on line 8 Estou fazendo desta maneira pois NÃO pode haver um SUBMIT neste formulario Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
dsmachado 14 Denunciar post Postado Dezembro 21, 2010 cara, na linha 8 tente substituir isso "fetch_object", por isso "mysql_fetch_object". ve si funciona aew. Diego Machado Blog PHP Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Knijnik 0 Denunciar post Postado Dezembro 21, 2010 Tenta fazer algo assim: <?php include ('../include/conexao.php'); if (!isset($_GET['modelo']) || $_GET['modelo'] == "-- Todas Modelos --"){ echo "Escolha uma Modelo"; }else{ $sql = "SELECT * FROM modelo WHERE id_modelo = ".$_GET['modelo'].""; $res = mysql_query($sql); while($array = mysql_fetch_array($res){ // esta é a linha 8 $idade = date('Y') - substr($array->nascimento_modelo,0,4); echo "<div style=float:left;>"; echo "<img src=".$array->img_modelo." border=0 width=120 height=120 ></a></div>"; echo "<div style=float:left; > <p align=left >"; echo " <span class=red >".$array->nome_modelo." ".$array->sobrenome_modelo."</span>"; echo "<br /><span class=gray >"; echo " RG: ".$array->rg_modelo."<br />"; echo " CPF: ".$array->cpf_modelo."<br />"; echo " Idade: ".$idade."<br />"; echo "</span></p></div>"; } } ?> Não mudei muita coisa, só na hora de pegar os dados lá na linha 7 e 8... vê o qe dá... Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Dezembro 21, 2010 Bom dia!! Tentei fazer como vcs disseram e não funcionou. Como sou novo em PHP achu que deve ser pq estou usando a classe MySQLI então o mysql_fetch_object, mysql_fetch_array, ... não funciona. Imprimindo a query apareceu: SELECT * FROM modelo WHERE id_modelo = undefined pelo que entendi a $_GET não foi definido valor p/ ela. bom para isso usei o isset, tentei tb o empty alguma luz?? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 21, 2010 troque: <select name="modelo" onchange="javascript:Atualiza(this.value);" class="borda1"> por: <select name="modelo" onchange="Atualiza( this.value );" class="borda1"> e para debug: function Atualiza(valor) { alert( valor ); loadXMLDoc("atualiza.php",valor); } veja se o valor, vem com o valor correto. Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Dezembro 21, 2010 Bom fiz as alteraçoes mas ainda nada ao iniciar a página não é passaso um valor apareceu lá "undefined". apos para cada nome selecionado no combobox, é passado um valor e o valor vem correto. há lembrando que é só ao iniciar a página que da o erro pois não é passado um valor Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 21, 2010 então está bastante obvio, nao ? function Atualiza(valor) { var v = valor==undefined ? 'valor default' : valor; loadXMLDoc( 'atualiza.php', v ); } ali eu testo, se 'valor' estiver undefined, então envio um valor default (troque pelo que você quiser), caso contrario envia o q veio como parametro Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Dezembro 21, 2010 Bom pessoal consegui!! troquei: $sql = "SELECT * FROM modelo WHERE id_modelo = ".$_GET['modelo'].""; por: $sql = "SELECT * FROM modelo WHERE id_modelo = '".$_GET['modelo']."'"; ao iniciar a pagina ele não me passa nenhum valor para $_GET['modelo'] mas desaparece o Fatal Error o que não entendi é que por ser um int não seria necessário as aspas simples, se alguem puder explicar isso. Obrigado a todos Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 21, 2010 na verdade, é ERRADO você fazer isso que você fez. já que é um INT, faça um cast. $modelo = isset( $_GET['modelo'] ) ? (int)$_GET['modelo'] : 0; $sql = "SELECT * FROM modelo WHERE id_modelo = {$modelo}"; se você for para um servidor 'mais bem configurado', terá problemas com essa 'solução' que você fez. Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Dezembro 21, 2010 entendido Obrigado Compartilhar este post Link para o post Compartilhar em outros sites