Jump to content


Photo

Listagem Por Url


  • Faça o login para participar
10 replies to this topic

#1 willwalker

willwalker

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 05/08/2007, 00:30

Como que eu faço para que esse link www.site.com/index.php?data=01/08/2007 seja a principal fonte, para que o arquivo que eu tenho de listagem, buscasse a data 01/08/2007 e só listasse as linhas que tem essa data cadastrada ?

listar_fotos.php:
<?include "conect.php";$re = mysql_query("SELECT count(*) as total FROM fotos");$total = mysql_result($re, 0, "total");$pagina = 0;if(isset($_GET["pagina"])) {$pagina = $_GET["pagina"];}$limite = 1;$paginas = ceil($total / $limite);$inicio = $pagina * $limite; $sql = mysql_query("SELECT * FROM fotos LIMIT $inicio, $limite"); $conta = mysql_num_rows($sql);echo "<center>";if($pagina > 0) {$menos = $pagina - 1;$url = $_SERVER["PHP_SELF"]."?pagina=".$menos;echo "<a href=\"$url\">Anterior</a>"; }for($i = 1;$i < $paginas; $i++) { $url = $_SERVER["PHP_SELF"]."?pagina=".$i;echo " | <a href=\"$url\">$i</a>";}if($pagina < $paginas) {$mais = $pagina + 1;$url = $_SERVER["PHP_SELF"]."?pagina=".$mais;echo " | <a href=\"$url\">Próxima</a>";echo "</center>";}?><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Fotos</title><style type="text/css"><!--body,td,th {	font-size: 14px;	color: #000000;	font-weight: bold;}.style3 {	font-size: 14px;	color: #0099FF;}.style7 {	color: #0099FF;	font-weight: bold;	font-size: 9px;	font-family: Verdana;}body {	margin-left: 0px;	margin-top: 0px;	margin-right: 0px;	margin-bottom: 0px;}td div {color:#0099FF; padding:5px; width:261px; height:85px; overflow:auto; }a {	font-family: Verdana;	font-size: 11px;	color: #000000;	font-weight: bold;}a:link {	text-decoration: none;}a:visited {	text-decoration: none;	color: #000000;}a:hover {	text-decoration: none;	color: #999999;}a:active {	text-decoration: none;	color: #000000;}--></style></head><body><br><table width="310" border="0" align="left" cellpadding="0" cellspacing="0"><? include "layout_fotos.php" ?></table></body></html>

Obrigado abraços WILL (:]|)

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 05/08/2007, 08:36

http://www.w3schools...l/sql_where.asp
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 willwalker

willwalker

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 05/08/2007, 12:27

Opa, valeu por esse link, ajudou muito, agora entendi como fazer buscas pelo mysql. Agora falta a parte mais dificil. Fazer com que o final do link, seja reconhecido pelo php, para ele efetuar a busca, sem precisar por a data especificamente no código do php. Para fazer funcionar tive que por isso mysql_query("SELECT count(*) as total FROM fotos WHERE dia='06/08/2007' ORDER BY id DESC"); Funcionou perfeitamente, mas invez de eu ter que colocar aqui a data para ele buscar, eu queria que fosse feita a busca pela url que eu criar, por exemplo:

http://www.site.com/listar_fotos?data=06/08/2007

E por exemplo que essa data em negrito do link fosse lida pelo php como uma variável tipo $data

Para que eu possa fazer assim o select - mysql_query("SELECT count(*) as total FROM fotos WHERE dia='$data' ORDER BY id DESC");

Assim qaundo eu escrever http://www.site.com/listar_fotos?data=05/08/2007 ele só faz a busca no banco dessa data.

Muito dificil de fazer ?

Edit2:
Consgui fazer a listagem pelo link, tava errado uma simples coisa :D . Em vez de ser data tinha que ser dia, porque é o nome da célula que eu to buscando os dados. Mas agora surgiu um novo problema, essa listagem não está mais funcionando, podem ver nesse link - http://willwalker.no-ip.org:90/

código da listagem:

$re = mysql_query("SELECT count(*) as total FROM fotos WHERE dia='$data' ORDER BY id DESC");
$total = mysql_result($re, 0, "total");

$pagina = 0;
if(isset($_GET["pagina"])) {

$pagina = $_GET["pagina"];

}

$limite = 1;
$paginas = ceil($total / $limite);

$inicio = $pagina * $limite;

$sql = mysql_query("SELECT * FROM fotos WHERE dia='$data' ORDER BY id DESC LIMIT $inicio, $limite");

$conta = mysql_num_rows($sql);
echo "<center>";
if($pagina > 0) {
$menos = $pagina - 1;
$url = $_SERVER["PHP_SELF"]."?pagina=".$menos;
echo "<a href=\"$url\">Anterior</a>";
}
for($i = 1;$i < $paginas; $i++) {
$url = $_SERVER["PHP_SELF"]."?pagina=".$i;
echo " | <a href=\"$url\">$i</a>";
}
if($pagina < $paginas) {
$mais = $pagina + 1;
$url = $_SERVER["PHP_SELF"]."?pagina=".$mais;

echo " | <a href=\"$url\">Próxima</a>";
echo "</center>";
}

O erro ocorre porque ele imprime no link ?pagina=0, 1, 2 e assim por diante dependendo o número da pagina, preciso fazer com que ele faça a paginação mas não imprima isso no link, para poder continuar no link listar_fotos?dia=06/08/2007 sem isso ele não fará a listagem correta :D.

Obrigado, e muito bom esse link - http://www.w3schools...l/sql_where.asp

Edição feita por: willwalker, 05/08/2007, 12:30.


#4 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 05/08/2007, 16:57

Parte mais difícil???

Use o $_GET[].

EX:

$data = $_GET['data'];
//retorno: 05/08/2007 por ex.


Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#5 willwalker

willwalker

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 05/08/2007, 22:02

Aff, essa minha dúvida foi solucionada, eu sabia que era dessa forma, mas não tinha percebido que no link tambem tinha que ter o nome da célula de busca. É logico que teria que ser assim, mas passou despercebido. O problema agora é a paginação de resultados... Mas obrigado por postar.

#6 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 05/08/2007, 22:29

Bom não estudei seu código direito, mais pelo oque você quer isto resolve:
$url = substr($url, 0, -1);

Ponha antes de imprimir.

#7 willwalker

willwalker

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 06/08/2007, 08:20

Não deu certo, tá do mesmo jeito =]. Pode dar uma lida no código de paginação e ver o que pode ser feito ?

#8 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 06/08/2007, 10:42

Vê se resolve:
<?php
$total = mysql_num_rows(mysql_query("SELECT * FROM fotos WHERE dia='$data' ORDER BY id DESC"));

$pagina = 0;
if(isset($_GET["pagina"])) {

$pagina = $_GET["pagina"];

}

$limite = 1;
$paginas = ceil($total / $limite);

$inicio = $pagina * $limite; 

$sql = mysql_query("SELECT * FROM fotos WHERE dia='$data' ORDER BY id DESC LIMIT $inicio, $limite");

$conta = mysql_num_rows($sql);
echo "<center>";
if($pagina > 0) {
$menos = $pagina - 1;
$url = $_SERVER["PHP_SELF"]."?pagina=".$menos;
echo "<a href=\"$url\">Anterior</a>"; 
}
for($i = 1;$i < $paginas; $i++) { 
$url = $_SERVER["PHP_SELF"]."?pagina=".$i;
echo " | <a href=\"$url\">$i</a>";
}
if($pagina < $paginas) {
$url = $_SERVER["PHP_SELF"]."?pagina=".$pagina++;

echo " | <a href=\"$url\">Próxima</a>";
echo "</center>";
}
?>


#9 willwalker

willwalker

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 06/08/2007, 20:28

Você ainda não entendeu. A busca por data pela url funciona (http://willwalker.no-ip.org:90/listar_fotos.php?dia=05/08/2007), o que não funciona é a paginação, porque quando clico em um dos links, ele cria o link assim (http://willwalker.no-ip.org:90/listar_fotos.php?pagina=1) . O que eu quero é que ele faça a paginação dos resultados mas não modifique o link. Entendeu agora meu amigo ? Espero que possa me ajudar, é que nada que eu faço dá certo, só estraga o código. E muito obrigado por fazer todo esse esforço para poder entender e, ajudar a esclarecer a minha dúvida.

Abraços WILL

Edição feita por: willwalker, 06/08/2007, 20:30.


#10 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 06/08/2007, 21:06

Acho que entendi... na verdade você tem que adicionar a variavel $data nas urls, porque se não ele vai selecionar tudo, e não por data como devia....

Acho que dever se isso né?

#11 willwalker

willwalker

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 06/08/2007, 21:25

É isso mesmo, mas você tinah respondido tarde, eu acabei de entrar para dizer que tinha solucionado. O coisa besta, era só fazer assim nos links:

echo "<center>";
if($pagina > 0) {
$menos = $pagina - 1;
$url = $_SERVER["PHP_SELF"]."?dia=$data&pagina=".$menos;
echo "<a href=\"$url\">Anterior</a>";
}
for($i = 1;$i < $paginas; $i++) {
$url = $_SERVER["PHP_SELF"]."?dia=$data&pagina=".$i;
echo " | <a href=\"$url\">$i</a>";
}
if($pagina < $paginas) {
$mais = $pagina + 1;
$url = $_SERVER["PHP_SELF"]."?dia=$data&pagina=".$mais;

echo " | <a href=\"$url\">Próxima</a>";
echo "</center>";

ai a url fica assim:

http://www.site.com/...8/2007&pagina=1

Muito obrigado a todos que me ajudaram =]!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq