Jump to content


Photo

[Problema] Sistema De Busca


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

#1 V4g_Br4Ck3r

V4g_Br4Ck3r

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino

Posted 09/06/2010, 01:40

Ola Galera, é tarde, to cansado e no momento stressado! =X
Estou fazendo algum erro estupido e não estou conseguindo arrumar! =\

É uma implementação de um sistema de busca, e quando foi feito o site, foram criadas 2 tabelas, então tenho que achar as coisas na 1ª e depois puxar os dados corretos da 2ª...

Ta ae o Código:

<?
header('Content-Type: text/html; charset=utf-8');
$busca = $_POST['palavra_buscar'];
$busca = str_replace("'", "_", $busca);
$busca = str_replace("-", "_", $busca);

$sql = mysql_query("SELECT * FROM tabela_um WHERE nome like'%$busca%'");

while($linha = mysql_fetch_array($sql)){

	$id_normal = $linha['id'];
	$nome_normal = $linha['nome'];
	$local = $linha['local'];
        $data_realizacao = $linha['data_realizacao'];

$sqll = mysql_query("SELECT * FROM tabela_dois where id = '$id_normal'");
while($linha2 = mysql_fetch_array($sqll))

$thumbs = $linha2['thumb'];

//** Cagada deve estar por aqui... com as {}  **/

echo 'THUMB: "'.$thumbs.'" - Elaia '; /** Fiz para testar esse echo... Mas aqui já não roda  **/
	?>

 <div class="eventos">
 <tr><td width="100%">
 <div class="blogs">
<? echo '<a href="#" onClick="abrir(\'galeria/index.php?evento='.$nome_normal.'&data='.$data_realizacao.'&id='.$id.'\', \'690\',\'465\');">';?>
<img src="../agenda/<? echo $id_normal; ?>/thumb/<? echo $thumbs; ?>" style="border:1px dashed #ffa215; ">
 </td><td valign="top">
 <h3>
<? echo $nome_normal; ?>
 </h3><br />


Data: <i><? $data_realizacao; ?></i>  <br />
Local: <i><? echo $local; ?></i></a> <br><br />
<br />

</td></tr>
<div class="clear"></div>
</div>
</div>
</table>    
	<?
	
	
	}



?>

Desde já agradeço a Alma que vai ajudar!

Abraço''

#2 Salsero

Salsero

    Normal

  • Usuários
  • 60 posts
  • Sexo:Masculino
  • Localidade:Salvador
  • Interesses:PHP e Banco de Dados

Posted 09/06/2010, 07:58

Man dei uma corrigida no seu codigo, mas fiquei em duvida na linha
<? echo "<a href=\"#\" onclick=\"abrir('galeria/index.php?evento=$nome_normal&data=$data_realizacao&id=$id', '690','465');'>";?>
quem eh ID ñ ta sendo declarado e o seu primeiro select esta funcionando?

<?
header('Content-Type: text/html; charset=utf-8');
$busca = $_POST['palavra_buscar'];
$busca = str_replace("'", "_", $busca);
$busca = str_replace("-", "_", $busca);

$sql = mysql_query("SELECT * FROM tabela_um WHERE nome like'%$busca%'");

while($linha = mysql_fetch_array($sql)){

$id_normal = $linha['id'];
$nome_normal = $linha['nome'];
$local = $linha['local'];
$data_realizacao = $linha['data_realizacao'];

$sqll = mysql_query("SELECT * FROM tabela_dois where id = '$id_normal'");
$linha2 = mysql_fetch_array($sqll)

$thumbs = $linha2['thumb'];

//** Cagada deve estar por aqui... com as {} **/

echo "THUMB: ".$thumbs." - Elaia "; /** Fiz para testar esse echo... Mas aqui já não roda **/
?>

<div class="eventos">
<tr><td width="100%">
<div class="blogs">
<? echo "<a href=\"#\" onclick=\"abrir('galeria/index.php?evento=$nome_normal&data=$data_realizacao&id=$id', '690','465');'>";?>
<img src="../agenda/<? echo $id_normal; ?>/thumb/<? echo $thumbs; ?>" style="border:1px dashed #ffa215; ">
</td><td valign="top">
<h3>
<? echo $nome_normal; ?>
</h3><br />


Data: <i><? $data_realizacao; ?></i> <br />
Local: <i><? echo $local; ?></i></a> <br><br />
<br />

</td></tr>
<div class="clear"></div>
</div>
</div>
</table>
<?


}
?>


Vagner Fonseca
Programador PHP e BD
Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#3 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 09/06/2010, 11:20

Eu só não entendi qual é o erro? E nem qual a dúvida?
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#4 V4g_Br4Ck3r

V4g_Br4Ck3r

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino

Posted 09/06/2010, 23:46

Então... Como falei no comentario!
Estou fazendo algum erro com as {} dos while! /** Acho **/

Aqui tem o Código completo...
Vou fazer comentarios e depois explico melhor o problema...

<script language="javascript">
 function abrir(pagina, largura, altura) {
   // Definindo meio da tela
   var esquerda = (screen.width - largura)/2;
   var topo = (screen.height - altura)/2;

   // Abre a nova janela
   window.open(pagina,'','height=' + altura + ', width=' + largura + ', top=' + topo + ', left=' + esquerda);
 }
</script>
<?
header('Content-Type: text/html; charset=utf-8');

$busca = $_POST['palavra_buscar']; /** Essa é a palavra que o usuario esta procurando... **/

$busca = str_replace("'", "_", $busca);
$busca = str_replace("-", "_", $busca);

/** Como falei, os dados estão em duas tabelas, primeiro tenho que pegar da primeira, e depois os dados da segunda, tendo como referencia os dados da primeira... **/

$sql = mysql_query("SELECT * FROM tb_agenda WHERE nome like'%$busca%'"); /** Aqui puxa da primeira **/

while($linha = mysql_fetch_array($sql)){
/** E cria as variaveis conforme o DB **/

	$id_normal = $linha['id'];
	$nome_normal = $linha['nome'];
	$local = $linha['local'];
        $data_realizacao = $linha['dtrealiza'];

/** Se aqui eu der um 'echo $local ;' aparece certinho como deve aparecer **/

/** Mas aqui, quando é para puxar da segunda não esta dando certo =X **/

$sqll = mysql_query("SELECT * FROM tb_agenda_foto where id = '$id_normal'");

while($linha2 = mysql_fetch_array($sqll)) /** Conforme arrumo as {} aqui o loop do sistema de busca ou não funciona, ou pega somente 1 resultado =Z **/
	
$thumbs = $linha2['thumb'];


echo 'THUMB: "'.$thumbs.'" - teste... '; /** Esse echo não funciona <-- PROBLEMA **/

	?>

Aqui é o que mostra os resultados mesmo, la no link se parecer meio estranho é por causa dos JavaScript, mas ali ta trq...  

 <div class="eventos">
 <tr><td width="100%">
 <div class="blogs">
<? echo '<a href="#" onClick="abrir(\'galeria/index.php?evento='.$nome_normal.'&data='.$data_realizacao.'&id='.$id_normal.'\', \'690\',\'465\');">';?>
<img src="../agenda/19/thumb/348_9.jpg" style="border:1px dashed #ffa215; ">
 </td><td valign="top">
 <h3>
<? echo $nome_normal; ?>
 </h3><br />


Data: <i><? $data_realizacao; ?></i>  <br />
Local: <i><? echo $local; ?></i></a> <br><br />
<br />

</td></tr>
<div class="clear"></div>
</div>
</div>
</table>    
	<?
	
	
}


?>

La no primeiro post tinha a $id que nao tinha, mas era a $id_normal, tinha mudado os nomes la em cima, e ainda nao tinha mudado embaixo...

Então, na primeira vez que puxa os dados do DB (No primeiro select) ta funcionando certinho, com o while, porem eu nao sei mesmo pq diabos o 2º não puxa, melhor dizendo, não sei como montar para fazer os dois whiles com as {} corretas sem que ocorra um erro!

Acho que agora deu para entender melhor o problema...

No aguardo

#5 João VPS

João VPS

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Masculino
  • Localidade:nao interessa

Posted 10/06/2010, 10:53

Amigo , Tente Isso e me Fale :

<? header('Content-Type: text/html; charset=utf-8'); $busca = $_POST['palavra_buscar']; $busca = str_replace("'", "_", $busca); $busca = str_replace("-", "_", $busca);  $sql = mysql_query("SELECT * FROM tabela_um WHERE nome like'%$busca%'");  while($linha = mysql_fetch_array($sql)){          $id_normal = $linha['id'];         $nome_normal = $linha['nome'];         $local = $linha['local'];         $data_realizacao = $linha['data_realizacao'];  $sqll = mysql_query("SELECT * FROM tabela_dois where id = '$id_normal'"); while($linha2 = mysql_fetch_array($sqll)){  $thumbs = $linha2['thumb'];  //** Cagada deve estar por aqui... com as {}  **/  echo 'THUMB: "'.$thumbs.'" - Elaia '; /** Fiz para testar esse echo... Mas aqui já não roda  **/         ?>   <div class="eventos">  <tr><td width="100%">  <div class="blogs"> <? echo '<a href="#" onclick="abrir(\'galeria/index.php?evento='.$nome_normal.'&data=' .$data_realizacao.'&id='.$id.'\', \'690\',\'465\');">';?> <img src="../agenda/<? echo $id_normal; ?>/thumb/<? echo $thumbs; ?>" style="border:1px dashed #ffa215; ">  </td><td valign="top">  <h3> <? echo $nome_normal; ?>  </h3><br />   Data: <i><? $data_realizacao; ?></i>  <br /> Local: <i><? echo $local; ?></i></a> <br><br /> <br />  </td></tr> <div class="clear"></div> </div> </div> </table>             <?                           }         }   ?>

~ João Sousa ~ PHP Programmer

MSN
E-Mail

#6 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 10/06/2010, 11:44

Pelo que eu vi você está querendo puxar um registro da agenda... e junto com o registro a foto correspondente.

Eu acho que tem um erro aí no meio ...

$sql = mysql_query("SELECT * FROM tb_agenda WHERE nome like'%$busca%'"); /** Aqui puxa da primeira **/

while($linha = mysql_fetch_array($sql)){
/** E cria as variaveis conforme o DB **/

        $id_normal = $linha['id'];
        $nome_normal = $linha['nome'];
        $local = $linha['local'];
        $data_realizacao = $linha['dtrealiza'];


Quando você pega essa variável '$id_normal' e usa na próxima consulta:

$sqll = mysql_query("SELECT * FROM tb_agenda_foto where id = '$id_normal'");

Você está usando nesta segunda consulta o id da primeira tabela certo?

Mas na tabela 'tb_agenda_foto' qual o campo que está relacionado com a tabela 'tb_agenda'
É o campo 'id' mesmo? Não tem um campo tipo... 'id_agenda' na tabela 'tb_agenda_foto'?

Eu acho que o problema está nesses campos aí? Ele não está buscando o registro no campo errado não?

:ponder:
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#7 V4g_Br4Ck3r

V4g_Br4Ck3r

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino

Posted 15/11/2010, 20:10

Pelo que eu vi você está querendo puxar um registro da agenda... e junto com o registro a foto correspondente.

Eu acho que tem um erro aí no meio ...

$sql = mysql_query("SELECT * FROM tb_agenda WHERE nome like'%$busca%'"); /** Aqui puxa da primeira **/

while($linha = mysql_fetch_array($sql)){
/** E cria as variaveis conforme o DB **/

        $id_normal = $linha['id'];
        $nome_normal = $linha['nome'];
        $local = $linha['local'];
        $data_realizacao = $linha['dtrealiza'];


Quando você pega essa variável '$id_normal' e usa na próxima consulta:

$sqll = mysql_query("SELECT * FROM tb_agenda_foto where id = '$id_normal'");

Você está usando nesta segunda consulta o id da primeira tabela certo?

Mas na tabela 'tb_agenda_foto' qual o campo que está relacionado com a tabela 'tb_agenda'
É o campo 'id' mesmo? Não tem um campo tipo... 'id_agenda' na tabela 'tb_agenda_foto'?

Eu acho que o problema está nesses campos aí? Ele não está buscando o registro no campo errado não?

:ponder:


Estava colocando os nomes de forma incorreta mesmo! Vlw

PS: Podem fechar...




0 user(s) are reading this topic

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

IPB Skin By Virteq