While loop volgorde op basis van lege row cells
Ik heb een tabel met 9 kolommen. kolom b,c,d,e zijn niet verplicht, de eerste 'a' wel. (de andere 4 kolommen laten we even buiten beschouwing)
nu wil ik de inhoud van die cellen weergeven met een while-loop.
maar om de output goed te krijgen moeten de rijen met kolommen b,c,d,e leeg eerst geprocessed worden.
dan de rijen met de kolommen c,d,e, leeg
dan de rijen met de kolommen d,e leeg
dan de rijen met de kolom e leeg
dan de rijen met alles gevuld.
hoe kan ik dit bereiken? hieronder mijn code.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include "connect.php";
$query = "SELECT * FROM pages";
$result = mysql_query($query);
while($pages = mysql_fetch_array($result)){
if(!empty($pages['aname'])){$a = "&a=".$pages['aname']; $a1 = $pages['aname']."/";}else{$a = '';}
if(!empty($pages['bname'])){$b = "&b=".$pages['bname']; $b1 = $pages['bname']."/";}else{$b = '';}
if(!empty($pages['cname'])){$c = "&c=".$pages['cname']; $c1 = $pages['cname']."/";}else{$c = '';}
if(!empty($pages['dname'])){$d = "&d=".$pages['dname']; $d1 = $pages['dname']."/";}else{$d = '';}
if(!empty($pages['ename'])){$e = "&e=".$pages['ename']; $e1 = $pages['ename']."/";}else{$e = '';}
echo "page name: <a href='overzicht.php?id=".$pages['id'].$a.$b.$c.$d.$e."'>".$a1.$b1.$c1.$d1.$e1."</a><br />";
echo "page title: ".$pages['title']."<br />";
echo "page subtitle: ".$pages['subtitle']."<br />";
echo "<a href='edit.php?id=".$pages['id']."'>edit</a> ";
echo "<a href='delete.php?id=".$pages['id']."'>delete</a><br /><br />";
}
?>
include "connect.php";
$query = "SELECT * FROM pages";
$result = mysql_query($query);
while($pages = mysql_fetch_array($result)){
if(!empty($pages['aname'])){$a = "&a=".$pages['aname']; $a1 = $pages['aname']."/";}else{$a = '';}
if(!empty($pages['bname'])){$b = "&b=".$pages['bname']; $b1 = $pages['bname']."/";}else{$b = '';}
if(!empty($pages['cname'])){$c = "&c=".$pages['cname']; $c1 = $pages['cname']."/";}else{$c = '';}
if(!empty($pages['dname'])){$d = "&d=".$pages['dname']; $d1 = $pages['dname']."/";}else{$d = '';}
if(!empty($pages['ename'])){$e = "&e=".$pages['ename']; $e1 = $pages['ename']."/";}else{$e = '';}
echo "page name: <a href='overzicht.php?id=".$pages['id'].$a.$b.$c.$d.$e."'>".$a1.$b1.$c1.$d1.$e1."</a><br />";
echo "page title: ".$pages['title']."<br />";
echo "page subtitle: ".$pages['subtitle']."<br />";
echo "<a href='edit.php?id=".$pages['id']."'>edit</a> ";
echo "<a href='delete.php?id=".$pages['id']."'>delete</a><br /><br />";
}
?>
Dan maakt het ook niet uit als hij leeg is.
page name: <a href='overzicht.php?id=".$pages['id'].$a.$b.$c.$d.$e."'>".$a1.$b1.$c1.$d1.$e1."</a>
weet niet precies of de database genormaliseerd is. elke rij is goed voor een eigen pagina.
Toevoeging op 06/02/2012 15:33:45:
hmm de truc was zo simpel als dit:
ORDER BY aname,bname,cname,dname,ename
toch bedankt!