Wat ik gemaakt heb is een dynamisch overzicht. Deze bestaat uit projecten en ieder project kan op zijn beurt uit meerdere proposals bestaan.

Nu heb ik daar een uitschuif overzicht voor gemaakt. In eerste instantie zie je namelijk alle projecten. Vervolgens kun je projecten openschuiven om proposals te bekijken. Voor de projecten en de proposals heb ik nu één while loop gebruikt maar dit werkt niet omdat de projecten het aantal keer naar het scherm geschreven worden met daaronder telkens 1 proposal totdat alle proposals aan de beurt zijn gekomen.

Kan iemand me hier bij helpen? Dit is m'n code;


<style type="text/css">
a:link {color: #FFFFFF}
a:visited {color: #FFFFFF}

a.close_block:link {color: #333333}
a.close_block:visited {color: #333333}

.menu_header {
  background-color: #00264E;
  color: #FFFFFF;
} 
.menu_header { 
  background-color: #00264E; 
  color: #FFFFFF; 
} 
.menu_block { 
  background-color: #CAE3FF; 
  color: #FFFFFF; 
  width:auto; 
} 

.close_block { 
  width: 100%; 
  bottom: 0px; 
  height: 15px; 
  text-align: center; 
} 

.style2 { 
color: #FFFFFF; 
font-weight: bold; 
} 
.style5 {color: #333333} 

</style> 
<script src="scriptaculous/lib/prototype.js" type="text/javascript"></script> 
<script src="scriptaculous/lib/hide_divs.js" type="text/javascript"></script> 
<script src="scriptaculous/src/scriptaculous.js" type="text/javascript"></script> 
</head> 
<body bgcolor="00264E"> 
<p> 

<?php
$project="
SELECT
pj.pjt_projectid,
pj.pjt_productdesc,
pj.pjt_targetprice,
pj.pjt_requestedby,
pj.pjt_targetetd,
pj.pjt_productgroupid,
ps.pps_proposalid,
ps.pps_brandid,
ps.pps_annualqtyreq,
ps.pps_modelno,
ps.pps_valutaid,
ps.pps_productprice
FROM
tbl_project AS pj
LEFT JOIN
tbl_proposal AS ps
ON
pj.pjt_projectid=ps.pps_projectid";

$projectresult = mssql_query($project);

$teller=1;

while (list ($pjt_projectid,
$pjt_productdesc,
$pjt_targetprice,
$pjt_requestedby,
$pjt_targetetd,
$pjt_productgroupid,
$pps_proposalid,
$pps_brandid,
$pps_annualqtyreq,
$pps_modelno,
$pps_valutaid,
$pps_productprice) = mssql_fetch_row($projectresult)){


echo('
<table width="85%" border="1" align="center" cellpadding=0 cellspacing=0 bordercolor="#CAE3FF">
<tr>
<td width="15%" bgcolor="336699"><span class="style2">'.$pjt_productdesc.'</span></td>
<td width="15%" bgcolor="336699"><span class="style2">'.$pjt_targetprice.'</span></td>
<td width="15%" bgcolor="336699"><span class="style2">'.$pjt_requestedby.'</span></td>
<td width="15%" bgcolor="336699"><span class="style2">'.$pjt_targetetd.'</span></td>
<td width="15%" bgcolor="336699"><span class="style2">'.$pjt_productgroupid.'</span></td>
<td width="3%" bgcolor="336699"><a class="+" href="#" onClick="new Effect.SlideDown(menu_block'.$teller.'); return false";>[+]</a></td>
</tr>');


echo('
<td colspan="7"><div class="menu_block_container" id="menu_block_container">
<div class="menu_block" id="menu_block'.$teller.'">');



echo('
<table width="100%">
<tr>
<td align="center" width="17%">'.$pps_brandid.'</td>
<td align="center" width="17%">'.$pps_annualqtyreq.'</td>
<td align="center" width="13%">'.$pps_modelno.'</td>
<td align="center" width="17%">'.$pps_valutaid.'</td>
<td align="center" width="36%">'.$pps_productprice.'</td>
</tr>');

echo('
<tr>
<td><a href="new_proposal.php">Add new proposal</a></td>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
</tr>\n');

echo('
<a href="#" class="close_block" onClick="new Effect.SlideUp(menu_block'.$teller.'); return false;">close</a>
</table>
</table>'); $teller++; }
?>

-edit-
zoals te zien is, is alles opgenomen in de while loop en dan is het eigenlijk logisch dat het niet gaat zoals ik wil.

Mijn idee was om een aparte loop voor de proposals te maken maar een while loop binnen een while loop gaat volgens mij niet. Toen ik heb probeerde werkte dit in ieder geval niet.
Een loop de loop is vrij simpel... Noem een $i gewoon anders...
<?php
$begina = 30;
$counta = 0;
$countb = 0;

for ($a = $begina; $a > 0; $a--;) {
$beginb = $a * 10
echo "A: ".$a."<br>";
for ($b = $beginb; $b > 0; $b--;) {
echo " &nbsp;&bnsp; B: ".$b."<br>";
$countb++;
}
$counta++;
}
?>
Kun je wat duidelijker zijn?
Waar staat je $begina = 30; en je $beginb = $a * 10; bijvoorbeeld
voor?

Ik begrijp er weinig van.
$a keer 10

gewoon een manier om even te laten zien dat er verschillende for worden laten zien..
mijn laatste projectje had ziekenhuizen met afdelingen:
<?
$sort = $_GET[sort];
$query = "SELECT DISTINCT ziekenhuis, W_PLAATS FROM users ORDER BY '$sort'";
$result = mysql_query ($query);

echo'
<h3>De volgende ziekenhuizen zijn aangesloten:</h3>
<p>Sorteren op <a href="?page=ledenlijst&sort=ziekenhuis">ziekenhuis</a> OF <a href="?page=ledenlijst&sort=W_PLAATS">plaats</a></p>
<hr>
<table>
';
while ($row = mysql_fetch_array ($result)) {
if(!empty($row[ziekenhuis])){
echo'<tr><td class="tabeltitel">'.$row[ziekenhuis].'</td><td class="datum">'.$row[W_PLAATS].'</td>';
$query_1 = "SELECT afdeling FROM users WHERE ziekenhuis='$row[ziekenhuis]'";
$result_1 = mysql_query ($query_1);
while ($row_1 = mysql_fetch_array ($result_1)) {
if(!empty($row_1[afdeling])){
echo'<tr><td collspan=2>'.$row_1[afdeling].'</td><td>&nbsp;</td>';
}else{
echo'<tr><td collspan=2>&nbsp</td><td>&nbsp;</td>';
}
}
}
}
echo'
</table>
';
?>
Bedankt, ik ga even kijken of ik er wat mee kan!
Is dit toe te passen in mijn code? Ik werk met een LEFT JOIN en 1 query die gegevens uit 2 tabellen haalt.

Kan het eventueel met 1 while loop en een controle voor de proposals?
Jah dat kan gewoon, zolang je de goede data maar invult :) het resultaat bij de query blijft toch hetzelfde.
Ik heb een andere manier gebruikt, namelijk met een controle of het weer een nieuw project betreft of niet.

Dit is m'n huidige code;

<?php
$project="
SELECT
pj.pjt_projectid,
pj.pjt_productdesc,
pj.pjt_targetprice,
pj.pjt_requestedby,
pj.pjt_targetetd,
pj.pjt_productgroupid,
ps.pps_proposalid,
ps.pps_brandid,
ps.pps_annualqtyreq,
ps.pps_modelno,
ps.pps_valutaid,
ps.pps_productprice
FROM
tbl_project AS pj
LEFT JOIN
tbl_proposal AS ps
ON
pj.pjt_projectid=ps.pps_projectid";

$projectresult = mssql_query($project);

$teller=1;

$iVorigProject = "";
while (list ($pjt_projectid,
$pjt_productdesc,
$pjt_targetprice,
$pjt_requestedby,
$pjt_targetetd,
$pjt_productgroupid,
$pps_proposalid,
$pps_brandid,
$pps_annualqtyreq,
$pps_modelno,
$pps_valutaid,
$pps_productprice) = mssql_fetch_row($projectresult)){

if ($iVorigProject != $pjt_projectid){
{
echo('
<table width="85%" border="1" align="center" cellpadding=0 cellspacing=0 bordercolor="#CAE3FF">
<tr>
<td width="15%" bgcolor="336699"><span class="style2">'.$pjt_productdesc.'</span></td>
<td width="15%" bgcolor="336699"><span class="style2">'.$pjt_targetprice.'</span></td>
<td width="15%" bgcolor="336699"><span class="style2">'.$pjt_requestedby.'</span></td>
<td width="15%" bgcolor="336699"><span class="style2">'.$pjt_targetetd.'</span></td>
<td width="15%" bgcolor="336699"><span class="style2">'.$pjt_productgroupid.'</span></td>
<td width="3%" bgcolor="336699"><a class="+" href="#" onClick="new Effect.SlideDown(menu_block'.$teller.'); return false";>[+]</a></td>
</tr>');
}

echo('
<td colspan="7"><div class="menu_block_container" id="menu_block_container">
<div class="menu_block" id="menu_block'.$teller.'">');
}

echo('
<table width="100%">
<tr>
<td align="center" width="17%">'.$pps_brandid.'</td>
<td align="center" width="17%">'.$pps_annualqtyreq.'</td>
<td align="center" width="13%">'.$pps_modelno.'</td>
<td align="center" width="17%">'.$pps_valutaid.'</td>
<td align="center" width="36%">'.$pps_productprice.'</td>
</tr>
<tr>
<td><a href="new_proposal.php">Add new proposal</a></td>
</tr>');


echo('
<a href="#" class="close_block" onClick="new Effect.SlideUp(menu_block'.$teller.'); return false;">close</a>
</table>
</table>');
$teller++;
$iVorigProject = $pjt_projectid;
}
?>

Het begint er een beetje op te lijken. Nu komen er wel meerdere proposals onder een project te staan en worden de projecten dus niet meer dubbel naar het scherm geschreven.

Het is alleen nog zo dat iedere proposaltabel wordt afgesloten in de html uitvoer voordat er een andere proposal naar het scherm wordt geschreven. Indien er meerdere proposals aan een project hangen moet deze tabel natuurlijk na de laatste proposal worden afgesloten om in dezelfde "uitschuif" div te blijven staan. Kan iemand me verder helpen?

-edit-
Niemand die me kan helpen?

Reageren