PHP Liste

Imadj

Grünschnabel
Hallo, Ich habe ein System, das aus meiner Datenbank einen Code und das Land ausliest.

Für Jedes Land möchte ich eine Kategorie haben, sobald man ein neues Land in die Datenbank einträgt. Der jeweilige Code soll dann im jeweiligen Land sein. Meine ersten versuche:

PHP:
<?php
include "config.php";
$kategorie = array("Basic", "Bonussystem", "Ehrenämter", "Global");
?>

<head>
<link type="text/css" rel="stylesheet" href="http://habbotimes.net/site/scripts/badges/lib/style.css" />
<script type="text/javascript" src="http://habbotimes.net/assets/lib/js/slimbox.js"></script>



<script type="text/javascript" src="http://habbotimes.net/assets/lib/js/mootools-1.2.js"></script>
<script type="text/javascript" src="http://habbotimes.net/assets/lib/js/swfobject.js"></script>

<script type="text/javascript" src="http://habbotimes.net/assets/lib/js/js_general_1.2.2.js"></script>

</head>
<body>



<div class="bdg_group"><a name="1"></a><div class="bdg_groupname"><?php echo $kategorie[0]; ?></div>
<center><div class="bdg_listbox"><ul>
<?php
$sql = "SELECT * FROM badges WHERE Land = '$kategorie[0]'";
$result = mysql_query($sql);        
while ($row = mysql_fetch_assoc($result)) { 
?>
<li class="bdg_badge tooltip" style="background-image: url(http://images.habbohotel.com/c_images/Badges/<?php echo "$row

[ code ]"; ?>.gif);"></li>
<?php
}
?>
<br clear="all"></ul></div></center></div>



</body>
 
Zuletzt bearbeitet:
Ach ganz vergessen: Es zeigt immer nur eine kategorie an, ich möchte aber dass für jedes land eine weitere kategorie angezeigt wird.
 
Wenn ich das mir so ansehe, sieht das so aus, als ob du damit nur 1 Eintrag ansprichst.

Bei deinem Echo in der while-Schleife, mach einmal die Anführungszeichen um die Variable weg, das ist nur unnötige Zeit die da vergeht. Außerdem sieht man dann, dass die Anführungszeichen um "Code" fehlen ($row['Code'])

Nebenbei, was ist für die eine Kategorie?

ist eine Kategorie ein <li></li> oder <ul><li></li></ul> ?
 
Es ist eine Schleife, es zeigt alle Bilder an die im Jeweiligen Land/Kategorei sind. Z.b. Basic.
Wenn ich jetzt aber eine neue kategorie hinmache, z.b. Bonus, dann soll es wieder das wiedergeben:
PHP:
<div class="bdg_group"><a name="1"></a><div class="bdg_groupname"><?php echo $kategorie[0]; ?></div>
<center><div class="bdg_listbox"><ul>
<?php
$sql = "SELECT * FROM badges WHERE Land = '$kategorie[0]'";
$result = mysql_query($sql);        
while ($row = mysql_fetch_assoc($result)) { 
?>
<li class="bdg_badge tooltip" style="background-image: url(http://images.habbohotel.com/c_images/Badges/<?php echo "$row

[ Code ]"; ?>.gif);"></li>
<?php
}
?>
<br clear="all"></ul></div></center></div>

allerdeings sollen da dann andere Bilder angezeigt werden, also aus Kategorie Bonus
 
Wenn ich dich richtig verstehe sollen nicht nur alle "badges" von $kategorie[0] sondern auch aus allen anderen Arrayelementen abgefragt werden.

Naja, dann frag doch einfach alle anderen Elemente aus dem Array mit ab..

PHP:
foreach($kategorie AS $Land) {
    $sql = "SELECT * FROM badges WHERE Land = '".mysql_real_escape_string($Land)."'";
   /** result und whileschleife **/
}

e:/ Wenn es aber nur 1 Land sein soll, und das Land von einer Bedinung abhängt, dann muss das natürlich auch gesagt werden.
 
Mhh, Ich denke du hast mich falsch verstanden

Ich stell mir das so vor

In der Db sind folgende einträge:


ADM - Basic
XXX - Bonus

Jetzt soll ADM in einer eigenen Kategorie sein
Und XXX auch.

___________
ADM
___________


___________
XXX
___________
 
Sollen also die durcheinander ausgelesenen Einträge in versch. Blöcken ausgegeben werden?

Y1, Y2, X1, Z1, X2, Y3, Z2, Z3, X3

Code:
<div für Y>
 Eintragen
</div>
<div für X>
 Eintragen
</div>
<div für Z>
 Eintragen
</div>

?

Wenn es so gemeint ist, dann speichere alles in ein Array und laufe erst hinterher das Array nocheinmal zur Ausgabe durch.

Wenn es nicht so gemeint ist, dann versuch einmal bitte die Zusammenhänge für dein Problem mit Pseudocode oder mit kleinen Ausschnitten zu untermalen. Außerdem wäre interessant wann welche Daten wie ausgegeben werden sollen (wann!, welche!, wie!).
Im Moment ist das für mich nicht ersichtlich.
 
Ich gehe davon aus, dass du die Bilder in der Mitte der Seite meinst.

Dann ist mein letzter Vorschlag der, meiner Meinung nach, geschickteste.

Ließ alle entsprechenden Daten aus der DB aus, speichere sie komplett in einem Array ab, sortier sie (wenn möglicht, aber das dürfte möglich sein) und gib sie dann in Schleifen aus (mehrere Schleifen?)
Das Array baust du einfach wie folgt auf (Pseudocode)

Code:
array = (
    Kategorie1 => array(Daten);
    Kategorie2 => array(Daten);
    Kategorie3 => array(Daten);
);
 
Zurück