1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

O que é que me está a falhar?

Discussão em 'Web Development' iniciada por The Lavigne, 2 de Julho de 2008. (Respostas: 5; Visualizações: 803)

  1. The Lavigne

    The Lavigne Banido

    O que é que me está a falhar?
    Quero fazer um select da tabela BD so com os registos que tiverem o campo categoria igual a computadores. Depois a listar esses mesmos.

    Tentei fazer mas está a dar erro. Mas se retirar a condição já não dá. Alguém me pode ajudar?

    PHP:
    <?php 
    include("admin/include/db_conn.php");
    liga();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>xxx</title>
    <link href="css/CSS.css" rel="stylesheet" type="text/css" />

    </head>

    <body>

    <table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td align="center" valign="middle"><table width="890" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
          <tr>
            <td width="191" height="562" rowspan="2" align="left" valign="top"><?php include("inc/barra_esq.php"); ?></td>
            <td width="10" rowspan="2" align="left" valign="top"><img src="stuff/pixel.jpg" width="10" height="1" /></td>
            <td width="483" rowspan="2" align="center" valign="top">
                <!--INICIO TOPO -->            
                <?php include("inc/topo.php"); ?>
                <!--FIM TOPO -->
                <!--INICIO MAIN -->

                 <table width="100%" border="0" align="left" cellpadding="5" cellspacing="0" class="margem_topo">
                   <tr>
                     <td align="left">Produtos</td>
                   </tr>
                   <tr>
                     <td align="left"><div class="margem_topo">
                         
                                 <?php

                                 
    if(!isset($_GET["local"])) {
                                    
                                     echo 
    '<table width="100%" border="0" cellpadding="2" cellspacing="5">
                           <tr>
                             <td align="left" valign="top"><table width="100%" border="0" cellpadding="3" cellspacing="3" class="tab_marg_5">'
    ;
                                     
                                     
    $sql="select * from artigo WHERE categoria = computadores";
                                     
    $resultado=mysql_query($sql);
                                     
    $num_rows mysql_num_rows($resultado);
                                     if(
    $num_rows == 0) {
                                         echo 
    "N&atilde;o tem nenhum resultado.";
                                     } else {

                                         if(
    $num_rows 10) {
                                             
    $tpag ceil($num_rows/1)-1;
                                         } else {
                                             
    $tpag 0;
                                         }

                                         
    $limit 10;
                                         
    $npag 0;
                                         if(isset(
    $_GET["pag"])) {
                                             
    $npag $_GET["pag"];
                                         }

                                         
    $salta $npag 10;
                                         
    $data_actual date("Y-m-d");
                                         
    $sql="select * from artigo ORDER BY id DESC LIMIT $salta , $limit";
                                         
    $resultado=mysql_query($sql);
                                         
    $ncor 1;

                                         while(
    $res mysql_fetch_array($resultado)){

                                             if (
    $ncor%2==0)
                                             
    $cor "#FFFFFF";
                                             else
                                             
    $cor "#87CEFA";

                                             
    $id $res["id"];

                                    
    ?>
                                 <tr class="lista">
                                   <td width="89%" bgcolor="<?php echo $cor ?>"><a href="computadores.php?local=4&amp;idn=<?php echo $id?>&amp;pag=<?php echo $npag?>"><?php echo $res["nome"]; ?> </a></div><div align=right><b>
                                    Preço:</b> € <?php echo $res["precu"]; ?></div></td>
                                 </tr>
                                 <?php $ncor++;  } ?>
                             </table></td>
                           </tr>
                           <tr>
                             <td align="center" valign="bottom"><?php if($npag != 0) { ?>
                                 <a href="computadores.php">«</a>&nbsp; <a href="computadores.php?pag=<?php echo ($npag-1); ?>">
                                &lt;</a>&nbsp;&nbsp;
                                 <?php 

        if(
    $npag != $tpag) { ?>
                                 <a href="computadores.php?pag=<?php echo ($npag+1); ?>">
                                &gt;</a>&nbsp; <a href="computadores.php?pag=<?php echo $tpag?>">
                                »</a>
                                 <?php ?>
                             </td>
                           </tr>
                         </table>
                         <?php 

                                     
    }

                                 } else {

                                     
    $idn $_GET["idn"];
                                     
    $pag $_GET["pag"];
                                     
    $sql="select * from artigo WHERE id = '$idn'";
                                     
    $resultado=mysql_query($sql);
                                     
    $res mysql_fetch_array($resultado);

                        
    ?>
                          <table width="100%" cellpadding="6" cellspacing="0" >
                              <tr>
                                <td align="left"><h4><?php echo $res["nome"]; ?></h4></td>
                            </tr>
                            <tr>
                                <td align="left"><b>ID ENCOMENDA:</b> <?php echo $res["id"]; ?></td>
                            </tr>

                            <tr>
                                <td align="center">
                                    <?php
                                    $imagem 
    $res["imagem1"];
                                    
    $pieces explode("//"$imagem);
                                    echo 
    '<img src="imagens/'.$pieces[0].'" width="'.$pieces[1].'" height="'.$pieces[2].'" />';
                                    
    ?>
                                </td>
                            </tr>
                            <tr>
                                <td align="left" ><strong>Categoria: </strong><i><?php echo $res["categoria"]; ?></i></td>
                            </tr>

                            <tr>
                                <td align="left"><?php echo $res["descr"]; ?></td>
                            </tr>
                                <?php
                                
    if($res["descr"] != "") {
                                
    ?>
                                                        <?php
                                
    }
                                if(
    $res["catgoria"] = "5") {
                                
    ?>
                            <tr>
                                <td align="left"><strong>Preço: € </strong><i><?php echo $res["precu"]; ?></i></td>
                            </tr>
                                <?php
                                
    }
                                
    ?>
                            <tr>
                                <td align="left" bgcolor="#87CEFA">&nbsp;</td>
                            </tr>
                            <tr>
                                <td align="right"><table width="200" border="0" cellspacing="3" cellpadding="3">
                            <tr>
                                  <td align="right" bgcolor="#87CEFA"><b><a href="computadores.php?pag=<?php echo $pag?>">
                                Voltar</a></b></td>
                            </tr>
                        </table>
                    </td>
                </tr>
        </table>
        <?php ?>
        </div>
                     </td></tr>
                 </table>
                 
                 </td>
      </div>
                    <!--FIM MAIN -->        </td>

            <td width="175" height="562" rowspan="2" align="left" valign="top"><?php include("inc/barra_dta.php"); ?></td>
                 </tr>
                  </table>
          <table width="890" cellpadding="0" cellspacing="0">
          <tr>
            <td width="44%" align="left" valign="top">&nbsp;</td>
            <td width="56%" align="right" valign="top">Desenvolvido por <i>Carlos 
            Pereira</i>&nbsp;</td>
          </tr>
        </table></td>
      </tr>
    </table>
    </table>

    </body>
    </html>
    <?php
    desliga
    ();
    ?>
     
    Última edição: 2 de Julho de 2008
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Usa a tag PHP!

    Importas-te de dizer o que queres dizer com "está a dar erro"? É um erro de sintaxe? Do PHP? Do MySQL?



    Já agora, esse código é passível de SQL Injection, por causa das linhas
    PHP:
                                     $idn $_GET["idn"];
                                     
    $pag $_GET["pag"];
                                     
    $sql="select * from artigo WHERE id = '$idn'";
    ;)
     
  3. The Lavigne

    The Lavigne Banido


    Já editei a tag!
    O erro é este: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xxx/public_html/computadores.php on line 45

    Não sei porque que ele não consegue obter resultados.
    Se eu retirar a condição já da... falta algumas aspas ou películas ?
     
  4. anjo2

    anjo2 Power Member

    PHP:
    $sql="select * from artigo WHERE categoria = computadores";
    $resultado=mysql_query($sql);
    $num_rows mysql_num_rows($resultado);
    if(
    $num_rows == 0) {
    Vês algo bem nisto? Ele vai comparar 2 tabelas e não o valor, tens que pôr por exemplo:
    PHP:
    $sql="select * from artigo WHERE categoria = 'computadores'";
    $resultado=mysql_query($sql);
    $num_rows = @mysql_num_rows($resultado);
    if(!
    $num_rows) {
     
  5. The Lavigne

    The Lavigne Banido


    Tipo se eu fizer isso "ele" lista-me os produtos todos como se não houve-se condição.

    A Categoria não é uma tabela mas sim um registo da tabela artigo e "computadores" é um valor do registo Categoria.

    Não sei mesmo porque não dá... :mad:
     
    Última edição: 2 de Julho de 2008
  6. MPalhas

    MPalhas Power Member

    precisamente por causa do que disse o anjo2. se computador é um valor e não um campo da tabela, tem que estar entre pelicas
     

Partilhar esta Página