While loop volgorde op basis van lege row cells
Hoi,
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.
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 />";
}
?>
Misschien in een array zetten en uitlezen met een foreach?
Dan maakt het ook niet uit als hij leeg is.
Dan maakt het ook niet uit als hij leeg is.
Je database lijkt niet genormaliseerd.
/offtopic
Maakt verder de volgorde nog uit? Anders kun je ORDER BY gaan gebruiken.
/offtopic
Maakt verder de volgorde nog uit? Anders kun je ORDER BY gaan gebruiken.
ja, zat ook aan een soort ORDER BY te denken.. weet alleen niet hoe. probleem is nl dat als een rij wordt verwerkt met de kolommen a,b,c,d,e vol en vervolgens een rij met alleen a,b gevuld, dan worden $a.$b.$c.$d.$e hieronder toch gevuld met de data uit de eerdere loop.
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!
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!




