Gå til innhold

While løkke som ikke stopper..


Anbefalte innlegg

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 av vi er lost
Lenke til kommentar
Videoannonse
Annonse

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 av Prodigy_
Lenke til kommentar
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

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 av Terrasque
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...