---
title: "if funktion för antal poster"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/183143-if-funktion-för-antal-poster"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "TomasA"
published: "2010-04-11T21:44:09.000Z"
updated: "2010-04-20T18:50:41.000Z"
replies: 14
views: 1047
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/183143-if-funktion-för-antal-poster"
---

# if funktion för antal poster

## #1 — TomasA, 2010-04-11T21:44Z

Jag skall ha en if - else funktion gällande antalet poster i tabellen.
Hur skall då if villkoret se ut? Har testat med 
**\<?php
	if ($i \<= 4)
	{	?\>
   \<?php
   }else{  print " Boka även in följande: "
    ?\>
	\<?php
	} ?\>**

Funktionen skall vara att om det är 4 poster eller mindre i urvalet skall inget printas, 
men om det är mer skall raden "Boka ..." skrivas ut.
Denna funkar inte. 
Jag har fem poster men ändå skrivs inte raden ut.

Permalänk: https://www.webforum.nu/p/183143

## #2 — nitro2k01, 2010-04-11T22:25Z

Kanske:

```php
<?php
if (mysql_num_rows($result) <= 4)
{
	?>
	<?php
}else{
	print " Boka även in följande: "
	?>
	<?php

}
?>
```

Permalänk: https://www.webforum.nu/p/2232901

## #3 — @nders, 2010-04-12T06:10Z

Flyttas från SQL.

Permalänk: https://www.webforum.nu/p/2232908

## #4 — TomasA, 2010-04-15T13:56Z

Bra, den fungerar nu, men så ville jag lägga till en skrivning, 
när ingen post ingår i urvalet.

Jag testar med följande: 

```php
	<?php
			if (mysql_num_rows($result) == 0) 
			{	?>
			Inget planerat.
			<?php
			}else{  
			?>	
			<?php
			}	?>
```

Det som följer sen funkar bra men när ingen post finns i resultatet 
kommer INTE texten "Inget planerat." med.  :q

Testade också

```php
			<?php
			if (mysql_num_rows($result) == 0) 
			{	?>
			Inget planerat.
			<?php
			}else{  
			?>	
			<?php
			}	?>
```

med samma resultat - ingen test när post saknades i utvalet.

Permalänk: https://www.webforum.nu/p/2233120

## #5 — nitro2k01, 2010-04-15T14:13Z

Dina två exmpel är identiska så när som på ett tabb-tecken i början av citatet.

Så, om du prövar följande...

```php
			<?php
			if (mysql_num_rows($result) == 0) 
			{	?>
			Inget planerat.
			<?php
			}else{  
			?>	
			Potatismos!
			<?php
			}	?>
```

...så skrivs inget ut, varken "Inget planerat" eller "Potatismos". Förstår jag saken rätt då?

Permalänk: https://www.webforum.nu/p/2233122

## #6 — TomasA, 2010-04-15T14:29Z

Om post finns i "$resultat" kommer Potatismos ut,
men inget om post saknas i resultatet ( inte ens p-krydda  ;) )

Permalänk: https://www.webforum.nu/p/2233123

## #7 — nitro2k01, 2010-04-15T14:56Z

Prova...

```php
			<?php
			echo mysql_num_rows($result);
			if (mysql_num_rows($result) == 0) 
			{	?>
			Inget planerat.
			<?php
			}else{  
			?>	
			Potatismos!
			<?php
			}	?>
```

...och se vad som skrivs ut om det saknas resultat.

Permalänk: https://www.webforum.nu/p/2233126

## #8 — TomasA, 2010-04-15T20:47Z

Saknas post i resultatet kommer det ingenting.
Finns post kommer siffra för antalet poster typ 1
Sen "Potatismos"

Jag förstår inte varför inte texten inte kommer ut när poster saknas.
Skall jag hålla texten inom någon typ av echo kod?

Permalänk: https://www.webforum.nu/p/2233151

## #9 — The_Hulk, 2010-04-16T06:47Z

Kan du kopiera in din exakta kod (förutom användarnamn och lösenord)?
Då kan vi utesluta att det missat något i koden.

Permalänk: https://www.webforum.nu/p/2233166

## #10 — TomasA, 2010-04-16T08:34Z

Här kommer den lite utökad.

```php
	<?php
	{	?>
	<?php	
	$i = 0;
	while ($myrow = mysql_fetch_assoc($result) AND $i <= 4) 			{	
	$event = $myrow["event"];
	$var = $myrow["var"];
	$dag = $myrow["dag"];
	$eventdag = $myrow["eventdag"];			
	$tid = $myrow["tid"];
	$om = $myrow["om"];
	?>
 
            <?php 

            if (mysql_num_rows($result) == 0)  
            {  	echo  "Inget planerat." ;
			}else{   
            ?>     
	<?php
	}	?>
	<div class="dag"><?php print $eventdag;?>&nbsp; kl: <?php print $tid;?></div>
	<div class="rubb"><?php print $event;?></div>
	<div class="teas"> Var: <?php print $var;?><br>
	<?php
		if ($myrow["om"] == "" )
		{	?>
			
	<?php
	}else{  
	?>
	<a href="kalenda.php?go=en_artikel&kalendid=<?php print $myrow["kalendid"];?>"><b>Läs mer här.</a>
	
	<?php
	}	?>
				
	<?php
	$i++;
	}	?>
```

OK
Allt funkar perfekt när urvalet innehåller poster, 
men när urvalet är tomt kommer INTE den text 
jag vill skall komma fra "Inget planerat."
 :OO - 
Som fler kanske ser är jag självlärd och har säkert en del 
fel och onödigheter i koden men någonstans måste man ju börja.
 :r

Permalänk: https://www.webforum.nu/p/2233188

## #11 — @nders, 2010-04-16T08:36Z

Du gör själva utskriften inne i while-loopen - och while-loopen kommer du ju inte in i om du inte har något resultat. Flytta ut den ovanför.

I övrigt har du väldigt mycket onödiga \<?php och ?\>-taggar. De påverkar inte koden nämnvärt - förutom att den blir lite svårare att läsa.

Permalänk: https://www.webforum.nu/p/2233189

## #12 — @nders, 2010-04-16T08:40Z

Det skulle kunna se ut något sånt här med flyttad kontroll och bortrensade php-taggar:

```php
<?php
    {       
    $i = 0;
    if (mysql_num_rows($result) == 0)  
         echo  "Inget planerat." ;

    while ($myrow = mysql_fetch_assoc($result) AND $i <= 4)             {    
    $event = $myrow["event"];
    $var = $myrow["var"];
    $dag = $myrow["dag"];
    $eventdag = $myrow["eventdag"];            
    $tid = $myrow["tid"];
    $om = $myrow["om"];
    ?>
    <div class="dag"><?php print $eventdag;?>&nbsp; kl: <?php print $tid;?></div>
    <div class="rubb"><?php print $event;?></div>
    <div class="teas"> Var: <?php print $var;?><br>
    <?php
        if ($myrow["om"] == "" )
        { 
            
    }else{  
    ?>
    <a href="kalenda.php?go=en_artikel&kalendid=<?php print $myrow["kalendid"];?>"><b>Läs mer här.</a>
    <?php
    }  
    $i++;
    }    ?>
```

Egentligen kan jag inte php - men det borde framgå vad jag menar i alla fall.  :)

Permalänk: https://www.webforum.nu/p/2233191

## #13 — The_Hulk, 2010-04-16T09:13Z

Om du bara vill hämta ut 5 rader så är det bättre att begränsa det i SQL-fråga, det kan du göra med 

```
SELECT * FROM minTabell LIMIT 5
```

Permalänk: https://www.webforum.nu/p/2233193

## #14 — TomasA, 2010-04-20T17:56Z

Stort tack. Nu funkar det kanon.
Nu förstår jag lite bättre och håller 
på att rensa kod i fler filer. 
Mycket hjälp fick jan när jag jämförde @nders kod med min.
Härligt! 
Tack. :bire

Permalänk: https://www.webforum.nu/p/2233417

## #15 — @nders, 2010-04-20T18:50Z

Nice, kul att hjälpa till även när det gäller språk jag själv inte riktigt hanterar.  :)

Mvh

Permalänk: https://www.webforum.nu/p/2233425

---

Tråden på webben: https://www.webforum.nu/amne/php/183143-if-funktion-för-antal-poster
