Jump to content

Recommended Posts

Posted (edited)

Bom tarde,

Na página que estou a desenvolver, pus uma opção de pesquisa, o problema que me está a dar é o seguinte se clicar em pesquisar e a input estiver vazia ele mostra todo o que houver na tabela selecionada e eu não quero isso, eu quero se for vazia quero que de mensagem que não encontrou nada.

Como posso fazer isso?

O código que estou a utilizar é o seguinte:

<?php
  include 'config.php';

  $search = $_POST[search];

  $sql = "SELECT * FROM produtos
	  WHERE descricao LIKE '%$search%'
    ORDER BY id_produto DESC ";
  $resultados = mysql_query($sql)  or die (mysql_error());

  $count = mysql_num_rows($resultados);
  if ($count == 0) {
    echo "A pesquisa efectuada não devolveu resultados.
		  Por favor tente novamente com outros termos de pesquisa ou então efectue a navegação  através do menu de Componentes, Computadores ou Marcas.";
  } else {
  if ($count == 1){
 echo "A sua pesquisa encontrou 1 resultado";
  }
  if ($count > 1){
 echo 'A sua pesquisa encontrou <b>'.$count.'</b> resultados';
  }

 }
?>

cumps,

Ricardo Gonçalves

Edited by brunoais
geshi!
  • Replies 74
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted (edited)

Não te esqueças de prevenir Injecções de SQL!

          $search = trim($_POST['search']);
         if ($search == '') {
             echo 'Preencha o campo de pesquisa.';
         } else {
             /* ... o teu codigo ... */
         }
Edited by pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

Obrigado e já agora quando vouy buscar os dados á BD como faço para ele buscar a imagem que na tabela tem o nome dela? é que eu eu já pus a fazer isso e ele não faz, e o código que eu pus para ele buscar á pasta para imprimir foi este:

 <th rowspan="2"><?php echo'<img src="images/produtos/'.$img.'" alt="'.htmlspecialchars($nome).'" width="128" height="128" />'; ?></th>
Posted

Talvez usando uma barra extra para começar o path para as imagens na raiz do teu site:

src="/images/..."

Sem mais informações da tua parte é difícil adivinhar ...

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

Talvez usando uma barra extra para começar o path para as imagens na raiz do teu site:

src="/images/..."

se bem me lembro o uso inicial do caracter '/' indica para ir buscar à raiz não do sistema operativo mas do site:

exemplo:

local no disco : /var/www/site/imagens/

local do site : /var/www/

url do site : http://servidor.com/site/

se src for igual a : /imagens/

irá tentar ler do : /var/www/imagens/

@Ricardo:

tens de verificar estas informações:

- local onde o ficheiro se encontra no disco

- nome do ficheiro no disco

- que informação tens na base de dados

só com essa informação é que é possível dizer o que é necessário para resolver a tua situação

IRC : sim, é algo que ainda existe >> #p@p
Posted

se bem me lembro o uso inicial do caracter '/' indica para ir buscar à raiz [...] do site

O que é que eu disse? 😉

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

Qual é a pasta onde está o ficheiro php?

Qual é a pasta onde está a pasta "images"?

É a mesma pasta?

Se forem pastas diferentes, o caminho não está certo!

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted (edited)

A minha pasta onde tenho as minhas páginas todas chama-se siterticardo dentro dela tenho o ficheiro que está em causa que dei o nome de pesquisar.php ainda nesta parte da pasta tenho uma pasta do que dou nome images dentro desta pasta ainda tenho outra pasta que dou de nome produtos e dentro desta pasta tenho as imagens todas que estão na BD.

em relação ao pesquisar estar vazio ele dar a mesagem eu pus assim o código como está embaixo, está mal?

 <div class="corpo">
<?php
  include 'config.php';

  $search = $_POST[search];

  $sql = "SELECT * FROM produtos
	  WHERE descricao LIKE '%$search%'
	ORDER BY id_produto DESC ";
  $resultados = mysql_query($sql)  or die (mysql_error());

  $count = mysql_num_rows($resultados);
  if ($count == 0) {
	echo "A pesquisa efectuada não devolveu resultados.
		  Por favor tente novamente com outros termos de pesquisa ou então efectue a navegação  através do menu de Componentes, Computadores ou Marcas.";
  } else {
  if ($count == 1){
 echo "A sua pesquisa encontrou 1 resultado";
  }
  if ($count > 1){
 echo 'A sua pesquisa encontrou <b>'.$count.'</b> resultados';
  }

 }
	  if ($search == '') {
		  echo 'Preencha o campo de pesquisa.';
	  } else {
?>
<?php  
	while ($linha = mysql_fetch_assoc($paginacao))  {
	  extract($linha);
?>
<div>
<table border="1">
<tr>
 <th rowspan="2"><?php echo'<i
Edited by scorch
Posted

Ainda não estás preocupado com as injecções de SQL! Aconselho-te a que resolvas este problema antes dos demais.

~~~~~~~~

Aparentemente a estrutura de pastas está correcta para o teu código.

O problema deve ser então noutro lado: talvez a variavel $img não tenha o que esperas que ela tenha. Experimenta imprimir o resultado do mysql_fetch_assoc()

<?php  
           while ($linha = mysql_fetch_assoc($paginacao))  {
                 extract($linha);
                 echo '<pre>'; print_r($linha); echo '</pre>';
?>

em relação ao pesquisar estar vazio ele dar a mesagem eu pus assim o código como está embaixo, está mal?

Eu não faria assim; mas se funciona ...

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

Ainda não estás preocupado com as injecções de SQL! Aconselho-te a que resolvas este problema antes dos demais.

~~~~~~~~

injecções SQL? queres dizer a segurança?

Aparentemente a estrutura de pastas está correcta para o teu código.

O problema deve ser então noutro lado: talvez a variavel $img não tenha o que esperas que ela tenha. Experimenta imprimir o resultado do mysql_fetch_assoc()

<?php  
		while ($linha = mysql_fetch_assoc($paginacao))  {
			  extract($linha);
			  echo '<pre>'; print_r($linha); echo '</pre>';
?>

este código aqui em cima na página ele não está a imprimir nada .

dá-me mal por isso que perguntei eu clico OK ele apresenta todo o que está na BD e dá este erro:

Notice: Undefined variable: search in C:\xampp\htdocs\sitericardo\pesquisar.php on line 51

Use of undefined constant search - assumed 'search' in C:\xampp\htdocs\sitericardo\pesquisar.php on line 122
Posted (edited)

Notice: Undefined variable: search in C:\xampp\htdocs\sitericardo\pesquisar.php on line 51

Use of undefined constant search - assumed 'search' in C:\xampp\htdocs\sitericardo\pesquisar.php on line 122

//$search = $_POST[search];
$search = $_POST['search'];
Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Posted (edited)

primeiro fazes a pesquisa na BD e depois e' que fazes a verificacao se o search e' nulo?

$search = $_POST["search"];

$sql = "SELECT * FROM produtos
WHERE descricao LIKE '%$search%'
ORDER BY id_produto DESC ";
$resultados = mysql_query($sql) or die (mysql_error());
//...
if ($search == '') {
echo 'Preencha o campo de pesquisa.';
} else {

mete um print_r, em vez da funcao(pelo o menos por enquanto)

while ($linha = mysql_fetch_assoc($paginacao)) {
 print_r($linha);

dá na mesma erro na 51

qual e' o erro de que ele se queixa??

Edited by pikax

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

está resolvido?

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Posted (edited)

ainda não porque dá esta tal erro da linha 51.

Porque nao estas a enviar o 'search' no POST, para veres o que estas a enviar nos POST

print_r($_POST);
Edited by pikax

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.