while loop - How to simplify multiple switch in PHP? -
is possible simplify code? trying put cases in switch d break in first case , need echo's in html. possible? thank you!
$resultservices = mysqli_query($connecdb,"select * clients id_client = $id_client"); while($rowservice = mysqli_fetch_array($resultservices)){ $php = (int)$rowservice['php']; $java = (int)$rowservice['java']; $ruby = (int)$rowservice['ruby']; $node = (int)$rowservice['node']; } // values can "1" or "0". example: php:1, java:1, ruby:0, node:1 switch ($php) { case 0: break; case 1: echo "<li>php</li>"; break; } switch ($java) { case 0: break; case 1: echo "<li>java</li>"; break; } switch ($ruby) { case 0: break; case 1: echo "<li>ruby</li>"; break; } switch ($node) { case 0: break; case 1: echo "<li>node</li>"; break; }
while i'm not sure you're trying do, how about:
$resultservices = mysqli_query($connecdb,"select * clients id_client = $id_client"); while($rowservice = mysqli_fetch_array($resultservices)){ $service[1] = (int)$rowservice['1']; $service[2] = (int)$rowservice['1']; $service[3] = (int)$rowservice['0']; $service[4] = (int)$rowservice['1']; } foreach ($service $k=>$v) { if ($v) { echo "<li>service".$k."</li>"; } }
[edit] see we've got new variables.
while($rowservice = mysqli_fetch_array($resultservices)){ $service['php'] = (int)$rowservice['php']; $service['java'] = (int)$rowservice['java']; $service['ruby'] = (int)$rowservice['ruby']; $service['node'] = (int)$rowservice['node']; } foreach ($service $k=>$v) { if ($v) { echo "<li>".$k."</li>"; } }
although really, you're doing outputting last row of mysql, do
$resultservices = mysqli_query($connecdb,"select * clients id_client = '".mysqli_real_escape_string($connecdb, $id_client)."' order id desc limit 1"); while($rowservice = mysqli_fetch_array($resultservices)){ if ($rowservice['php']) { echo "<li>php</li>" } if ($rowservice['java']) { echo "<li>java</li>" } if ($rowservice['ruby']) { echo "<li>ruby</li>" } if ($rowservice['node']) { echo "<li>node</li>" } }
Comments
Post a Comment