24. april 2014 - 07:11
Der er
10 kommentarer og 1 løsning
if og else
Hej. Jeg har flg: <?php $wins = mysql_query("SELECT place, count(place) AS amount FROM cl_yellow WHERE name=$id"); while($wa=mysql_fetch_array($wins)){ echo "<span class='legend'>Completed: $wa[amount] time(s)</span><br>"; } ?> der virker udmærket. Blot kunne jeg tænke mig, at hvis amount er lig 1, skal der udskrives "time", men hvis mere end 1 "times" Er der en der vil være så rar at forfatte noget der kan bruges?
Annonceindlæg fra IBM
24. april 2014 - 07:52
#1
echo "<span class='legend'>Completed: $wa['amount'] ". ($wa['amount'] > 1 ? 'times' : 'time') ."</span><br>";
24. april 2014 - 08:41
#2
Hej viperine. Tusind tak. Det var eddermame hurtig. Måtte fjerne ' om $wa[amount] ellers gav det en blank side: echo "<span class='legend'>Completed: $wa[amount] ". ($wa[amount] > 1 ? 'times' : 'time') ."</span><br>"; Lige et lille tillægsspørgsmål. Hvordan undgår jeg at den udskriver noget hvis amount = 0 (nul)?
24. april 2014 - 08:59
#3
En måske ikke så elegant løsning, men: switch($wa[amount]){ case 0: //Gør ingenting... break; case 1: echo "<span class='legend'>Completed: $wa[amount] time</span><br>"; break; default: echo "<span class='legend'>Completed: $wa[amount] times</span><br>"; }
24. april 2014 - 09:00
#4
Evt. kan du jo også lave: if($wa[amount] > 0){ echo "<span class='legend'>Completed: $wa[amount] ". ($wa[amount] > 1 ? 'times' : 'time') ."</span><br>"; }
24. april 2014 - 09:23
#5
Hej Jakobdo. Måtte ændre "if($wa[amount] > 0){" til "if($wa[amount] > 0)" og det virker. Dit første forslag har jeg ikke prøvet endnu. Er det i orden at jeg lige venter på et svar fra viperine, og evt dele pointene med jer?
24. april 2014 - 09:27
#6
Smid du bare point mod viperine.
24. april 2014 - 09:27
#7
Og jeg gætter du mener koden skal være sådan: if($wa["amount"] > 0){ er det ikke korrekt forstået ?
24. april 2014 - 09:34
#8
Korrekt; blot uden { til sidst.
24. april 2014 - 09:38
#9
Om du vil have { kode }eller ej. afhænger blot at om din if er efterfulgt af en eller flere linjer kode. Disse vil give samme resultat. if($wa['amount'] > 0) echo '<span class="legend">Completed: '.$wa['amount] . (($wa['amount'] > 1) ? ' times' : ' time') . '</span><br>'; if($wa['amount'] > 0){ echo '<span class="legend">Completed: '.$wa['amount] . (($wa['amount'] > 1) ? ' times' : ' time') . '</span><br>'; } men test så disse: $noget = true; if($noget){ echo "linje 1<br>"; echo "linje 2<br>"; } if($noget) echo "linje 1<br>"; echo "linje 2<br>"; kontra denne: $noget = false; if($noget){ echo "linje 1<br>"; echo "linje 2<br>"; } if($noget) echo "linje 1<br>"; echo "linje 2<br>";
24. april 2014 - 09:45
#10
Takker mange gange jakobdo. Der er noget jeg lige skal ha prøvet og nærstuderet lidt.
26. april 2014 - 09:34
#11
slutter