Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um sistema de pedidos no site e um sistema para usuarios com painel e quero que nesse painel exiba somente os pedidos que o usuarios já fez eu fiz da seguinte forma
<?php
$consulta = mysql_query("SELECT * FROM usuarios WHERE iduser = '".$_SESSION['id']."'"); // Linha 187 Informada No Erro
if(mysql_num_rows($consulta)==true){ // Linha 188 Informada No Erro
while($info = mysql_fetch_array($consulta)){
?>
<tr>
<td><?php $info['protocolo'] ?></td>
<td><?php $info['endereco'] ?></td>
<td><?php $info['solicitacao'] ?></td>
<td><?php $info['status'] ?></td>
</tr>
<?php
}
}
?>
e ele retornou esse erro aqui pra mim
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in/home/storage/e/ae/be/acaiamarena/public_html/modulos/painel.php on line 187
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in/home/storage/e/ae/be/acaiamarena/public_html/modulos/painel.php on line 187
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in/home/storage/e/ae/be/acaiamarena/public_html/modulos/painel.php on line 188
EDIT::::: modifiquei o codigo depois e coloquei ele assim
<?php
$consulta = "SELECT * FROM usuarios WHERE iduser = '".$_SESSION['id']."'";
$con = $mysqli->query($consulta) or die ($mysqli->error); // linha 188 mencionada no erro
if(mysql_num_rows($consulta)==true){
while($info = $con->fetch_array()){
?>
e ele retornou esse erro pra mim
Fatal error: Call to a member function query() on a non-object in/home/storage/e/ae/be/acaiamarena/public_html/modulos/painel.php on line 188
eu não manjo muito de mysqli então fiz de com o mysqli msm antigão e fiz uma include com a conexão com o banco de dados
include "lib/conexao2.php";
$consultadb = mysql_query("SELECT * FROM pedidos WHERE iduser = '".$_SESSION['id']."'");
if(mysql_num_rows($consultadb)==true){
while($infoped = mysql_fetch_array($consultadb)){
?>
<tr>
<td><?php $infoped['protocolo'] ?></td>
<td><?php $infoped['endereco'] ?></td>
<td><?php $infoped['solicitacao'] ?></td>
<td><?php $infoped['status'] ?></td>
<td><?php if($infoped['formpag'] == 1){ ?>
Dinheiro
<?php }elseif($infoped['formpag'] == 2){ ?>
Cartão (Elo, Visa, MasterCard)
<?php }else if($infoped['formpag'] == 3) { ?>
Cartão (Hipercard)
<?php } ?>
</td>
</tr>
<?php
}
?>
<?php }else{ } ?>
dessa foma ai ele não retornou nenhum erro pra mim, só que ele não tá exibindo os resultados
Pra começar, se o seu else é vazio, remova-o, debugue o num_rows desta forma:
var_dump(mysql_num_rows($consultadb));
E diga oquê retornou.
não aconteceu nada, continua não exibindo nada
No inicio do php:
ini_set('display_errors', true);
error_reporting(E_ALL);
Na frente do mysql_query():
$consulta = mysql_query("SELECT * FROM usuarios WHERE iduser = '".$_SESSION['id']."'") or exit(mysql_error());
E para completar faça um:
var_dump($_SESSION);
E diga novamente o que retornou.
-> http://forum.imasters.com.br/topic/542539-atencao-orientacoes-e-regras-do-forum-de-php/
me mostrou esses erros agora muito loucos kkk
array(13) { ["login"]=> &string(24) "alfredoblima@outlook.com" ["senha"]=> &string(32) "45ee6fbbb0b74be7b3efa8b52b954607" ["nome"]=> &string(30) "Alfredo Barbosa Falc�o De Lima" ["endereco"]=> &string(35) "Avenida Amazonas 1045 Bairro Brasil" ["telefone"]=> &string(11) "03496905514" ["foto"]=> &string(11) "alfredo.jpg" ["compras"]=> &string(1) "0" ["cidade"]=> &string(11) "Uberlândia" ["pontos"]=> &string(1) "0" ["id"]=> &string(2) "12" ["nivel"]=> &string(1) "1" ["sexo"]=> &string(9) "Masculino" ["estado"]=> &string(12) "Minas Gerais" }[/size]
>
me mostrou esses erros agora muito loucos kkk
array(13) { ["login"]=> &string(24) "alfredoblima@outlook.com" ["senha"]=> &string(32) "45ee6fbbb0b74be7b3efa8b52b954607" ["nome"]=> &string(30) "Alfredo Barbosa Falc�o De Lima" ["endereco"]=> &string(35) "Avenida Amazonas 1045 Bairro Brasil" ["telefone"]=> &string(11) "03496905514" ["foto"]=> &string(11) "alfredo.jpg" ["compras"]=> &string(1) "0" ["cidade"]=> &string(11) "Uberlândia" ["pontos"]=> &string(1) "0" ["id"]=> &string(2) "12" ["nivel"]=> &string(1) "1" ["sexo"]=> &string(9) "Masculino" ["estado"]=> &string(12) "Minas Gerais" }
Isso não é erro, é um array. Você consultou o usuário logado, e não os pedidos dele. Por isso não mostrou nenhum dado na tabela html.
Quais os nomes das tabelas que você tem no seu banco de dados?? Se possível, a estrutura também.
ta aqui a estrutura do meu db/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/W7A2Sx8.png&key=b93bfc380178d20d233a66fe9526a26cbb1eadcac625ec1ac808cea2d15b3cfe" alt="W7A2Sx8.png" />
na minha tabela de pedidos eu usei o seguinte codigo
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
include "lib/conexao2.php";
$consultadb = mysql_query("SELECT * FROM pedidos WHERE iduser = '".$_SESSION['id']."'") or exit(mysql_error());
var_dump($_SESSION);
if(mysql_num_rows($consultadb)==true){
while($infoped = mysql_fetch_array($consultadb)){
?>
<tr>
<td><?php $infoped['protocolo'] ?></td>
<td><?php $infoped['endereco'] ?></td>
<td><?php $infoped['solicitacao'] ?></td>
<td><?php $infoped['status'] ?></td>
<td><?php if($infoped['formpag'] == 1){ ?>
Dinheiro
<?php }elseif($infoped['formpag'] == 2){ ?>
Cartão (Elo, Visa, MasterCard)
<?php }else if($infoped['formpag'] == 3) { ?>
Cartão (Hipercard)
<?php } ?>
</td>
</tr>
<?php
}
?>
<?php }else{ } ?>
só que na mesma pagina um pouco acima eu usei esse codigo para exibir informações do usuario logado
<?php
$nomepainel = $_SESSION['nome'];
echo utf8_encode($nomepainel);
?>
</span></h4>
<!-- Some Text -->
<div class="panel-body">
<table class="table table-bordered table-striped table-hover table-heading table-datatable" id="datatable-1">
<thead>
<tr>
<th>Email: <strong><?=$_SESSION['login']; ?></strong></th>
<th><div class="btn-group">
<button class="btn btn-warning btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Editar
</button>
</div></th>
</tr>
<tr>
<th>Telefone: <strong><?=$_SESSION['telefone']; ?></strong></th>
<th><div class="btn-group">
<button class="btn btn-warning btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Editar
</button>
</div></th>
</tr>
<tr>
<th>Cidade: <strong><?=$_SESSION['cidade']; ?></strong></th>
<th><div class="btn-group">
<button class="btn btn-warning btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Editar
</button>
</div></th>
</tr>
<tr>
<th>Endereco: <strong><?=$_SESSION['endereco']; ?></strong></th>
<th><div class="btn-group">
<button class="btn btn-warning btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Editar
</button>
</div></th>
</tr>
<tr>
<th>Estado: <strong><?=$_SESSION['estado']; ?></strong></th>
<th><div class="btn-group">
<button class="btn btn-warning btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Editar
</button>
</div></th>
</tr>
<tr>
<th>Sexo: <strong><?=$_SESSION['sexo']; ?></strong></th>
<th><div class="btn-group">
<button class="btn btn-warning btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Editar
</button>
</div></th>
e também tem esse codigo de restrição no topo do arquivo
<?php
if(!isset($_SESSION['login']) and !isset($_SESSION['senha'])){
echo "<meta http-equiv='refresh' content='0; URL=index.php?mod=login'>";
}
?>Sim, mas o seu DB só tem uma tabela?? No caso ali, parece ser a tabela usuários.
sim tem 3 tabelas eu mandei a foto da tabela pedidos
aqui está a tabela usuarios
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/qrnlQNg.png&key=73da2d41f7b14b30f7e5c86f6fd268e5980a0e16476b8f9e0691f95ae756e96e" alt="qrnlQNg.png" />
e aqui está a tabela produtos
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/z2IUkV7.png&key=d729733ca7c67f2482b3c176cb5f948a508f9c57a9d7a89ede4c7c245389ea87" alt="z2IUkV7.png" />
Você está pesquisando em uma tabela só. Se você tem o ID de um usuário na tabela usuários, e o id do usuário na tabela pedidos, você tem que fazer a consulta nas 2 tabelas para achar os dados que você precisa.
Tenta assim:
"SELECT u.id, p.* FROM usuarios u, pedidos p WHERE u.id = p.iduser AND u.id = '".$_SESSION['id']."')Puts que vacilo, agora que vc explicou faz uma lógica, mas eu nem tava pensando nisso Kkkk vou tentar.
fiz da forma que você mostrou e continua não exibindo nada
$consultadb = mysql_query("SELECT u.id, p.* FROM usuarios u, pedidos p WHERE u.id = p.iduser AND u.id = '".$_SESSION['id']."'");Acho que descobri o erro:
<tr>
<td><?php $infoped['protocolo'] ?></td>
<td><?php $infoped['endereco'] ?></td>
<td><?php $infoped['solicitacao'] ?></td>
<td><?php $infoped['status'] ?></td>
<td><?php if($infoped['formpag'] == 1){ ?>
Dinheiro
<?php }elseif($infoped['formpag'] == 2){ ?>
Cartão (Elo, Visa, MasterCard)
<?php }else if($infoped['formpag'] == 3) { ?>
Cartão (Hipercard)
<?php } ?>
</td>
</tr>
Falta o echo depois do <?php de cada <td>anão, mentira, vou ter q para de mexer com php depois dessa, essa foi a maior mancada da minha vida, foi mal fazer vcs perderem o tempo de vcs ai kkkkkk deu certinho aqui já, obrigado
Que bom que pude ajudar! Abraços!
Eai Alfredo,
A conexão com o banco foi aberta antes desse código?
por que o que me parece nesse segundo código que tu colocou é que não, de onde vem essa variável
$mysqli?
esse erro ta dando por que não existe um método 'query' dentro dessa variável/objeto $mysqli .
sugiro que de uma lida mais sobre mysqli.
Qualquer coisa só mandar msg.
A e não indico usar a classe mysql, use mysqli ou PDO que além de serem mais seguras tem outras vantagens, mas ai fica a a teu critério escolher o que usar.