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 tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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