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

[RESOLVIDO] Listar personalizado PHP

Discussão em 'Web Development' iniciada por Ramaty, 25 de Fevereiro de 2013. (Respostas: 8; Visualizações: 665)

  1. Ramaty

    Ramaty Suspenso

    Boas pessoal,

    eu estou a fazer a minha PAP (projecto de aptidão profissional), que o objectivo que nos foi dado é a criação de um site com acesso a base de dados, eu resolvi fazer um stand online, já faz as encomendas, e toda a parte administrativa que o site pede, agora para "aperfeiçoar" o projecto gostava de organizar melhor os produtos.
    Por exemplo fazem uma pesquisa por audi no site e ele lista todos os audi's que o stand tem, mas se tiver 50 audi's a página fica enorme, eu queria que ele dividisse por exemplo as informações em 5 "páginas" ficando 10 por cada e sempre que fosse adicionando produtos ele ia criando páginas.

    Existe alguma maneira de fazer isso sem ser a criar páginas e fazer listar x numero de produtos?
    Caso tenham alguma ideia para o site mandem, que tudo o que melhorar o meu projecto terei gosto em fazer (:

    (estou a usar PHP, HTML, CSS e Java Script, quanto aos programas uso o dreamwever, notepad ++, xampp (phpMyadmin))

    Cumprimentos
     
    Última edição: 27 de Fevereiro de 2013
  2. Cfreitas

    Cfreitas Power Member

    Que te deram?! Não é suposto seres tu a escolher?
     
  3. Ramaty

    Ramaty Suspenso

    pelo menos na minha escola não, sai todos os anos um projecto para a pap e pelo que sei tem sido sempre o mesmo na minha escola ... o que também é um problema pois vai andar tudo a volta do mesmo, o que pode não ajudar muito nas notas, por isso eu estou a tentar criar uma serie de pequenas coisas para o site que no fim façam a diferença.
     
  4. Cfreitas

    Cfreitas Power Member

    Não querendo armar-me em rambo eu falava com o teu professor.
    Como podes ver aqui no forum é o pessoal que escolhe o tema, precisamente, para promover a diferença. A meu ver não faz sentido nenhum.
    Mas se te sentes bem a fazer sobre esse tema:

    Quanto a guardas as imagens tens várias maneiras eu conheço duas:
    Podes guardar as imagens directamente na BD mas isso, penso eu, implica alguns addons. (Tudo o que li aponta para que isto seja má prática em termos de manutenção de BD).
    Podes guardar na BD um caminho para uma pasta com essa imagem que é bastante mais simples e é o costumo fazer (não sei se é errado sobre algum ponto de vista).
    Quanto a listagem... vou pensar melhor nisso e se tiver ideias digo-te xD
     
  5. Ramaty

    Ramaty Suspenso

    epah falar com o professor já se falou mais que uma vez, mas é como falar para uma parede é "eu quero eu posso eu mando" e mais nada, só nos falta cantar o Grândola Vila Morena xD
    as imagens eu já fazia assim usando a bd para ir buscar o caminho da imagem :)
    fico a espera dessas ideias (:
    obrigado
     
  6. barricas

    barricas Power Member

    para a listagem tens que usar o limit.

    Por exemplo na 1ª página acabas a query com LIMIT 0,10

    Para definir o que mostras conforme o nº da página fazes:

    min: items por página x nº página - 1
    máx: items por página x nº página + items por página

    Para a página 2, com 5 items por página
    min: 5 x 2 - 1 = 9
    máx: 5 x 2 + 5 = 15

    no fim da query fica LIMIT min, max ou seja LIMIT 9, 15

    Se não estou em erro mostra as rows 10 a 15.

    Para veres o nº total de páginas tens de ver quantos registos há na BD. Podes fazer SELECT COUNT(id) FROM tabela e divides o valor que dá pelos items por página.

    Ex:

    50 registos / 5 items por página = 10 páginas

    Depois não sei se para seleccionares a página tens um dropdown ou estilo como zwame.

    Tanto uma como a outra resolve-se com um for loop:

    for($i = 1; $i <= nº páginas obtido anteriormente; $i++) {
    echo 'link para pagina, sendo o nº da página = ao $i';
    }

    Acho que não me enganei em nada... foi assim pensado muito rapidamente.
     
  7. Ramaty

    Ramaty Suspenso

    bem, bom raciocínio que ai metes-te, vou testa-lo (:
     
    Última edição: 26 de Fevereiro de 2013
  8. Cfreitas

    Cfreitas Power Member

    O Barricas vem sempre ao auxilio do pessoal =)
    Já me ajudou mil vezes!

    Essa do limit não me lembrei. Lembrei-me de usar o limit mas não com os dois argumentos. bem metida =D
     
  9. Ramaty

    Ramaty Suspenso

    ora esta testado e aprovado :D
    fica aqui o código caso de para ajudar alguém (:

    <?php
    $db = mysql_connect("localhost","root","");
    $bd = mysql_select_db("automotores");
    $pg = $_GET['pg'];
    if(isset($pg)){
    $pg = $pg;
    }else{
    $pg = 1;
    }

    $quantidade = 5;


    $inicio = ($pg*$quantidade) - $quantidade;


    $sql = mysql_query("SELECT * FROM produtos ORDER BY marca LIMIT $inicio, $quantidade");
    while($linha = mysql_fetch_array($sql)){
    $marca = $linha['marca'];

    echo "$marca<br>";
    }


    $sql_2 = mysql_query("SELECT * FROM produtos");
    $total_registros = mysql_num_rows($sql_2);


    $paginas = ceil($total_registros/$quantidade);
    $links = 1;


    echo "<a href='listarcarros.php?pg=1'>primeira p&aacute;gina </a>&nbsp;&nbsp;";


    for($i = $pg-$links; $i <= $pg-1; $i++){
    if($i<=0){
    }else{
    echo "&nbsp;&nbsp;<a href='listarcarros.php?pg=".$i."'>".$i."</a>&nbsp;&nbsp;";
    }
    }

    echo "<a href=#>$pg</a>";

    for($i = $pg+1; $i <= $pg+$links; $i++){
    if($i>$paginas){
    }else{
    echo "&nbsp;&nbsp;<a href='listarcarros.php?pg=".$i."'>".$i."</a>&nbsp;&nbsp;";
    }
    }


    echo "&nbsp;&nbsp;<a href='listarcarros.php?pg=".$paginas."'>ultima página </a>&nbsp;&nbsp;";


    ?>


    Muito obrigado aos dois (:
     

Partilhar esta Página