loopen binnen een loop??

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Karel

karel

04/04/2007 09:09:00
Quote Anchor link
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;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<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>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?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.
Gewijzigd op 01/01/1970 01:00:00 door Karel
 
PHP hulp

PHP hulp

19/11/2024 09:36:57
 
Arjan Schuurman

Arjan Schuurman

04/04/2007 09:50:00
Quote Anchor link
Een loop de loop is vrij simpel... Noem een $i gewoon anders...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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++;
}

?>
 
Karel

karel

04/04/2007 09:59:00
Quote Anchor link
Kun je wat duidelijker zijn?
Waar staat je $begina = 30; en je $beginb = $a * 10; bijvoorbeeld
voor?

Ik begrijp er weinig van.
 
Arjan Schuurman

Arjan Schuurman

04/04/2007 10:04:00
Quote Anchor link
$a keer 10

gewoon een manier om even te laten zien dat er verschillende for worden laten zien..
 
Bart van der veen

bart van der veen

04/04/2007 10:07:00
Quote Anchor link
mijn laatste projectje had ziekenhuizen met afdelingen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?
$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>
'
;
?>
Gewijzigd op 01/01/1970 01:00:00 door bart van der veen
 
Karel

karel

04/04/2007 10:17:00
Quote Anchor link
Bedankt, ik ga even kijken of ik er wat mee kan!
 
Karel

karel

04/04/2007 10:33:00
Quote Anchor link
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?
 
Jurgen assaasas

Jurgen assaasas

04/04/2007 10:57:00
Quote Anchor link
Jah dat kan gewoon, zolang je de goede data maar invult :) het resultaat bij de query blijft toch hetzelfde.
 
Karel

karel

04/04/2007 13:15:00
Quote Anchor link
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;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?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?
Gewijzigd op 01/01/1970 01:00:00 door karel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.