Jump to content


Photo

Como Fazer Uma Busca


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

#1 WallaceSKT

WallaceSKT

    Turista

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

Posted 14/11/2004, 11:55

Olá amigos,

Tô com um problema q não consigo resolver aqui. Seguinte:

- Tenho uma tabela de coberturas de eventos chamada "coberturas" com os seguintes campos (id_coberturas, imagem, evento, titulo, bandas, data, corpo, autor):

- Tenho o seguinte código para exibir os links (paginados) e o conteúdo:

  <?php  
    mysql_connect("localhost", "user", "senha") or die("ERRO DE CONEXÃO");
    mysql_select_db("db") or die("ERRO DE SELEÇÃO PARA O DB");
    $id  = $_GET['id'];
    $query	= "SELECT * FROM coberturas WHERE id_coberturas='$id'";
    $sql	= mysql_query($query)or die("Erro na query");
    global $imagem, $evento, $titulo, $bandas, $data, $corpo, $autor, $id_coberturas;
    while($dados = mysql_fetch_array($sql))
    {
     $imagem 	 = $dados['imagem'];
     $evento    = $dados['evento'];
     $titulo 	 = $dados['titulo'];
     $bandas   	 = $dados['bandas'];
     $data      = $dados['data'];
     $corpo 	 = $dados['corpo'];
     $autor   	 = $dados['autor'];
     $id_coberturas	= $dados['id_coberturas'];
    }
 	 
    if(isset($_GET['id']))
   	 {
 	 echo "<center><img src=\"paginas/coberturas/imagens/$imagem.gif\" alt=\"\" name=\"\" width=\"\" height=\"\" border=\"1\"><br><br></center>";
 	 echo "<b>$evento - $titulo - $data<br>$bandas</b><br>";
   	 }
    ?>
    </td>
        </tr>
  <tr> 
          <td colspan="2">
    <?php  
   	 if(isset($_GET['id']))
   	 {
 	 echo "Por $autor<br><br>";
 	 }
    ?>
    </td>
        </tr>
  <tr> 
          <td colspan="2">
    <?php  
   	 if(isset($_GET['id']))
   	 {
 	 echo "$corpo<br><br>";
 	 }
    ?>
    </td>
        </tr>
  <tr> 
          <td colspan="2">
    <?php  
   	 if(isset($_GET['id']))
   	 {
 	 echo "<center><a href=\"javascript:window.history.go(-1);\" class=\"links\">Voltar</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:window.print();\" class=\"links\">Imprima esta página</a></center>";
 	 }else{
    $link_p_pag = 4;
    $reg_p_pag = 10;
    $pag = $_GET['pag'];

    $busca = mysql_query("SELECT count(*) FROM coberturas;");
    $registros = mysql_result($busca,0); 

   	 // echo "Número de registros: ";
   	 // echo $registros;
   	 // echo "<br>";
	
    $num_total_paginas = ($registros%$reg_p_pag==0)?$registros/$reg_p_pag:floor($registros/$reg_p_pag)+1;

   	 // echo "Número de páginas: ";
   	 // echo $num_total_paginas;
   	 // echo "<br>";

   	 // echo "Links por página: ";
   	 // echo $link_p_pag;
   	 // echo "<br>";

   	 // echo "Registros por páginas: ";
   	 // echo $reg_p_pag;
   	 // echo "<br>";
   	 // echo "<hr color='#000000' size='1' noshade>";

    if ($pag>$num_total_paginas)
   	 echo "Error<br><br>";
    else

    if (!$pag)
    $pag  = 1;

    $inicio = ($reg_p_pag*$pag)-$reg_p_pag;
   	 // echo "Inicia em: $inicio<br><br>";

    $query  = "SELECT * FROM coberturas ORDER BY id_coberturas DESC LIMIT $inicio, $reg_p_pag";
    $result = @mysql_query($query);

    $link  = $_SERVER['PHP_SELF']."?id=";
    while ($row = mysql_fetch_assoc($result))
    {
      $evento    = $row['evento'];
   	 $titulo 	 = $row['titulo'];
   	 $bandas   	 = $row['bandas'];
   	 $data   	 = $row['data'];
   	 $id_coberturas  = $row["id_coberturas"];

     	 // imprime os links das Coberturas 
     	 echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
        <tr> 
          <td class=\"fonte\"><a href=$link$id_coberturas class=links>$evento - $titulo - $bandas - $data</a><br><br></td>
        </tr>
          <tr>
            <td height=\"12\"></td>
          </tr>"; //fim do echo
    } // fim do while

    echo "<tr><td><hr color='#000000' size='1' noshade><br></td></tr>";

    $anterior = $pag-1;
    if ($anterior<1)
   	 echo "<tr><td class=\"fonte\" align=\"center\">Anterior | ";
    else
   	 echo "<tr><td class=\"fonte\" align=\"center\"><a href=\"{$_SERVER['PHP_SELF']}?pag=$anterior\" class=\"links\">Anterior</a> | ";

    for($i=1; $i<$pag; $i++)
    if($i>=$pag-$link_p_pag)
   	 echo "<a href=\"{$_SERVER['PHP_SELF']}?pag=$i\" class=\"links\">$i</a> | ";

   	 echo "<b>$pag</b>";

    for($i=$pag+1; $i<=$num_total_paginas; $i++)
    if($i<=$pag+$link_p_pag)
   	 echo " | <a href=\"{$_SERVER['PHP_SELF']}?pag=$i\" class=\"links\">$i</a>";

    $proxima = $pag+1;
    if ($proxima>$num_total_paginas)
   	 echo " | Próxima</td></tr></table>";
    else
   	 echo " | <a href=\"{$_SERVER['PHP_SELF']}?pag=$proxima\" class=\"links\">Próxima</a></td></tr></table>";
 	 }
    ?>

- Preciso de um sistema de busca por atrações (campo "bandas") nesse código, onde liste os resultados como links para o conteúdo da cobertura (Ex: "<a href=$link$id_coberturas class=links>$evento - $titulo - $bandas - $data</a><br><br>") . Já tentei de todo jeito q sei e num deu certo. Alguém que tenha mais conhecimento pode me ajudar?

Agradeço demais a ajuda!!!

Edição feita por: WallaceSKT, 14/11/2004, 12:29.


#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 14/11/2004, 12:34

Aqui o arquivo da busca
PHP
<?php

$atracao
= "OficinaG3";

$Cons = mysql_query("SELECT * FROM tabela WHERE bandas='$atracao'");
while(
$x=mysql_fetch_array($Cons)){

echo
'<a href="ver.php?id='.$x['id_coberturas'].'">'.$x['evento'].' - '.$x['titulo'].' - '.$x['bandas'].' - '.$x['data'].'<br />';

}

?>


Arquivo ver.php

PHP
<?php

$id
= $_GET['id'];

$Cons = mysql_query("SELECT * FROM tabela WHERE id_coberturas='$id'");
//Aqui vai exibir as informações....

?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 WallaceSKT

WallaceSKT

    Turista

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

Posted 14/11/2004, 17:17

E como ficaria a paginação que tem nesse código?

#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 14/11/2004, 20:51

PHP
<?

$s
= mysql_query("SELECT * FROM tabela WHERE bandas='$atracao'");

$total = mysql_num_rows($s);
$lpp = 10;
if(!isset(
$pagina)) { $pagina = 1; }
$rpag = $pagina - 1;
$paginas = ceil($total / $lpp);
$inicio = $rpag * $lpp;

$atracao = "OficinaG3";

$Cons = mysql_query("SELECT * FROM tabela WHERE bandas='$atracao' LIMIT $inicio,$lpp");
while(
$x=mysql_fetch_array($Cons)){

echo
'<a href="ver.php?id='.$x['id_coberturas'].'">'.$x['evento'].' - '.$x['titulo'].' - '.$x['bandas'].' - '.$x['data'].'<br />';

}

if(
$pagina > 1) {
 
$menos = $pagina - 1;
 
$url = "$PHP_SELF?pagina=$menos";
 echo
"<a href=$url>Anterior</a>"; // Vai para a página anterior
}
for(
$i=1;$i<$paginas;$i++) { // Gera um loop com o link para as páginas
 
$url = "$PHP_SELF?pagina=$i";
 echo
" | <a href=$url>$i</a>";
}
if(
$pagina < ($paginas - 2)) {
 
$mais = $pagina + 1;
 
$url = "$PHP_SELF?pagina=$mais";
 echo
" | <a href=$url>Próxima</a>";
}

?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#5 WallaceSKT

WallaceSKT

    Turista

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

Posted 15/11/2004, 01:53

Obrigado Amigo,

Já tava doidim aqui.

Valeu!!!




1 user(s) are reading this topic

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

IPB Skin By Virteq