05. april 2001 - 15:17
Der er
36 kommentarer og 1 løsning
10 resultater i søgning
Jeg vil lave en søgemaskine i PHP, ved hjælp af MySQL. Denne søgemaskine skal kun vise 10 resultater pr. side, så mit spørgsmål er: Hvordan gøre jeg det? Indtil videre har jeg fået lavet følgende, så hvad skal ændres? <?php $result = mysql_query(\"SELECT navn, beskriv, web, id FROM link WHERE navn LIKE \'%$soeg%\'\"); if (mysql_num_rows($result)) { while ($row = mysql_fetch_array($result)) echo \"<a href=\'$row[web]\'> <b>$row[navn]</b><br> $row[beskriv]<br> $row[id]<br><br></a>\"; } else { print \"Der var intet søgeresultat\"; } ?>
Annonceindlæg fra Computerworld
05. april 2001 - 15:18
#1
noget med at afslutte din sql string med limit 10
05. april 2001 - 15:19
#2
SELECT navn,beskriv,web,id FROM link WHERE navn like \'%$soeg%\' LIMIT 10 Sådan gør man det :-)
05. april 2001 - 15:23
#3
ja men han vil jo gerne have en \"næste side\" knap så du skal skrive SELECT navn,beskriv,web,id FROM link WHERE navn like \'%$soeg%\' LIMIT $start,10 hvor $start er ved det nummer den skal starte og 10 er det antal den skal finde, så hvis resultatet er over 10 så laver du et link der hedder <a href=\"<? $PGP_SELF ?>?start=10\" >Næste side</a> og er der mere en 20 laver du et link der hedder <a href=\"<? $PGP_SELF ?>?start=20\" >Næste side</a> håber det var forståeligt...
05. april 2001 - 15:24
#4
så pyt da.
05. april 2001 - 15:25
#5
ups tastefejl.. <? $PGP_SELF ?> skulle have været : <? $PHP_SELF ?>
05. april 2001 - 15:26
#6
du kan self erstatte <? $PHP_SELF ?> med det rigtige link...
05. april 2001 - 15:35
#7
For det ikke skal være løvn\' tror jeg faktisk at der ligger en php tutorial til det du ønsker lige her:
http://www.kill-9.dk/ttl_php_more.php Uddrag fra den indledende tekst:
\"This tutorials isn\'t on a specific PHP or Mysql function it will be about how to span you results over several pages. \"
-Alsace
05. april 2001 - 15:50
#8
lige en lille forbedring: <a href=\"<?$PHP_self?>?start=<?$start+10?>\" >Næste side</a> så ændre den selv
05. april 2001 - 15:52
#9
hjælp PHP syntaxt er afskyelig.
05. april 2001 - 15:52
#10
ja, og så kan han bå\' li\' lave en if-sætning der siger, hvis resultat >10 then print <a href=\"<?$PHP_self?>?start=<?$start+10?>\" >Næste side</a> :))
05. april 2001 - 17:29
#11
ja og så en if < $start+10 vi kan lave den være endnu
05. april 2001 - 17:29
#12
sådan ser min ud: <center><table width=\"600\"> <tr><td width=\"60%\" align=\"right\"> <?if($aa>19) {?><a link href=\"forum.php?aa=<?echo $aa-20;?>&bruger=<?echo $bruger;?>\"><< Forrige 20 </a><?}?></td> <td width=\"40%\"> <?if(($aa+20)<$antal){?><a link href=\"forum.php?aa=<?echo $aa+20;?>&bruger=<?echo $bruger;?>\"> Næste 20 >> </a><?}?></td> </tr></table>
05. april 2001 - 17:45
#13
du sal have lidt mere med for at forstå: $resul = mysql_query(\"SELECT * FROM forum where ny =\'1\'\"); $antal = mysql_num_rows($resul); $result = mysql_query(\"SELECT * FROM forum where ny =\'1\' order by dato desc LIMIT $aa,20\"); ?><center><table width=\"600\"> <tr><td width=\"60%\"><b>Debatter (ialt <?echo $antal; ?>)</td> <td width=\"40%\"><b>Oprettet af:</td> </tr></table><hr width=\"600\"><? while($row = mysql_fetch_array($result)) { ?> <center><table width=\"600\"> <tr><td width=\"60%\"> <a link href=\"forum_svar.php?nr=<?php echo $row[\"nr\"];?>&bruger=<?echo $bruger;?>\"><?php echo $row[\"spr\"]; ?></a></td> <td width=\"40%\"><?php echo $row[\"bruger\"].\' den \'.date(\"d/m-y\",$row[\"dato\"]); ?></td> </tr></table> <?php } mysql_free_result($result); ?>
05. april 2001 - 18:25
#14
Det virker ikke, prøv at se om jeg har lavet en fejl: <?php $result = mysql_query(\"SELECT navn, beskriv, web, id FROM link WHERE navn LIKE \'%$soeg%\' LIMIT $start,10\"); if (mysql_num_rows($result)) { while ($row = mysql_fetch_array($result)) echo \"<a href=\'$row[web]\'> <b>$row[navn]</b><br> $row[beskriv]<br><br></a>\"; } else { print \"Der var intet søgeresultat\"; } if $start >10 then print <a href=\"<?$PHP_self?>?start=<?$start+10?>\" >Næste side</a> ?> Jeg tror det enten har noget at gøre med der hvor der står \"LIMIT $start,1\", eller i den der IF funktion.
05. april 2001 - 19:10
#15
ja okay, den if ting der var bare for at fortæller hvordan du skulle gøre, prøv følgende kode, sig hvilke fejl der kommer... <?php if(!isset($start) { $start = 0; } $antal = 10; $result = mysql_query(\"SELECT navn,beskriv,web,id FROM link WHERE navn LIKE \'%$soeg%\' LIMIT $start,$antal \"); if (mysql_num_rows($result)) { while ($row = mysql_fetch_array($result)) { echo \"<a href=\'$row[web]\'> <b>$row[navn]</b><br> $row[beskriv]<br> $row[id]<br><br></a>\"; } if(mysql_num_rows($result) >$start ) { printf(\"<a href=\\\"?naeste=$start+$antal\\\" >Næste side</a>\"); } } else { print \"Din søgning gav intet resultat\"; } ?>
05. april 2001 - 19:10
#16
jeg har allerede fundet første fejl, og er nu rettet: <?php if(!isset($start)) { $start = 0; } $antal = 10; $result = mysql_query(\"SELECT navn,beskriv,web,id FROM link WHERE navn LIKE \'%$soeg%\' LIMIT $start,$antal \"); if (mysql_num_rows($result)) { while ($row = mysql_fetch_array($result)) { echo \"<a href=\'$row[web]\'> <b>$row[navn]</b><br> $row[beskriv]<br> $row[id]<br><br></a>\"; } if(mysql_num_rows($result) >$start ) { printf(\"<a href=\\\"?naeste=$start+$antal\\\" >Næste side</a>\"); } } else { print \"Din søgning gav intet resultat\"; } ?>
05. april 2001 - 20:58
#17
Nu virker det næsten. Første gang jeg søger, virker det perfekt, men hvis man så trykker på næste-linket, skriver den bare de 10 links der kommer først i databasen.
05. april 2001 - 21:00
#18
hvordan ser det linket `\"næste side\" ud ved den allerførste side?
05. april 2001 - 21:01
#19
prøv dette: <?php if(!isset($start)) { $start = 0; } $antal = 10; $result = mysql_query(\"SELECT navn,beskriv,web,id FROM link WHERE navn LIKE \'%$soeg%\' LIMIT $start,$antal \"); if (mysql_num_rows($result)) { while ($row = mysql_fetch_array($result)) { echo \"<a href=\'$row[web]\'> <b>$row[navn]</b><br> $row[beskriv]<br> $row[id]<br><br></a>\"; } if(mysql_num_rows($result) >$start ) { printf(\"<a href=\\\"?start=$start+$antal\\\" >Næste side</a>\"); } } else { print \"Din søgning gav intet resultat\"; } ?>
06. april 2001 - 19:28
#20
Når jeg trykker på næste-knappen, skriver den, at der er fejl i \"if (mysql_num_rows($result)) {\".
07. april 2001 - 10:46
#21
if(mysql_num_rows($result) >$start+10 ) { du kommer formentlig ud over antallet af row prøv at indsætte +10
07. april 2001 - 20:22
#22
Der kommer den samme fejmeddeleles. >>Mortenfn Det er den anden \"if (mysql_num_rows($result)) {\" Der er problemet.
11. april 2001 - 22:01
#23
Kom nu
11. april 2001 - 22:05
#24
$antal = mysql_num_rows($resul); $result = mysql_query(\"SELECT * FROM forum where ny =\'1\' order by dato desc LIMIT $aa,10\"); mysql_free_result($result); ?> <br> <center><table width=\"600\"> <tr><td width=\"60%\" align=\"right\"> <?if($aa>9){?> <a link href=\"<?=$PHP_self?>?aa=<?echo $aa-10;?>\"><< Forrige 10 </a> <?}?> </td><td width=\"40%\"> <?if(($aa+10)<$antal){?> <a link href=\"<?=$PHP_self?>?aa=<?echo $aa+10;?>\"> Næste 10 >> </a> <?}?> kan du kloges af dettte
12. april 2001 - 15:10
#25
Jeg fatter ikke en pind af det der :( Kan du ikke tilpasse det, så det passer med mit script, og så forklare, hvad der er du har gjordt?
12. april 2001 - 15:13
#26
hvilken af de ovenstående er det så?
12. april 2001 - 15:41
#27
Det oprindelige er: <?php $result = mysql_query(\"SELECT navn, beskriv, web, id FROM link WHERE navn LIKE \'%$soeg%\'\"); if (mysql_num_rows($result)) { while ($row = mysql_fetch_array($result)) echo \"<a href=\'$row[web]\'> <b>$row[navn]</b><br> $row[beskriv]<br> $row[id]<br><br></a>\"; } else { print \"Der var intet søgeresultat\"; } ?> Men du må godt døre det på det som ham det htx.. var ved at hjælpe mig med, før han åbenbart opgav. Det er dette: <?php if(!isset($start)) { $start = 0; } $antal = 10; $result = mysql_query(\"SELECT navn,beskriv,web,id FROM link WHERE navn LIKE \'%$soeg%\' LIMIT $start,$antal \"); if (mysql_num_rows($result)) { while ($row = mysql_fetch_array($result)) { echo \"<a href=\'$row[web]\'> <b>$row[navn]</b><br> $row[beskriv]<br> $row[id]<br><br></a>\"; } if(mysql_num_rows($result) >$start ) { printf(\"<a href=\\\"?start=$start+$antal\\\" >Næste side</a>\"); } } else { print \"Din søgning gav intet resultat\"; } ?>
12. april 2001 - 15:58
#28
nu kan jeg jo ikke tæste det: <?php $result = mysql_query(\"SELECT navn,beskriv,web,id FROM link WHERE navn LIKE \'%$soeg%\'\"); if (mysql_num_rows($result)) { while ($row = mysql_fetch_array($result)) echo \"<a href=\'$row[web]\'><b>$row[navn]</b><br>$row[beskriv]<br>$row[id]<br><br></a>\"; } else { print \"Der var intet søgeresultat\"; } ?> Men du må godt døre det på det som ham det htx.. var ved at hjælpe mig med, før han åbenbart opgav. Det er dette: <?php if(!isset($aa)) { $aa = 0; } $result = mysql_query(\"SELECT navn,beskriv,web,id FROM link WHERE navn LIKE \'%$soeg%\' LIMIT $aa,10 \"); if (mysql_num_rows($result)) { while ($row = mysql_fetch_array($result)) { echo \"<a href=\'$row[web]\'><b>$row[navn]</b><br>$row[beskriv]<br>$row[id]<br><br></a>\"; } if(mysql_num_rows($result)>0 ) { $antal=mysql_num_rows($result); ?><center><table width=\"600\"> <tr><td width=\"60%\" align=\"right\"> <?if($aa>9){?> <a link href=\"<?=$PHP_self?>?aa=<?echo $aa-10;?>\"><< Forrige 10 </a> <?}?> </td><td width=\"40%\"> <?if(($aa+10)<$antal){?> <a link href=\"<?=$PHP_self?>?aa=<?echo $aa+10;?>\"> Næste 10 >> </a> <?}?> </td></tr></table><? }} else { print \"Din søgning gav intet resultat\"; } ?>
14. april 2001 - 00:17
#29
Der kommer altså ikke nogen knap, selvom der er flere søgeresultater.
14. april 2001 - 00:37
#30
det er altid svært at indpasse noget i en andens script - især når man ikke kan tæste. fjern denne linje: if(mysql_num_rows($result)>0 ) { og den ene her }} i 5. sidste linje
14. april 2001 - 00:38
#31
flyt denne linje op under din select $antal=mysql_num_rows($result);
14. april 2001 - 00:39
#32
teste ikke tæste
14. april 2001 - 00:42
#33
det er ikke en knap men et link
14. april 2001 - 12:00
#34
Nope.... Det hjælper ikke.
14. april 2001 - 12:27
#35
hmm. du kan downloade mit forum her - Filen fprum.php indeholder funktionen og virker fint
14. april 2001 - 13:23
#36
Hvor er \"her\"?
14. april 2001 - 13:42
#37
Computerworld tilbyder specialiserede kurser i database-management