Avatar billede matz Nybegynder
10. oktober 2007 - 13:20 Der er 12 kommentarer

Søgning finder intet

Nogen der kan sige mig hvad der er galt i denne kode her:

<?php
include('connect.php');
   
$test_2 = new sql();
$test_2->connect();
$test_2->q("Select * from bolchetabel Where navn like 'soeg%'");
echo "Resultater af din søgning";
while($array = $test_2->a()){
   
  echo ' <a href="index.php?page=bolcher&navn='. $array["navn"] .'"><br>';
 
  }
$test_2->close();



?>

<form action="" method="POST">

Søg efter:<br>

<input type="text" name="soeg"><br>

<input type="submit" value="Søg">

</form>
Avatar billede michael_stim Ekspert
10. oktober 2007 - 13:27 #1
$test_2->q("Select * from bolchetabel Where navn like '". $_POST['soeg']."%'");
Avatar billede michael_stim Ekspert
10. oktober 2007 - 13:28 #2
Og så en action på din form.
Avatar billede pidgeot Nybegynder
10. oktober 2007 - 13:28 #3
Der er vel intet i din bolchetabel der har et navn der starter med teksten soeg. ;)

(Læs: Du bruger en konstant tekst, ikke variablen fra formen.)

Pas i øvrigt på SQL injections...
Avatar billede matz Nybegynder
10. oktober 2007 - 13:37 #4
Okay nu virker det når jeg søger, men inden jeg søger på noget så udskriver den alle poster fra det felt?

<?php
include('connect.php');
   
$test_2 = new sql();
$test_2->connect();
$test_2->q("Select * from bolchetabel Where navn like '". $_POST['soeg']."%'");
echo "Resultater af din søgning";
while($array = $test_2->a()){
   
  echo ' <a href="index.php?page=bolcher&navn='. $array["navn"] .'">'. $array["subkat"] .'<br>';
 
  }
$test_2->close();



?>

<form action="" method="POST">

Søg efter:<br>

<input type="text" name="soeg"><br>

<input type="submit" value="Søg">

</form>
Avatar billede matz Nybegynder
10. oktober 2007 - 13:39 #5
Her er den rigtige kode:

<?php
include('connect.php');
   
$test_2 = new sql();
$test_2->connect();
$test_2->q("Select * from bolchetabel Where navn like '". $_POST['soeg']."%'");
echo "Resultater af din søgning";
while($array = $test_2->a()){
   
  echo ' <a href="index.php?page=bolcher&navn='. $array["navn"] .'">'. $array["navn"] .'</a><br>';
 
  }
$test_2->close();



?>

<form action="" method="POST">

Søg efter:<br>

<input type="text" name="soeg"><br>

<input type="submit" value="Søg">

</form>
Avatar billede michael_stim Ekspert
10. oktober 2007 - 13:48 #6
Det er fordi du skal have en:
if(isset($_POST['navn_på_din_knap'])){

}
Rundt om din kode. Altså hvis der bliver trykket på submit.
Avatar billede michael_stim Ekspert
10. oktober 2007 - 13:49 #7
Altså hvis der bliver trykket på submit. = Altså hvis der bliver trykket på submit, eksekver da denne kode.
Avatar billede matz Nybegynder
10. oktober 2007 - 13:57 #8
Selvfølgelig...Virker nu..lig et svar
Avatar billede matz Nybegynder
10. oktober 2007 - 14:14 #9
Kan du forresten sige hvordan jeg gør hvis intet stemmer overens med det der bliver skrevet i søgefeltet? Sådan så der ikke bare bliver et tomt felt på hjemmesiden, men så der kommer en tekst frem "Intet fundet".
Avatar billede zurekk Nybegynder
10. oktober 2007 - 17:02 #10
if( mysql_num_rows( $din_query ) == 0 )
{
echo 'Intet fundet.';
}

Lav en $var i dit object som tæller resultater, så bruger du bare

if( !$test_2->results )
{
echo 'Intet fundet.';
}
Avatar billede matz Nybegynder
11. oktober 2007 - 08:58 #11
Hvordan laves denne $var
Avatar billede matz Nybegynder
11. oktober 2007 - 09:23 #12
Jeg har prøvet med object, men den laver fejl. Min kode er:


    function num_rows(){
        return mysql_num_rows($this->_activeQuery);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester