vi er lost Skrevet 14. juni 2005 Del Skrevet 14. juni 2005 (endret) Har laget denne koden for å søke gjennom nyhetene mine if($database == nyheter) ##Sjekker hva den skal søke etter { $sok = "SELECT * FROM `news` WHERE tittel LIKE '%" . $_POST['search'] . "%' OR ingress LIKE '%" . $_POST['search'] . "%' OR brodtekst LIKE '%" . $_POST['search'] . "%' LIMIT 0 , 30"; $antall = $antall = mysql_num_rows(mysql_query($sok)); if($antall > 0) ##Sjekker om det er mer enn 1 treff { while($row = mysql_fetch_array(mysql_query($sok))) ##Dette skjer hvis det er mer enn 1 treff. { echo $row['tittel']; echo "<br />"; echo substr($row['ingress'], 0, 125) . "..."; }; } else ##Dette skjer hvis det ikke er noen oppføringer som inneholder dette { echo "Ingen nyheter funnet som inneholdt "; echo $_POST['search']; }; Men den stopper ikke, den tømmer meg for båndbredde derfor legger jeg kke ut link til siden. Har akkurat brukt 140MB på 30 min nå. Hvilken detalj er det jeg overser. Er det pågrunn av " % " dette skjer?? Endret 14. juni 2005 av vi er lost Lenke til kommentar
Prodigy_ Skrevet 14. juni 2005 Del Skrevet 14. juni 2005 (endret) Prøv denne: if($database == nyheter) ##Sjekker hva den skal søke etter { $sok = "SELECT * FROM `news` WHERE tittel LIKE '%" . $_POST['search'] . "%' OR ingress LIKE '%" . $_POST['search'] . "%' OR brodtekst LIKE '%" . $_POST['search'] . "%' LIMIT 0 , 30"; $antall = mysql_num_rows(mysql_query($sok)); if($antall > 0) ##Sjekker om det er mer enn 1 treff { while($row = mysql_fetch_array(mysql_query($sok))) ##Dette skjer hvis det er mer enn 1 treff. { echo $row['tittel']; echo "<br />"; echo substr($row['ingress'], 0, 125) . "..."; } } else ##Dette skjer hvis det ikke er noen oppføringer som inneholder dette { echo "Ingen nyheter funnet som inneholdt "; echo $_POST['search']; } } Edit: La til en } på slutten. Endret 14. juni 2005 av Prodigy_ Lenke til kommentar
muffe Skrevet 14. juni 2005 Del Skrevet 14. juni 2005 Hvorfor kjører du samme spørring to ganger? Du kan jo bruke resultatet til å BÅDE skjekke antall returnerte rader OG loope gjennom arrayet, uten å kjøre det to ganger... Lenke til kommentar
vi er lost Skrevet 14. juni 2005 Forfatter Del Skrevet 14. juni 2005 Hvorfor kjører du samme spørring to ganger? Du kan jo bruke resultatet til å BÅDE skjekke antall returnerte rader OG loope gjennom arrayet, uten å kjøre det to ganger... Var det sånn du mente?? $sok = mysql_query("SELECT * FROM `news` WHERE tittel LIKE '%" . $_POST['search'] . "%' OR ingress LIKE '%" . $_POST['search'] . "%' OR brodtekst LIKE '%" . $_POST['search'] . "%' LIMIT 0 , 30"); $antall = mysql_num_rows($sok); if($antall > 0) ##Sjekker om det er mer enn 1 treff Her starter nummer 3 { while($row = mysql_fetch_array($sok) Tok bare med det som har noe å si (tror jeg). Lenke til kommentar
Torbjørn Skrevet 14. juni 2005 Del Skrevet 14. juni 2005 du kan ikke kjøre queryet og hente ut første rad i while-betingelsen, den kjører da spørringen ved hver loop, henter ut første rad, og når ferdig, kjører loopen på nytt og spørringe på nytt, og henter ut første rad Lenke til kommentar
Terrasque Skrevet 14. juni 2005 Del Skrevet 14. juni 2005 (endret) if ( $database == "nyheter" ) { $sok = "SELECT * FROM `news` WHERE tittel LIKE '%" . $_POST['search'] . "%' OR ingress LIKE '%" . $_POST['search'] . "%' OR brodtekst LIKE '%" . $_POST['search'] . "%' LIMIT 0 , 30"; $result = mysql_query( $sok ); if ( mysql_num_rows( $result ) > 0 ) { while ( $row = mysql_fetch_array( $result ) ) { echo $row['tittel']; echo "<br />"; echo substr( $row['ingress'], 0, 125) . "..."; }; } else { echo "Ingen nyheter funnet som inneholdt "; echo $_POST['search']; }; }; blir vel en mer korrekt versjon.. EDIT: Hvorfor i alle julenisser fjerner CODE /CODE en space i begynnelsen av linjen? Endret 14. juni 2005 av Terrasque Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå