Jump to content


Photo

Por Favor Olhem Isso.


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

#1 CwB

CwB

    Novato no fórum

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

Posted 11/04/2004, 07:05

Vo postar o codigo e abaixo explicar o que eu preciso.
<?
include("configurar.php");
$let = "$letra"."%";

echo "<table width='95%' cellpadding='5' cellspacing='0' border='1' bordercolor='#666666' align='center'>";

$conn = mysql_connect("$host", "$dbuser", "$dbsenha")or die("Erro ao conectar no MySql");
$db = mysql_select_db("$database", $conn) or die("Banco de dados nao encontrado");
$sql = "SELECT * FROM filmes WHERE titulo LIKE '$let'";
$result = mysql_query("$sql");
while($linha = mysql_fetch_array($result)){
echo "  <tr>
  <td><a href=\"#\" class='link_branc2' onClick=\"window.open('./filmes/ver.php?id=$linha[id]','target','width=600,height=250 scrollbars=yes, status=yes, toolbar=no, location=no, directories=no, menubar=no, resizable=yes, fullscreen=no');\">
  <b> $linha[titulo] </b> ( $linha[titulorig], $linha[lancamento] ) </a> </td>
    </tr> ";
}
?>

Bom, eu fiz isso no dedo observando outros scrips já criados, faço isso pra eu aprender o php. queria uma opinião de vocês primeramente sobre o codigo acima, se possivel me dar umas dicas de como melhorar.

Vamos pra minha dúvida, observando o codigo acima veremos que se trata de um script que busca no banco de dados, tabela filmes, titulos iniciados por qualquer letra do alfabeto, bem isso tá perfeito, funcionando blz. Mas eu preciso fazer um IF pra quando não obter nenhum resultado em alguma letra(não havendo titulos iniciados com K aparecer a mensagem Não possue Titulo iniciado com a vogal )

Eu já tentei fazer, mas não fui feliz, por favor peço que me ajudem com essa simples dúvida, ficarei muio grato.

ONDE E COMO EU DEVO COLOCAR O IF ?

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 11/04/2004, 07:19

<?

include("configurar.php");

$let = "$letra";



echo "<table width='95%' cellpadding='5' cellspacing='0' border='1' bordercolor='#666666' align='center'>";



$conn = mysql_connect("$host", "$dbuser", "$dbsenha")or die("Erro ao conectar no MySql");

$db = mysql_select_db("$database", $conn) or die("Banco de dados nao encontrado");

$sql = "SELECT * FROM filmes WHERE titulo LIKE '$let%'";

$result = mysql_query("$sql");



$n = mysql_num_rows($result);



if($n == "0"){ 

echo 'Não foi encontrado filme começados com $let!';

 } else {

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

echo "  <tr>

 <td><a href=\"#\" class='link_branc2' onClick=\"window.open('./filmes/ver.php?id=$linha[id]','target','width=600,height=250 scrollbars=yes, status=yes, toolbar=no, location=no, directories=no, menubar=no, resizable=yes, fullscreen=no');\">

 <b> $linha[titulo] </b> ( $linha[titulorig], $linha[lancamento] ) </a> </td>

   </tr> ";

}

}

?>

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

#3 CwB

CwB

    Novato no fórum

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

Posted 11/04/2004, 07:28

obrigadissiiiimmooooo felipensp

#4 Red Hot

Red Hot

    12 Horas

  • Usuários
  • 168 posts
  • Sexo:Masculino
  • Localidade:Minas Gerais

Posted 11/04/2004, 09:59

E se começar com numeros como fazer?

<?
include("configurar.php");
$let = "$letra";

echo "<table width='95%' cellpadding='5' cellspacing='0' border='1' bordercolor='#666666' align='center'>";

$conn = mysql_connect("$host", "$dbuser", "$dbsenha")or die("Erro ao conectar no MySql");
$db = mysql_select_db("$database", $conn) or die("Banco de dados nao encontrado");
if ($let == "num"){
$tipo = "ORD(SUBSTRING(titulo, 1, 1)) <= ORD('9') AND ORD(SUBSTRING(titulo, 1, 1)) >= ORD('0') ORDER BY titulo";
} else {
$tipo = "titulo LIKE '$let%'";
}
$sql = "SELECT * FROM filmes WHERE ".$tipo."";
$result = mysql_query("$sql");

$n = mysql_num_rows($result);

if($n == "0"){ 
echo 'Não foi encontrado filme começados com $let!';
} else {
while($linha = mysql_fetch_array($result)){
echo "  <tr>
<td><a href=\"#\" class='link_branc2' onClick=\"window.open('./filmes/ver.php?id=$linha[id]','target','width=600,height=250 scrollbars=yes, status=yes, toolbar=no, location=no, directories=no, menubar=no, resizable=yes, fullscreen=no');\">
<b> $linha[titulo] </b> ( $linha[titulorig], $linha[lancamento] ) </a> </td>
  </tr> ";
}
}
?>

No caso acima se o usuario digitar let=num irão serexibidostodos os resultados que iniciamcom numeros e se digitar let=b por exemplo daí será exibido todos os resultados que se iniciam com b.

Só de algumas modificações para que não possa ocorrer sql injection.

#5 CwB

CwB

    Novato no fórum

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

Posted 11/04/2004, 16:13

E se começar com numeros como fazer?

<?
include("configurar.php");
$let = "$letra";

echo "<table width='95%' cellpadding='5' cellspacing='0' border='1' bordercolor='#666666' align='center'>";

$conn = mysql_connect("$host", "$dbuser", "$dbsenha")or die("Erro ao conectar no MySql");
$db = mysql_select_db("$database", $conn) or die("Banco de dados nao encontrado");
if ($let == "num"){
$tipo = "ORD(SUBSTRING(titulo, 1, 1)) <= ORD('9') AND ORD(SUBSTRING(titulo, 1, 1)) >= ORD('0') ORDER BY titulo";
} else {
$tipo = "titulo LIKE '$let%'";
}
$sql = "SELECT * FROM filmes WHERE ".$tipo."";
$result = mysql_query("$sql");

$n = mysql_num_rows($result);

if($n == "0"){ 
echo 'Não foi encontrado filme começados com $let!';
} else {
while($linha = mysql_fetch_array($result)){
echo "  <tr>
<td><a href=\"#\" class='link_branc2' onClick=\"window.open('./filmes/ver.php?id=$linha[id]','target','width=600,height=250 scrollbars=yes, status=yes, toolbar=no, location=no, directories=no, menubar=no, resizable=yes, fullscreen=no');\">
<b> $linha[titulo] </b> ( $linha[titulorig], $linha[lancamento] ) </a> </td>
  </tr> ";
}
}
?>

No caso acima se o usuario digitar let=num irão serexibidostodos os resultados que iniciamcom numeros e se digitar let=b por exemplo daí será exibido todos os resultados que se iniciam com b.

Só de algumas modificações para que não possa ocorrer sql injection.

Obrigado pela observação, eu justamente estou com essa dúvida agora, se iniciar com numeros ao invez de letras, como eu faria a consulta pelo SQL ?

pode me explicar o que seria o sql injection ?

#6 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 11/04/2004, 16:20

SQL Injection (tem bastante coisa sobre isso na pesquisa do fórum) seria uma entrada estratégica de dados no Script de uma pessoa...

Exemplo, um script de login desprotegido... se o visitante digitasse "OR 1 = 1", estaria logado no sistema... :D

Faça uma busca no Fórum para outros exemplos.
Klaus Paiva
Conheça também: Taperás

#7 Red Hot

Red Hot

    12 Horas

  • Usuários
  • 168 posts
  • Sexo:Masculino
  • Localidade:Minas Gerais

Posted 11/04/2004, 18:08

Obrigado pela observação, eu justamente estou com essa dúvida agora, se iniciar com numeros ao invez de letras, como eu faria a consulta pelo SQL ?

Não sei se vc percebeu mais no meu post acima ja mostrei as alterações...

Edição feita por: Red Hot, 11/04/2004, 18:10.





2 user(s) are reading this topic

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

IPB Skin By Virteq