Hey,
Ich habe gerade versucht ein mir gescriptetes Control Panel zu erweitern.
Allerdings zeigt er mir jetzt die Namen 2mal an also "XY,XY".
Es soll aber "XY,Leader 2 " angezeigt werden.
Wie scripte ich das?
Der Code:
<?php
for($f=1;$f<27;$f++)
{
echo"<tr><td><h1>".GetFrak($f)."</h1><img src='images/frak/".$f.".png'/></td>";
$sql = mysql_query("SELECT * FROM users WHERE Leader=$f");
if(mysql_num_rows($sql) == 1)
{
while($row = mysql_fetch_assoc($sql))
{
echo"<td><h1>Leader: ".$row['Name'].",".$row['Name']."</h1></td>";
}
} else {
echo"<td><h1>Leader: -</h1></td>";
}
$query = mysql_query("SELECT * FROM users WHERE Member=$f");
$rows = mysql_num_rows($query);
echo"<td><h1>Memberanzahl: ".$rows."</h1></td></tr>";
}
?>
</table>
</div>
</center>
</body>
</html>
mfG
Fraktionspanel
- Dani_Miller
- Geschlossen
- Erledigt
-
-
-
-
Jetzt wird allerdings
"Leader: Name, Leader 10"
angezeigt.
Es soll aber
"Leader: Name, Leader Name 2"
und wenn es nur einen Leader gibt soll angezeigt werden
"Leader:Name"
mfG -
ungetestet, aber vom Prinzip her vll. richtig:
PHP
Alles anzeigen<?php $sql = 'SELECT * FROM `users` WHERE `Leader` > 0'; $result = mysql_query($sql); $rows = array(); while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $rows[$row['Leader']][] = $row['Name']; } for($f=1;$f<27;$f++) { echo '<tr><td><h1>'.GetFrak($f).'</h1><img src="images/frak/'.$f.'.png" alt="" /></td>'; if(count($rows[$f])) { $leaderString = ''; foreach($rows AS $k => $v) { $leaderString .= $v['Name'] } echo '<td><h1>Leader: '.implode(', ', $leaderString).','.count($rows[$f]).'</h1></td>'; } else { echo '<td><h1>Leader: -</h1></td>'; } } ?>
Korrigiert mich gerne. Bin da inzwischen schon wieder ziemlich raus... -
(facepalm)
Ich sag nur OOP: http://www.peterkropff.de/site/php/oop.htm
Damit wirst du glücklich und die Anwendung läuft schneller...#edit: Durch die grausame Einrückung verlesen...
Och kommt schon... ka wo ihr PHP, PAWN etc gelernt habt. HABT IHR NOCH NIE WAS VON LEERZEICHEN GEHÖRT? In JEDEM Script das ich sehe, werden sie entweder missbraucht oder garnicht genutzt... Noch nie was von übersichtlichkeit gehört?
#edit again: Was wird denn in $f gespeichert? Was genau gibt GetFrac denn aus?Lg
-
(facepalm)
Ich sag nur OOP: http://www.peterkropff.de/site/php/oop.htm
Damit wirst du glücklich und die Anwendung läuft schneller...Und: WTF Warum schließt ddu die While Schleife 2mal?!
Lg
Sind natürlich dann die ganz coolen, die meinen einem Anfänger, der scheinbar nicht einmal mit einfachem Kram klarkommt, direkt OOP vorwerfen zu wollen und zu sagen: "Mach ma'!". Geil! Super! Warscheinlich selbst nur mal "OOP" gehört.BTW: Wo schließt er 'ne while() bitte 2x? :o
BTW EDIT: Was willst du mit Leerzeichen? WTF? -
TutNichts
Es ist einfacher direkt mit Objektorientierter Programmierung anzufangen, als erst unsauber zu scripten und dann umzusteigen. Ich sprech aus Erfahrung.
Und "Nur mal gehört" kann ja wohl nicht stimmen ^^.
Mein Script (Die anderen in der Warteschleife) auf CC sind auch OOP und funktionieren wunderbar. Und die prüfen das, aber richtig.
Und ich fühl mich nicht cool, nur weil ich weiß was OOP ist oder weil ich so Code, nein, weil es effektiver, schneller und oft auch sicherer ist. So spart er sich ganz viele Zeilen. Anscheinend arbeitet er ja schon mit klassen, was ich positiv finde... Aber komplett umzusteigen wär natürlich weitaus besser. Oder du gehst gleich auf ein Template System Ich empfehl dir da Laravel (http://laravel.com/)Ich bau es ja gerade richtig um...
Und ich hoffe, du bist nicht im PHP Bereich auf Easy Scripting tätig. Du müsstest ja die anderen User vergraulen wenn du dich jz schon darüber aufregst, dass ihc es unmöglich finde, dass keine Leerzeichen genutzt werden... wegen der übersichtlichkeit
Lg
-
Also ich seh da nichts von einer Klasse in seinem Code.
ZitatEs ist einfacher direkt mit Objektorientierter Programmierung anzufangen, als erst unsauber zu scripten und dann umzusteigen.
Es müssen doch aber erstmal Grundlagen vorhanden sein? Und die scheinen mir bei ihm noch nicht ausgereift zu sein.Ich bin u.a. auch im PHP Bereich auf easy-scripting tätig - man hilft wo man kann - aber guter Versuch.
Wo bitte nutzt er keine Leerzeichen? Ich verstehe dein Problem nicht? -
-
Ach das meinst du.
Stimmt.Ich dachte du redest vom Einrücken mit der Tabtaste.
-
TutNichts
Tabs != EInzelne Leerzeichen. Ja das mein ich
Was ich nicht verstehe. Wenn es 2 Owner einer Fraktion gibt, müsste er den ganzen Satz 2 mal anzeigen
Einmal: Name 1, Name1 und Name2, Name2
Er geht ja mit der While Schleife alle einträge durch und die while schleife behandelt dann ja immer den nächsten plausiblen eintrag.
Also müsste er ganz einfach gucken, ob 1 Leader da ist, dann zeigt er einen an. Wenn 2 da sind, passt er die Whileschleife dementsprechend an. Was aber nicht geht, sind beide Namen in einem durchlauf anzuzeigen. Da, wie oben, die While schleife die einträge (Also in diesem fall) nacheinander behandelt.Lg
-
So leid es mir tut, aber nun muss ich doch auch mal eben Offtopic gehen.
@iSweety: Wenn du schon Tipps gibst und meinst, Leute verbessern zu müssen, dann doch bitte richtig. OOP ist garantiert nicht schneller oder effizienter, es ist nur ein anderer Ansatz. Ich habe zwar keine Ahnung, was "CC" ist, aber die Aussage qualifiziert dich in keinem Fall, nur weil dort irgendetwas geprüft wird.
Zwar ist es nett, wenn man eine Templating Engine nutzt, aber Laravel ist definitiv keine. Was du vielleicht meinst ist Blade, die integrierte Engine in Laravel. Laravel selbst ist aber ein Full Stack MVC Framework. Und mit einem MVC-Framework zu beginnen, ohne fundamentierte Grundkenntnisse (auch mit OOP) zu haben, ist garantiert nicht sinnvoll.
-
@dead
CC = CodeCanyon. Ein Envato Marketplace.
OOP läuft allemal schneller. Zmd wenn man es mit dem Schnipsel vergleicht den er hat...OOP ist auch effizienter, da man sich u.a auch lästige Codeverdopplung sparrt, man damit schneller arbeiten kann.
btw:
Hab ich template engine geschrieben? Meinte Framework, verwechsel das iwie immer: Laravel = Framework und Smarty = Template Engine, sorry, mein fehler .Lg
-
Mit dem einen Schnipsel hier verglichen läuft alles schneller, siehe mein erster Beitrag.
Durch weniger Redundanz und somit weniger Overhead läuft die Anwendung unter Umständen schneller, aber da kommt es wieder auf ganz andere Faktoren an. Effizienter ist es aber, da gebe ich dir Recht. Nun aber zurück zum Thema.
-
breadfish.de
Hat das Thema geschlossen.