[RESOLVIDO] Listar personalizado PHP

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:
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.
 
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
 
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
 
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.
 
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
 
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 (:
 
Back
Topo