YourWBB


yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB 2.3.x » [WBB 2.3.x] Ideen, Wünsche und Suche » Ausgabe einer while-Schleife im Template? » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 1.008 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Dieses Thema wurde als erledigt markiert. Thread erledigt

Zum Ende der Seite springen Ausgabe einer while-Schleife im Template?
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Teh'leth Teh'leth ist männlich
Mitglied


Dabei seit: 10.04.04
Beiträge: 55

 Ausgabe einer while-Schleife im Template? Antworten Zitieren Editieren Melden       UP

Hallo zusammen,
ich versuche mich grade am auslesen aus einer SQL-Datenbank. Das klappt soweit auch. Das folgende PHP-Scripts gibt mir einen bestimmten Datensatz aus und das passt auch soweit. Der nächste Schritt wäre jetzt für mich, daß alles in ein WBB-Template zu bekommen.

Das wäre meine label.php-Datei:
code:
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:
<?php
require('./global.php');

if ($_GET['label'] == '')
{
	eval("\$tpl->output(\"".$tpl->get("labels")."\");");
}

if ($_GET['label'] == 'blabla') 
{
	$anfrage = "SELECT * FROM bb2_threads WHERE boardid= 7 AND shortinfo LIKE '%BlaBla%' ORDER BY topic ASC" ; 
}

if ($_GET['label'] == 'foobar')
{
	$anfrage = "SELECT * FROM bb2_threads WHERE boardid= 7 AND shortinfo LIKE '%Foo Bar%' ORDER BY topic ASC" ;
}

$ergebnis = mysql_query($anfrage ); 

echo '<div>'; 
while ($zeile = mysql_fetch_array( $ergebnis, MYSQL_ASSOC)) 
{ 
echo "<a href='thread.php?threadid=".$zeile['threadid']."'><b>". $zeile['topic'] . "</b></a><br />"; 
echo "<span class='shortinfo'>".$zeile['shortinfo'] . "</span><br />"; 
} 
echo "</div>"; 

mysql_free_result($ergebnis);

?>


Wie bekomm ich die Ausgabe jetzt in ein WBB2.x Template? Wie müsste in etwa das passende label.tpl aussehen?

Vielen Dank im voraus!
12.08.08 20:19 Teh'leth ist offline E-Mail Finden Als Freund hinzufügen
[kamui]
~


images/avatars/avatar-4963.gif

Dabei seit: 27.04.05
Beiträge: 2.992

Antworten Zitieren Editieren Melden       UP

Gehört in den wBB2-Bereich Augenzwinkern

Schau mal wie die Programmierer von WoltLab das Problem gelöst haben.

Das kann man in der usercp.php z.B. sehen, wenn die Profilfelder (Herkunft, ...) ausgelesen werden Zunge raus
12.08.08 20:25 [kamui] ist offline Finden Als Freund hinzufügen
Agi Agi ist männlich
TEAM - PHP Freak

images/avatars/avatar-5240.gif

Dabei seit: 22.11.04
Beiträge: 2.628
Fähigkeiten: WBB3 Profi
Forenversion: 3.1

Antworten Zitieren Editieren Melden       UP

-> Verschoben

Zuerst würde ich dir raten, die WBB2 Datenbankklasse zu verwenden.

Also, das sieht wie folgt aus:
Du machst 2 Templates. Das Eine (labels.tpl) hast du schon.

Dort fügst du an die Stelle im Template labels, an die die While Ausgabe kommen soll, jetzt zb einfach $label ein.

Dann machst du ein zweites Template namens labelsbit.tpl und fügst dort nur den Code ein, der von der While Schleife ausgegeben werden soll.

In diesem Fall wäre das:

code:
1:
2:
<div><a href="thread.php?threadid="$zeile[threadid]"><b>$zeile[topic]</b></a><br />
<span class="shortinfo">$zeile[shortinfo]</span><br /></div>




Die PHP Datei sollte so aussehen:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
<?php
require('./global.php');

if (isset($_GET['label'])) $label $_GET['label'];
else $label '';

if ($label == 'blabla') {
    $anfrage $db->query("SELECT * FROM bb".$n."_threads WHERE boardid= 7 AND shortinfo LIKE '%BlaBla%' ORDER BY topic ASC"); 
}

if ($label == 'foobar')
{
    $anfrage $db->query("SELECT * FROM bb".$n."_threads WHERE boardid= 7 AND shortinfo LIKE '%Foo Bar%' ORDER BY topic ASC");
}



while ($zeile $db->fetch_array($anfrage)) 
{ 
eval("\$label .= \"".$tpl->get("labelsbit")."\";");
} 
eval("\$tpl->output(\"".$tpl->get("labels")."\");"); 
?>


Sollte so funktionieren.

__________________

12.08.08 20:30 Agi ist offline Finden Als Freund hinzufügen
Ghostmaster
Das Böse

images/avatars/avatar-4371.gif

Dabei seit: 17.01.04
Beiträge: 6.440
Fähigkeiten: WBB2 Profi
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

So jetzt machen wir das mal schön zum WBB2 Standard:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?php
require('./global.php');

$label = addslashes($_GET['label']);

if ($label == 'blabla') $anfrage = $db->query("SELECT * FROM bb".$n."_threads WHERE boardid= 7 AND shortinfo LIKE '%BlaBla%' ORDER BY topic ASC"); 
if ($label == 'foobar') $anfrage = $db->query("SELECT * FROM bb".$n."_threads WHERE boardid= 7 AND shortinfo LIKE '%Foo Bar%' ORDER BY topic ASC");
while ($zeile = $db->fetch_array($ergebnis)) { 
	eval ("\$labelbit .= \"".$tpl->get("labels_bit")."\";");
} 
eval("\$tpl->output(\"".$tpl->get("labels")."\");");
?>


Dann hast du 2 Templates.
1x das normale "labels" und das "labels_bit".

Das "labels_bit" sieht dann so aus:

code:
1:
<div><span class="normalfont"><a href="thread.php?threadid=$zeile[threadid]"><b>$zeile[topic]</b></a></span><br /><span class="shortinfo">$zeile[shortinfo]</span><br /></div> 


Und im Templates "labels" baust du dann die Variable $labelbit irgendwo an.
12.08.08 20:30 Ghostmaster ist offline Finden Als Freund hinzufügen
Teh'leth Teh'leth ist männlich
Mitglied


Dabei seit: 10.04.04
Beiträge: 55

Themenstarter Thema begonnen von Teh'leth
Antworten Zitieren Editieren Melden       UP

Hey... das waren ja mal schnelle Antworten.
Wird gleich mal ausprobiert. Vielen Dank!

EDIT:
Die Version von agi läuft schon ganz gut.

2 Fragen noch:
Bei der Ausgabe wird vor der Ausgabe der Schleife nochmal der das keyword ausgeben wonach gefiltert wird. Also bei label.php?label=blabla wird nochmal als Text "blabla" und dann erst die eigentlichen Datensätze ausgegeben. Wie bekomm ich das erste "blabla" weg?

Bei dem Fall wo nur label.php aufgerufen wird, gibt es noch eine Fehlermeldung:
Zitat:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/htdocs/.../acp/lib/class_db_mysql.php on line 83

Müsst ich da jetzt noch diese Datei anpassen, daß alles reibungslos läuft?

EDIT 2:
Ein Kollege hat nochmal drüber geschaut und jetzt läuft alles super!
Thread kann als erledigt gekennzeichnet werden! fröhlich

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Teh'leth: 13.08.08 12:32.

12.08.08 20:38 Teh'leth ist offline E-Mail Finden Als Freund hinzufügen
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB 2.3.x » [WBB 2.3.x] Ideen, Wünsche und Suche » Ausgabe einer while-Schleife im Template?