while schleife in einer while schleife beim tmpl sys

Kategorien: PHP & MySQL
13 Antworten
azz
azz am Mittwoch, 27. Juli 2005 um 13:23
sers, habe früher ja alles so wischi waschi gecoded aber bin grad dabei alles im oop neuzuprogrammieren, und ich schaffs nicht ne while inna while schleife zu machen. meine situation, ich habe team script, bei dem man beliebig sqoud's und beliebig member hinzufügen kann, sprich ich mach ne while für die sq's und dann in der while ne while für die members, zum auflisten ... beide sachen in ein loop zu packen geht nicht da es mehr member als sq. sind und dadurch das loop zuofft gemacht wird, also brauche ich 2 loop's das habe ich nun versucht aber nun werden gar keine members mehr angezeigt [b]team_list.tmpl:[/b] <tmpl_loop name=team> <tmpl_var name=name><br> <tmpl_loop name=member> <tmpl_var name=username><br><br> </tmpl_loop> </tmpl_loop> [b]team_list.php[/b] <? session_start(); include("admin/inc/con.inc.php"); include("admin/inc/config.inc.php"); include("admin/vlib/vlibTemplate.php"); $tmpl = new vlibTemplate("tmpl/team_list.tmpl"); $query = mysql_query ("select * from sq ORDER BY name ASC"); $rows = mysql_num_rows($query); $team = array(); while($d= mysql_fetch_array($query)) { foreach($d as $k=>$v) { $d[$k] = nl2br($d[$k]); } extract($d); array_push($team, array( &#039;id&#039; => $id, &#039;rows&#039; => $rows, &#039;name&#039; => $name, ) ); $query2 = mysql_query ("select * from login WHERE member=&#039;$d[name]&#039;"); $rows2 = mysql_num_rows ($query2); $member = array(); while($d2= mysql_fetch_array($query2)) { foreach($d2 as $k2=>$v2) { $d2[$k2] = nl2br($d2[$k2]); } extract($d2); array_push($member, array( &#039;id&#039; => $id, &#039;username&#039; => $username, &#039;email&#039; => $email, &#039;rows2&#039; => $rows2, &#039;status&#039; => $status, &#039;aufgabe&#039; => $aufgabe, ) ); } } $tmpl-> setloop(&#039;member&#039;, $member); $tmpl-> setloop(&#039;team&#039;, $team); $tmpl->pparse(); ?> design.tx-esports.com/azz/tara/newone/index.php?page=team&action=list so sieht das nun gerade aus mit dem code der hier steht. ich hoffe mir kann jmd helfen, is wichtig mfg, azz - merci schonma

Kommentare

Shakes
Shakes am Mittwoch, 27. Juli 2005 um 18:02

Team 1:
» Member 1
» Member 2
» Member 3
Team 2:
» Member 1
» Member 2
» Member 3

Willste sowas?

azz
azz am Mittwoch, 27. Juli 2005 um 22:45

jop genau

Shakes
Shakes am Donnerstag, 28. Juli 2005 um 00:09

Das der PHP-Part:

<?
session_start();
include("admin/inc/con.inc.php");
include("admin/inc/config.inc.php");
include("admin/vlib/vlibTemplate.php");
$tmpl = new vlibTemplate("tmpl/team_list.tmpl");
$query = mysql_query ("select * from sq ORDER BY name ASC", $conn); //hattest als zweites Argument den mySQL-Link vergessen (hab ma $conn dafuer hergenommen)
$rows = mysql_num_rows($query);
$teams = array();
while($d= mysql_fetch_array($query)) {
foreach($d as $k=>$v) {
$d[$k] = stripslashes(htmlspecialchars(nl2br($v))); //Sieh dir nochma an wie foreach() genau funktioniert :)
}
extract($d);

$q2 = "SELECT * FROM login WHERE member=&#039;$name&#039;"; //member: Name des Squads, $name: auch Name des Squads, nehm ich mal an
$r2 = mysql_query($q2, $conn);
$members = array();

while($d2 = mysql_fetch_array($r2)) {
foreach($d2 as $k=>$v) {
$d2[$k] = stripslashes(htmlspecialchars(nl2br($v)));
}
extract($d2);

array_push($members, array(
&#039;id&#039; => $id,
&#039;username&#039; => $username,
&#039;email&#039; => $email,
&#039;rows2&#039; => $rows2, // was das?
&#039;status&#039; => $status,
&#039;aufgabe&#039; => $aufgabe
)
);
}

array_push($teams, array(
&#039;id&#039; => $id,
&#039;rows&#039; => $rows, //$rows speichert nur die Anzahl der Teams, voellig unnoetig das da reinzupacken
&#039;name&#039; => $name,
&#039;members&#039; => $members //hier wird der zweite Array dem ersten übergeben, ka wievieldimensional das ist. vlibTemplate erkennt das jedenfalls ganz wunderbar
)
);
}
$tmpl-> setloop(&#039;teams&#039;, $teams);

$tmpl->pparse();
?>

kann sein das noch paar Schreibfehler drin sind, kann nimmer gradaus schaun

Shakes
Shakes am Donnerstag, 28. Juli 2005 um 00:14

Template dann nach dem Schema:

<tmpl_loop name=&#039;teams&#039;>
<u><tmpl_var name=&#039;name&#039;></u>:<br>
<tmpl_loop name=&#039;members&#039;>
&raquo; <tmpl_var name=&#039;username&#039;><br>
</tmpl_loop>
<p>
</tmpl_loop>

azz
azz am Donnerstag, 28. Juli 2005 um 00:29

sers,

fett merci schonmal, aber ganz funzts noch nicht
der sq. name wird nicht angezeigt.

und wegen den rows2 die habe ich drin wegen der abfrage wenn rows == "0" das dann dar steht das es noch keine sq. gibt ...

design.tx-esports.com/azz/tara/newone/index.php?page=team&action=list

hier siehste wies nun mit dem code aussieht

mfg, azz

azz
azz am Donnerstag, 28. Juli 2005 um 00:31

hatte grad gedacht das du evtl in line 16 der php statt $d[name] $name hernommen hast, aber da veraendert sich nix wenn ich das change also wirds daran wohl net liegen

Shakes
Shakes am Donnerstag, 28. Juli 2005 um 13:08

So sollte das dann aber gehen:


<?
session_start();
include("admin/inc/con.inc.php");
include("admin/inc/config.inc.php");
include("admin/vlib/vlibTemplate.php");
$tmpl = new vlibTemplate("tmpl/team_list.tmpl");
$query = mysql_query ("select id, name from sq ORDER BY name ASC", $conn); //!
$rows = mysql_num_rows($query);
$teams = array();
while($d = mysql_fetch_array($query)) {
extract($d);
$name = stripslashes($name);
$q2 = "SELECT id, username, email, status, aufgabe FROM login WHERE member=&#039;$name&#039;";
$r2 = mysql_query($q2, $conn);
$members = array();
while($d2 = mysql_fetch_array($r2)) {
foreach($d2 as $k=>$v) {
$d2[$k] = stripslashes(htmlspecialchars(nl2br($v)));
}
extract($d2);

array_push($members, array(
&#039;id&#039; => $id,
&#039;username&#039; => $username,
&#039;email&#039; => $email,
&#039;status&#039; => $status,
&#039;aufgabe&#039; => $aufgabe
)
);
}

array_push($teams, array(
&#039;id&#039; => $id,
&#039;rows&#039; => $rows, //?
&#039;name&#039; => $name,
&#039;members&#039; => $members //!
)
);
}
$tmpl->setloop(&#039;teams&#039;, $teams);

$tmpl->pparse();
?>

azz
azz am Donnerstag, 28. Juli 2005 um 13:56

ah funzt, wunederbar !
dick merci shakes : )

bis dann, azz

unkie
unkie am Donnerstag, 28. Juli 2005 um 15:13

azz kannst du vllt mal das template system public machen oder ein Tutorial schreiben! wäre nice weil ich habe echt kA wie ich das machen soll! mir fehlt einfach eine idee. atm greife ich noch auf smarty zurück

naja kann auch wer anderes schreiben *auf easterdom glubsch*

azz
azz am Donnerstag, 28. Juli 2005 um 22:37

hehe, das tmpl sys habe ich nicht selber gemacht, das is das vom shakes : )
wüsste au net wie ich das anstell :>

unkie
unkie am Freitag, 29. Juli 2005 um 09:17

achso :-/
naja dann werde ich den Frage :]

Shakes
Shakes am Freitag, 29. Juli 2005 um 17:04

Das ist die vlibTemplate ( vlib.sourceforge.net ), ich will sie nicht mehr missen...

Tutorials dürfts dafür schon einige geben, einfach mal danach suchen.

unkie
unkie am Freitag, 29. Juli 2005 um 17:08

aso, auch so ein fertig ding ;) Dann kann ich auch bei smarty (smarty.php.net) bleiben!

aber danke für den link! so long ;)