← Desenvolvimento

PHP-Como retirar a linha X de uma tabela mysql?

Lida 2723 vezes

Offline

Spread 
Membro
Mensagens 1433 Gostos 2
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Boas pessoal

Tou aqui com uma grande dificuldade! Estou a criar um sistema que dá 5 resultados de uma tabela mysql de cada vez. A minha dificuldade é que ao clicar no seguinte eu não sei como indicar ao programa para ao invés de agarrar a linha 1 agarre a 6 (ou qualquer outra definida em www.xxxxxxxxxxx.php?pag=X). O sistema é igual ao usado em http://joomlapt.com/ (no fundo da página) ou em qualquer outro site com noticias/conteúdos dinâmicos.

Se alguém me conseguir ajudar agradecia :D

Cumps 8)

Ps-O sistema de uma tabela com id e autoincrment está fora de questão pois os dados podem ser apagados.
Offline

Nazgulled 
Membro
Mensagens 552 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

acho este post um bocado confuso e não estou a perceber bem qual o problema... explica melhor e mostra o codigo que já tens assim como a instrução sql que estas a usar para sacar os 5 resultados da bd.
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Citação de: "Nazgulled"
acho este post um bocado confuso e não estou a perceber bem qual o problema... explica melhor e mostra o codigo que já tens assim como a instrução sql que estas a usar para sacar os 5 resultados da bd.

Acho que ele esta a falar em "paginação"...

@Spread
Tens aqui este script!
Offline

Nazgulled 
Membro
Mensagens 552 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

ya, eu entendi isso, ms fiquei sem perceber se o problema dele era no php ou em mysql...
Offline

Spread 
Membro
Mensagens 1433 Gostos 2
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

O meu problema é no php:
Código: [Seleccione]
include("db.php");
        $result = mysql_query("SELECT * FROM wl ORDER BY id DESC",$connect);

$total = mysql_num_rows($result);
if (($pagina <= 0) || ($pagina >= $total))  //Verifica se foi colocado no browser algo. Se faltar pagina devolve erro.
{
echo "ERRO: Não foram fornecidos dados suficientes<br>" ;
}else{

$paginafinal = $pagina + 5 ;
$pagina1 = $pagina ;

while ($pagina1 <> $paginafinal){
$pagina1= $pagina1 + 1;
while($myrow = mysql_fetch_assoc($result)){

?>
<br>Titulo: <? echo $myrow['titulo']; ?><br>
Link: <? echo $myrow['link']; ?><br>
Por: <? echo $myrow['por']; ?> @ <? echo $myrow['data']; ?><br>
Descri�o: <? echo $myrow['descricao']; ?><br>
<? echo $myrow['aprovado']; ?><? echo $myrow['dataa'];

}
          }


if ($pagina < 5) { //Para desactivar o link de anterior
echo "<br><< Anterior | ";
}else{
echo "<br><a href=\"wl.php?pagina=".($pagina - 5)."\"><< <b>Anterior</b></a> | ";
}

if (($pagina <= $total) || ($pagina >= $total + 5)) { //Verifica e desactiva o próximo se necessário
echo "| Seguinte >>";
}else{
echo "| <a href=\"wl.php?pagina=".($pagina + 5)."\"><b>Seguinte</b> >></a>";
}

}
mysql_close();

O que este código faz é mostar 5 resultados se existirem e mostra o seguinte e o anterior (se existir) no entanto começa sempre do mesmo sitio (ou seja se clicar no seguinte ou no anterior de nada serve), e é isso que quero alterar e não sei como. Tive a vasculhar no php.net mas não encontrei nenhuma instrução que vá buscar uma linha em particular.

Espero que me percebam melhor.

Cumps 8)
Offline

Bruno Mota 
Membro
Mensagens 1733 Gostos 3
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

tipo podes sempre fazer tipo
Limitar de 0,5
e depois para as proximas paginas podes sempre fazer com um ".$_GET['paginacao']."
Offline

helt 
Membro
Mensagens 111 Gostos 0
Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Não estou a ver como é que isso vai alguma vez fazer o que queres spread... Para limitares os resultados a serem extraidos da bd tens de o limitar no query.
Fazes (SELECT * FROM tabela ORDER BY campo LIMIT $de,$quantos), em que $de é a partir de onde começarão a ser extraídos os resultados e $quantos é o numero de resultados que serão extraídos.
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Offline

Spread 
Membro
Mensagens 1433 Gostos 2
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

helt e kingless obrigado :D
helt, era mesmo isso que me faltava, agora só preciso de ajustar o código pois o algoritmo que estava a usar tem uns quantos erros :P

Quando tiver tudo ok dou um feedback.

Cumps 8)