Avatar billede need4speed Nybegynder
02. november 2004 - 18:06 Der er 31 kommentarer og
1 løsning

søge funktion

Har kigget rundt på eksperten og prøvet at få følgende kode til at virke men den viser inget resultater eller fejl


<?
if(!$_GET[page]) $_GET[page]=0;

// etabler forbindelse til din mysql-db

include("database.php");   

?>
<form>
<input name="searchword">
<input type="submit">
</form><br>
<?
if($_GET[searchword]) {

$foresp = mysql_query("SELECT * FROM fjernsyn ORDER BY id LIMIT ".($_GET[page]*10).",10") or die(mysql_error());
while($data = mysql_fetch_array($foresp)) {
// vis din data her
}

if(mysql_num_rows($foresp)>(10*($_GET[page]+1))) print "<a href=\"index.php?searchword=$_GET[searchword]&page=".($_GET[page]+1)."\">Næste side</a>";
if($_GET[page]!=0) print "<a href=\"index.php?searchword=$_GET[searchword]&page=".($_GET[page]-1)."\">Forrige side</a>";

}
?>
Avatar billede hmortensen Nybegynder
02. november 2004 - 18:09 #1
For at søge i mysql:
SELECT * FROM tabel WHERE søge_felt LIKE '%søge_streng%'
Avatar billede jaw Nybegynder
02. november 2004 - 18:10 #2
Du siger at du intet output får, du husker at ændre:
// vis din data her
ikke?

Og for at søge, skal der tilføjes LIKE '%".$_GET['searchword']."%' til din query
Avatar billede need4speed Nybegynder
02. november 2004 - 18:12 #3
noget i den dur?

$foresp = mysql_query("SELECT * FROM fjernsyn WHERE searchword LIKE '%searchword%' BY id LIMIT ".($_GET[page]*10).",10") or die(mysql_error());
Avatar billede need4speed Nybegynder
02. november 2004 - 18:15 #4
under //vis din data skal der ikke stå

<?echo("$row[overskrift]");?>
Avatar billede jaw Nybegynder
02. november 2004 - 18:21 #5
Nu søger du på "searchword" altså ikke værdien af variablen.

Prøv:

$foresp = mysql_query("SELECT * FROM fjernsyn WHERE searchword LIKE '%".$_GET['searchword']."%' ORDER BY id LIMIT ".($_GET[page]*10).",10") or die(mysql_error());

Og der skal bare stå:
echo $row['overskrift'];
ikke <? og ?>, dem har du allerede "aktiveret".
Avatar billede need4speed Nybegynder
02. november 2004 - 18:25 #6
min kode ser nu sådan her ud... får en fejl på linie 27 hvor } befinder sig


<?
if(!$_GET[page]) $_GET[page]=0;

// etabler forbindelse til din mysql-db

include("database.php");   

?>
<form>
<input name="searchword">
<input type="submit">
</form><br>
<?
if($_GET[searchword]) {

$foresp = mysql_query("SELECT * FROM fjernsyn WHERE searchword LIKE '%".$_GET['searchword']."%' ORDER BY id LIMIT ".($_GET[page]*10).",10") or die(mysql_error());


// vis din data her
echo("$row[id]");
}


if(mysql_num_rows($foresp)>(10*($_GET[page]+1))) print "<a href=\"index.php?searchword=$_GET[searchword]&page=".($_GET[page]+1)."\">Næste side</a>";
if($_GET[page]!=0) print "<a href=\"index.php?searchword=$_GET[searchword]&page=".($_GET[page]-1)."\">Forrige side</a>";

}
?>
Avatar billede need4speed Nybegynder
02. november 2004 - 18:35 #7
har virkelig brug for hjælp skal aflevere et studieprojekt i morgen.
Avatar billede jaw Nybegynder
02. november 2004 - 18:39 #8
Prøv med kun:

echo $row['id'];
Avatar billede need4speed Nybegynder
02. november 2004 - 18:56 #9
nope
Avatar billede jaw Nybegynder
02. november 2004 - 20:00 #10
$foresp = mysql_query("SELECT * FROM fjernsyn WHERE searchword LIKE '%".$_GET['searchword']."%' ORDER BY id LIMIT ".($_GET[page]*10).",10") or die(mysql_error());

echo $row['id'];

}

Det virker ikke?
Avatar billede jaw Nybegynder
02. november 2004 - 20:02 #11
if($_GET[searchword]) {

$foresp = mysql_query("SELECT * FROM fjernsyn WHERE searchword LIKE '%".$_GET['searchword']."%' ORDER BY id LIMIT ".($_GET[page]*10).",10") or die(mysql_error());

while($row = mysql_fetch_array($foresp)) {
echo $row['id'];
}
}

Så lige, at du kun vil få en id udskrevet, da du ikke laver et array, er det meningen?
Avatar billede need4speed Nybegynder
02. november 2004 - 20:24 #12
Har lavet den helt om

<?
if(!$_GET[page]) $_GET[page]=0;
// etabler forbindelse til din mysql-db

include("database.php");   

?>
<form action="?action=search" method="post">
    Søgetekst:    
    <input name="search" type="text" id="search"><br/>
    <input type="submit" value="Søg">
</form><br />
<?

if($action == "search") {
    $sql = "SELECT * FROM fjernsyn WHERE beskriv LIKE '%$search%' ORDER BY id LIMIT 10";
  if ($result = mysql_query($sql)) {
      while ($row = mysql_fetch_row($result)) {
            echo "$row[id] \n";           
            }
        } else {
        print 'Der kunne ikke findes nogle nyheder der indeholdt dit søgeord';
      }       
    // end if
} // end search

print mysql_error();


?>
Avatar billede need4speed Nybegynder
02. november 2004 - 20:25 #13
Vil gerne have, så det kommer til at stå ligesom når man trykker 1930-1950

http://www.activedesign.dk/tv/
Avatar billede need4speed Nybegynder
02. november 2004 - 20:26 #14
må gerne få tilføjet en array og hvad vil en array sige at være?
Avatar billede jaw Nybegynder
02. november 2004 - 20:26 #15
Ja, men det ser da også fint ud, og virker vel også? Der er kun lige en enkelt lille detalje...

$sql = "SELECT * FROM fjernsyn WHERE beskriv LIKE '%$search%' ORDER BY id LIMIT 10";
bør byttes ud med:
$sql = "SELECT * FROM fjernsyn WHERE beskriv LIKE '%".$_GET['search']."%' ORDER BY id LIMIT 10";

Da du ellers kun vil benytter det på servere hvor register_globals er sat off.
Avatar billede jaw Nybegynder
02. november 2004 - 20:28 #16
Et array - som du faktisk har lavet nu - er en række data der er i en variabel. F.eks. kan du i variablen $row have en række værdier for eksempelvis navn, adresse etc. $row['name'].

while($row = mysql_fetch_array($foresp)) { <-- vil lave et array kaldet $row på baggrund af din forespørgsel...
Avatar billede need4speed Nybegynder
02. november 2004 - 20:52 #17
Kommer sgu intet data frem når man søger

http://www.activedesign.dk/tv/sog.php
Avatar billede jaw Nybegynder
02. november 2004 - 20:58 #18
Og du har noget i din database? Og paste lige hele koden igen...
Avatar billede need4speed Nybegynder
02. november 2004 - 20:59 #19
<?
if(!$_GET[page]) $_GET[page]=0;
// etabler forbindelse til din mysql-db

include("database.php");   

?>
<form action="?action=search" method="post">
    Søgetekst:    
    <input name="search" type="text" id="search"><br/>
    <input type="submit" value="Søg">
</form><br />
<?

if($action == "search") {
    $sql = "SELECT * FROM fjernsyn WHERE beskriv LIKE '%".$_GET['search']."%' ORDER BY id LIMIT 10";
  if ($result = mysql_query($sql)) {
      while ($row = mysql_fetch_row($result)) {
            echo "$row[id] \n";           
            }
        } else {
        print 'Der kunne ikke findes nogle nyheder der indeholdt dit søgeord';
      }       
    // end if
} // end search

print mysql_error();


?>
Avatar billede need4speed Nybegynder
02. november 2004 - 21:00 #20
Du kan se tabel indholdet her:

http://www.activedesign.dk/tv/tabel.htm
Avatar billede need4speed Nybegynder
02. november 2004 - 21:02 #21
er det formen som er helt forkert?
Avatar billede jaw Nybegynder
02. november 2004 - 22:27 #22
Ja, okey... Og du får intet input overhovedet???
Avatar billede need4speed Nybegynder
02. november 2004 - 22:30 #23
nej overhovedet ikke.. tænker på om det kan være noget server settings der ligger bag problemet en som kan teste koden på sin webside?
Avatar billede jaw Nybegynder
02. november 2004 - 22:37 #24
Tjah, kunne jeg nok, men så gør den så simpel som overhovedet mulig. Lav en ny fil, med dette indhold:

<?
//connect

$q = mysql_query("SELECT * FROM fjernsyn LIMIT 10") or die(mysql_error());

while($row = mysql_fetch_array($q)) {
  echo $row['id'] . "<br />";
}

mysql_close();
?>
Avatar billede need4speed Nybegynder
02. november 2004 - 22:47 #25
den metode virkede...
Avatar billede need4speed Nybegynder
02. november 2004 - 22:50 #26
jamen... så mangle søge formen jo
Avatar billede jaw Nybegynder
02. november 2004 - 22:55 #27
Ja, det er jeg klar over, vi skal bare lige se hvor det kan gå galt...
Avatar billede need4speed Nybegynder
02. november 2004 - 23:06 #28
ok
Avatar billede jaw Nybegynder
02. november 2004 - 23:14 #29
Okey... 2 ting til at starte med:

1. mysql_fetch_row bytter du ud med mysql_fetch_array
2. $_GET['search'] skal være $_POST['search']

Prøv lige de 2 ting i første omgang, det burde hjælpe lidt :)
Avatar billede need4speed Nybegynder
02. november 2004 - 23:46 #30
det virkede.. at skifte til array
Avatar billede need4speed Nybegynder
02. november 2004 - 23:47 #31
jaw du skal lige angive et svar.
Avatar billede jaw Nybegynder
02. november 2004 - 23:48 #32
Tak, det vil jeg da gøre :)
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