Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

o que estou fazendo errado?

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Duvida o que estou fazendo errado?

    <div id="colEsquerda">
    <?php
    $query = "SELECT * FROM 'noticias' ORDER BY data ASC TOP 3 ";
    $sql = mysql_query($query);
    $linhas = mysql_fetch_row($sql);
    $array = mysql_fetch_array($sql);
    ?>
    <table>
    <?php if($linhas > 3 ){ while ($array){ ?>
    <tr>
    <td><?php echo $array['imagem']?></td>
    <td><?php echo $array['titulo']?></td>
    <td><?php echo $array['descricao']?></td>
    </tr>
    <?php }} ?>
    </table>
    </div><!--Fim div COLESQUERDA-->

  • Font Size
    #2
    Olá amigo
    desta forma deve funcionar

    Código PHP:
    <div id="colEsquerda">
    <?php
    $query 
    "SELECT * FROM 'noticias' ORDER BY data ASC LIMIT 3 ";
    $sql mysql_query($query);
    ?>
    <table>
    <?php
    while ($resultado mysql_fetch_assoc($sql)){ ?>
    <tr>
    <td><?php echo $resultado['imagem']?></td>
    <td><?php echo $resultado['titulo']?></td>
    <td><?php echo $resultado['descricao']?></td>
    </tr>
    <?php 
    }
     
    ?>
    </table>
    </div><!--Fim div COLESQUERDA-->
    removi alguns códigos que achei desnecessários ,mas caso queira voltar tudo deve funcionar.

    O erro que encontrei foi no comando TOP que você deve ter incorporado de outro banco de dados, no caso substitui por LIMIT e tudo deve funcionar corretamente.

    Outra recomendação não use variáveis com nomes de estrutura de linguagem como array , isso dificulta um pouco na hora de fazer um código muito grande digo isso como opinião, caso sentir a vontade ignore a mesma.
    caso queira inserir o if que retirei pode fazer da seguinte forma

    Código PHP:
    <div id="colEsquerda">
    <?php
    $query 
    "SELECT * FROM 'noticias' ORDER BY data ASC LIMIT 3 ";
    $sql mysql_query($query);
    ?>
    <table>
    <?php
    if(mysql_fetch_assoc($sql) > 0){
    while (
    $resultado mysql_fetch_assoc($sql)){ ?>
    <tr>
    <td><?php echo $resultado['imagem']?></td>
    <td><?php echo $resultado['titulo']?></td>
    <td><?php echo $resultado['descricao']?></td>
    </tr>
    <?php 
    }// fim while
    }// fim if
     
    ?>
    </table>
    </div><!--Fim div COLESQUERDA-->

    Isso deve bastar.

    Comment


    • Font Size
      #3
      O primeiro código do amigo acima não vai funcionar por envolver o nome de uma tabela em aspas simples.
      Falta também a conexão ao banco de dados,que imagino que você deve ter feito mais acima.
      Arrumando isso vai funcionar perfeitamente.
      No segundo código o if adicionado é desnecessário e deve ser considerado como errado.
      Pelo seu código dá pra perceber que tá dando um passo maior que a perna,estuda MAIS o básico primeiro.

      Comment


      • Font Size
        #4
        Um verdade possivelmente ira dar erro , pois está com aspas , só substituir por apostrofe.

        A conexão é por padrão é assumido que já está funcionando , já que a dúvida se refere a está parte do código.

        Sobre os if é simplesmente , para poder exibir uma mensagem em um else como
        Sem Noticias , ou algo do gênero. Claro isso ira consumir um pouco mais de recurso do banco de dados , já que verifica se retornou resultados.
        De qualquer forma , esta parte do código eu somente coloquei em razão de estar no código original.

        Se formos ver o que é considerado errado na programação teria que ser reescrito todo o php.
        Ahh é mesmo o facebook já fez isso.

        Em defesa do if eu parto da idéia de que não se tratando de um site como Facebook, ou um grande portal semelhante deve se preocupar mais com segurança, e visibilidade do que com desempenho.
        Mais vale um IF a mais na no código do site deixando o limpo , do que dois fatal error na tela.

        Desculpe se me estendi , mas vi um palestra que teve onde uns caras mostravam os erros do Wordpress, e o criticavam ... isso para mim não importa se tem erro, eles foram quem criarão , e todo mundo acha ótimo, não vai ser uns 2 palestrantes que mal fazem seus sistemas , que vão me converçer a não usar o Wordpress.

        Comment


        • Font Size
          #5
          Obrigado por ajudar a quem necessita de ajuda. Estou vendo com bons olhos novos programadores para receber as tags, aqui no Fórum ! xD
          "Sou a única certeza que vocês terão em toda a VIDA de vocês, eu tardo mais não falho !!! Tenho a certeza que algum dia irei visitar todos vocês"



          Comment


          • Font Size
            #6
            Acabei de reaprender e aprender mais um pouco.

            As diferenças são pequenas no uso da mysql_fetch_array() e mysql_fetch_row().

            mysql_fetch_row (use indices com numeros no array retornado):

            Código PHP:
            <div id="colEsquerda">
            <?php
            $query 
            "SELECT * FROM noticias ORDER BY data"#ASC TOP 3 ";

            # executou a query, entao ja temos todos os dados dentro de $sql
            $sql mysql_query($query);

            #  -> array mysql_fetch_row ( resource $result )
            #  -> Retorna uma array numérica de strings que corresponde linha obtida, ou FALSE se não houverem mais linhas. 
            ?>
            <table>
            <?php while($linhas mysql_fetch_row($sql))
                      { 
            ?>
            <tr>
            <td><?php echo $linhas['0']?></td>
            <td><?php echo $linhas['1']?></td>
            <td><?php echo $linhas['2']?></td>
            </tr>
            <?php }?>
            </table>
            </div><!--Fim div COLESQUERDA-->


            mysql_fetch_array
            (use indices com o nome dos campos ou entao numeros mesmo, no array retornado):

            Código PHP:
            <div id="colEsquerda">
            <?php
            $query 
            "SELECT * FROM noticias ORDER BY data"#ASC TOP 3 ";

            # executou a query, entao ja temos todos os dados dentro de $sql
            $sql mysql_query($query);

            #    array mysql_fetch_array ( resource $result [, int $result_type ] )
            #    result
            #    O resultado resource que esta sendo avaliado. Este resultado vem de uma chamada a mysql_query().
            #  
            #   result_type
            #   O tipo de array que deve ser obtida. é uma constante e pode ter os seguintes valores: MYSQL_ASSOC, MYSQL_NUM, e o valor padrão de MYSQL_BOTH.
            #
            #   mysql_fetch_array -> Obtém uma linha como uma matriz associativa, uma matriz numérica, ou ambas
            #
            ?>
            <table>
            <?php while($linhas mysql_fetch_array($sql))
                      { 
            ?>
            <tr>
            <td><?php echo $linhas['imagem']?></td>
            <td><?php echo $linhas['titulo']?></td>
            <td><?php echo $linhas['descricao']?></td>
            </tr>
            <?php }?>
            </table>
            </div><!--Fim div COLESQUERDA-->

            Manual mysql_fetch_array: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
            Manual mysql_fetch_row: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...



            Espero ter ajudado!
            Email: insurgente.contato"at"hotmail"."com
            Twitter: @1nsurgente

            Conhecimento é Poder

            Comment


            • Font Size
              #7
              Olá, agradeço a ajuda de todos.

              Eu ja havia acertado mas sem problema tamo junto

              Obrigado a todos.

              Comment


              • Font Size
                #8
                resolvido dessa forma.

                Eu resolvi dessa forma...

                Código PHP:
                <?php                    
                                            $query 
                "SELECT * FROM noticias ORDER BY data ASC";
                                            
                $sql mysql_query($query);
                                            
                                            
                $linha mysql_num_rows($sql);
                                        
                ?>
                                        <table width="100%">
                                            <?php for($i1$i <= $linha$i++ ): ?>
                                            <?php while($array mysql_fetch_array($sql)) :?>
                                            <tr>
                                                <td class="foto_noticia"><?php echo $array['imagem'];?></td>
                                                <td><p class="titulo_noticia"><?php echo $array['titulo'];?></p></td>
                                            </tr>
                                            <tr>
                                                <td><p>&nbsp;</p></td>
                                                <td><p class="texto"><?php echo $array['descricao'];?></p></td>
                                            </tr>
                                            <tr>
                                                <td class="tdlink">
                                                    <p class="link_noticia"><a href="lernoticia.php?noticia=<?php echo $array['id'];?>">Leia Mais...</a></p>
                                                </td>                                
                                            </tr>
                                            <?php endwhile ;?>
                                            <?php endfor; ?>
                                        </table>

                Comment

                X
                Working...
                X