hernani33 Posted December 4, 2016 at 11:11 AM Report Share #601003 Posted December 4, 2016 at 11:11 AM eu sou iniciante no php e queria ver se alguem me consegue dar uma ajudinha, tenho este codigo( nao fui eu que fiz) da-me o seguinte erro --> mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in, é na linha //pesquisa artigo selecionado, alguem me comnsegue dar uma ajudinha?? obrigado <?php session_start(); // ligação à base de dados include('ligacao.php'); // captura código de artigo $id_artigo = $_REQUEST['id_artigo']; // prepara sessão de compra $sessao = session_id(); // pesquisa artigo selecionado $sql_artigo = "SELECT * FROM artigos WHERE id_artigo =".$id_artigo ; $consulta1 = mysqli_query($ligacao, $sql_artigo); $mostrar = mysqli_fetch_array($consulta1); // mostrar detalhes do artigo selecionado echo "<table width='800 px' border='1' align='center'>"; echo "<p align='center'><a href=\"lista_compras.php\">Ver lista de compras</a></p>"; echo "<p align='center'><a href=\"index.php\">Ver todos os artigos</a></p>"; echo "<strong><p align='center'>Você selecionou os seguintes artigos:</strong></p><td align='center' width='100' height='100' valign='middle'> <img src='$pasta_imagens".$mostrar['imagem_artigo']."' border='0'>"; echo "<td><align='center'>".$mostrar['nome_artigo']."</a></br>EUR ".$mostrar['preco_artigo']." </br>".$mostrar['descricao_artigo']."</br>"; // seleciona quantidade temporaria $sql_quantidade = 'SELECT quantidade FROM compra_temporaria WHERE sessao = "'.$sessao.'" AND id_artigo = "'.$id_artigo. '"'; $consulta2 = mysqli_query($ligacao, $sql_quantidade); $resultado = mysqli_fetch_assoc($consulta2); // se houver quantidades já inseridas, extrai valores para mostrar if (mysqli_num_rows($consulta2) > 0) { $quantidade = $resultado['quantidade']; } // se não houver quantidade já inserida, atribui valor zero else {$quantidade = 0;} // inicia formulario para atualizar valores de quantidade echo '<form method="POST" action="atualizar_compra.php">'; // apresenta quantidade a zero ou o número de vezes selecionado echo '<p>Quantidade: <input type="text" name="quantidade" id="quantidade" size="2" value="'.$quantidade.'"/>'; // se a quantidade for positiva, permite alterar ou remover quantidade/artigo if ($quantidade > 0) { echo '<align="center"><input type="submit" name="submit" value="Alterar"/>'; echo '<align="center"><input type="submit" name="submit" value="Remover artigo"/>'; // se a quantidade for nula, permite adicionar artigo } else { echo '<align="center"><input type="submit" name="submit" value="Adicionar"/>'; } echo '<input type="hidden" name="id_artigo" value="'.$id_artigo.'"/>'; echo "</form>"; echo "</table>"; ?> Link to comment Share on other sites More sharing options...
Knitter Posted December 4, 2016 at 11:30 AM Report Share #601004 Posted December 4, 2016 at 11:30 AM A consulta à base de dados falhou e a função mysqli_query devolveu FALSE em vez de devolver um recurso para usar nas funções seguintes. Ou a tua query tem um erro, se a variável $id_artigo estiver fazia tens um erro na sintaxe do SQL, ou a ligação à base de dados não foi estabelecida. Link to comment Share on other sites More sharing options...
chbcl Posted December 4, 2016 at 11:32 AM Report Share #601005 Posted December 4, 2016 at 11:32 AM Faz um var_dump à $ligação e mostra o output aqui. Experimenta na query por o id do artigo entre ' ... ' Verifica também se esse id está a ser recebido developer @ filipealves.net filipealvesbcl [a] gmail.com github.com/filipealvesbcl Link to comment Share on other sites More sharing options...
hernani33 Posted December 6, 2016 at 03:29 PM Author Report Share #601053 Posted December 6, 2016 at 03:29 PM boas, obrigado ja consegui resolver, mas agora tenho outro, tenho o codigo que esta em baixo, trata-se de enviar os pedidos das compras por email, eu recebo o email assim ---> Pedido - 06/12/2016 16:20 id_cliente -> 27 Nome_Login ->carlos Cod. -> 3 - Quantidade -> 1 - o melhor disco rigido do mercado preço_artigo -> 0.55 * 1 Sub_total: 0.55 Valor Total: 1.1; Numero de compra: 2 carlos carlos rua 11 de março catujal 2680-395 hernani_coelho@msn.com ------------------------------------------------------------------- só que o problema é que so vem um artigo no email se a pessoa comprar 2 artigos o valor total vem certo mas nao os artigos. será que alguem me consegue dar uma ajudinha?? <?php // inicia sessão session_start(); // ligação à base de dados include('ligacao.php'); // verifica número de sessão $sessao=session_id(); $id_cliente=$_SESSION['id_cliente']; $sql_cliente= 'SELECT * FROM clientes WHERE id_cliente='.$id_cliente; $consulta1=mysqli_query($ligacao, $sql_cliente); while ($mostrar= mysqli_fetch_array($consulta1, MYSQLI_BOTH)){ extract ($mostrar); echo "<table width='800 px' border='1' align='center'>"; echo "<tr><td><strong>Passo 2 - Resumo compra</strong></td></tr>";} ?> <tr><td> <table> <tr><td>Primeiro Nome: <?php echo $primeiro_nome;?></td></tr> <tr><td>Ultimo Nome: <?php echo $apelido;?></td></tr> <tr><td>Rua/Lugar: <?php echo $endereco;?></td></tr> <tr><td>Localidade: <?php echo $localidade;?></td></tr> <tr><td>Codigo Postal: <?php echo $codigo_postal;?></td></tr> <tr><td>Endereço de correio electronico: <?php echo $email;?></td></tr> </table> <?php $sql_carrinho = 'SELECT * FROM compra_temporaria temp JOIN artigos prod ON temp.id_artigo=prod.id_artigo WHERE sessao ="'. $sessao .'" ORDER BY temp.id_artigo ASC'; $consulta2=mysqli_query($ligacao, $sql_carrinho)or die (mysql_error()); $resultado=mysqli_num_rows($consulta2); if ($resultado > 0 ){ $total=0; echo "<table width='800 px' border='1' align='center'>"; echo "<th>Imagem Artigo </th><th>Detalhe Artigo</th><th>Quantidade</th><th>Preço Unitario</th><th>Total a pagar</th>"; While ($mostrar = mysqli_fetch_array($consulta2, MYSQLI_BOTH)){ extract ($mostrar); echo "<tr><td align='center' width='100' height='100' valign='middle'>; <img src='$pasta_imagens" .$imagem_artigo. "' ></a>"; echo "<td align='center'>".$descricao_artigo."</td></a>"; echo "<td align='center'>".$quantidade."</td>"; echo "<td align='center'>EURO" .$preco_artigo."</td>"; $sub_total= number_format($preco_artigo * $quantidade, 2); echo "<td align='center'>EURO" .$sub_total."</td>"; $total =$total + $preco_artigo * $quantidade; echo "<tr><td align='right' colspan='5'> O valor total a pagar é de: <strong>EURO ".number_format($total,2)."</strong></td></tr>"; } } $sql_regista_compra = "INSERT INTO compra_confirmada (data_compra, id_cliente, total_pagar) VALUES (NOW(),'".$id_cliente."', '".$total."')"; $consulta3 =mysqli_query($ligacao, $sql_regista_compra); $id_compra = mysqli_insert_id($id_compra); $sql_regista_detalhes_compra= ' INSERT INTO detalhes_compra (id_compra, quantidade_compra, id_artigo) SELECT ' .$id_compra.', quantidade, id_artigo FROM compra_temporaria WHERE sessao= "' .$sessao.'"'; $consulta4= mysqli_query($ligacao, $sql_regista_detalhes_compra); $sql_elemina_temp = 'DELETE FROM compra_temporaria WHERE sessao= "'.$sessao.'"'; $consulta5 = mysqli_query($ligacao, $sql_elimina_temp); echo "<td colspan='5'> A compra foi realizada com sucesso e ficou com o numero ".$id_compra; //echo "<p> Sera enviada uma cópia dos detalhes da compra para o seu email.</p>"; echo "<tr><a href='index.php?pagina=1'> Clique para voltar á pagina inicial.</a></tr>"; session_unset(); session_destroy(); ?> <?php include("ligacao.php"); include("class.phpmailer.php"); include("class.smtp.php"); require('PHPMailerAutoload.php');{ $data = date('d/m/Y H:i'); $sql_carrinho ="SELECT * FROM clientes WHERE id_cliente='.$id_cliente"; if ($sql_carrinho == '') { echo 'erro ao selecionar'; } else{ while($res_seleciona = mysqli_fetch_array($sql_carrinho)); { $porta = $res_seleciona ['587']; $servidor = $res_seleciona ['smtp.sapo.pt']; $usuario_conta = $res_seleciona ['hernani@sapo.pt']; $senhaemail = $res_seleciona ['']; $emailSite = $res_seleciona ['hernani@sapo.pt']; $emailsiterecebe = $res_seleciona ['hernani@sapo.pt']; $telefone = $res_seleciona ['914630554']; $meudominio = $res_seleciona ['www.coelhodesign.info']; $nomeEmpresa = utf8_decode($res_seleciona ['coelhodesign']); $mail=new PHPMailer(); $mail->SMTPSecure = "tls"; $mail->SMTPDebug = 3; $mail->Priority = 1; $mail->IsSMTP(); $mail->SMTPAuth = false; $mail->CharSet = "utf-8"; $mail->Port = "{$porta}"; $mail->Hostname = "{$servidor}"; $mail->Username = "{$usuario_conta}"; $mail->Password = "{$senhaemail}"; $mail->From = "{$email}"; $mail->FromName = "hernani@sapo.pt"; $mail->SetFrom("hernani@sapo.pt", "{$nomeEmpresa}"); $mail->AddAddress("coelho.hernani@sapo.pt", "{$nomeEmpresa}"); $mail->Subject = utf8_decode("Solicitação pedido:"); $mail->IsHTML = (true); //$mail->CharSet ='iso-8859-1'; //header('Content-Type: text/html; charset=iso-8859-1'); $body="Pedido - {$nomeEmpresa} {$data} id_cliente -> {$id_cliente} Nome_Login ->{$nome_login} Cod. -> {$id_artigo} - Quantidade -> {$quantidade} - {$descricao_artigo} preço_artigo -> {$preco_artigo} * {$quantidade} Sub_total: {$sub_total} Valor Total: {$total}; Numero de compra: $id_compra {$resultado} {$primeiro_nome} {$apelido} {$endereco} {$localidade} {$codigo_postal} {$email} ------------------------------------------------------------------- "; $address = "hernani@sapo.pt"; $mail->AddAddress($address, "nome"); } } $mail->Body=$mail_body.$body; if($mail->send()){ echo "<script> alert('PARABENS!!\n\nO seu pedido foi enviado com sucesso.'); window.location.href='index.php' </script>";} else{ echo 'Erro ao enviar o email '.$mail->ErrorInfo; } } //session_unset(); //session_destroy(); ?> Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 6, 2016 at 09:40 PM Report Share #601056 Posted December 6, 2016 at 09:40 PM porque é que tens ciclos para fazer echo do html e não tens um único ciclo para escrever o email ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
hernani33 Posted December 7, 2016 at 10:27 AM Author Report Share #601067 Posted December 7, 2016 at 10:27 AM ola, é que eu sou novato no php, e so estou a juntar 2 ficheiros onde fiz pequenas alterações , não fui eu que fiz o codigo, se me puderes ajudar agradeço. hernani Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 7, 2016 at 11:03 AM Report Share #601069 Posted December 7, 2016 at 11:03 AM ser "novato" em alguma coisa não é desculpa aceite em lado nenhum. o teu primeiro erro é "juntar dois ficheiros", que é algo não normalmente não faz sentido. segundo, não respondeste à pergunta, pois não ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
hernani33 Posted December 7, 2016 at 11:23 AM Author Report Share #601075 Posted December 7, 2016 at 11:23 AM pois a resposta ha pergunta é, não sei. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 7, 2016 at 11:32 AM Report Share #601076 Posted December 7, 2016 at 11:32 AM (edited) mas não te faz diferença que para apresentar uma lista de artigos no HTML é necessário um ciclo e para escrever o email não se faz nada ? isto deverias ser tu: Edited December 7, 2016 at 11:43 AM by HappyHippyHippo make you think IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
hernani33 Posted December 7, 2016 at 11:43 AM Author Report Share #601077 Posted December 7, 2016 at 11:43 AM pois tens razao mas como eu nao tenho grandes conhecimentos nao me tinha apercebido disso. podes me ajudar?? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 7, 2016 at 11:52 AM Report Share #601078 Posted December 7, 2016 at 11:52 AM olha para o código que faz o HTML e faz exactamente o mesmo ... só que em vez de escrever para o output (echo) faz o texto que queres mandar par ao email IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
hernani33 Posted December 7, 2016 at 12:24 PM Author Report Share #601080 Posted December 7, 2016 at 12:24 PM tou perdido no codigo, será que podes por um exemplo? obrigado hernani Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now