Kanske:
<?php
if (mysql_num_rows($result) <= 4)
{
?>
<?php
}else{
print " Boka även in följande: "
?>
<?php
}
?>
14 svar · 1 038 visningar · startad av TomasA
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.
Kanske:
<?php
if (mysql_num_rows($result) <= 4)
{
?>
<?php
}else{
print " Boka även in följande: "
?>
<?php
}
?>
Flyttas från SQL.
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
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
if (mysql_num_rows($result) == 0)
{ ?>
Inget planerat.
<?php
}else{
?>
<?php
} ?>
med samma resultat - ingen test när post saknades i utvalet.
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
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å?
Om post finns i "$resultat" kommer Potatismos ut,
men inget om post saknas i resultatet ( inte ens p-krydda ;) )
Prova...
<?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.
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?
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.
Här kommer den lite utökad.
<?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;?> 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
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.
Det skulle kunna se ut något sånt här med flyttad kontroll och bortrensade php-taggar:
<?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;?> 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. :)
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
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