Fahrerübersicht (mittels php und DB) - brauche Hilfe

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Re: Fahrerübersicht (mittels php und DB) - brauche Hilfe

Beitrag von Boecki91 »

kann mir der gerade nicht so recht vorstellen hast du nen Link wo man das sehen kann?
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
IceD
Mitglied
Beiträge: 265
Registriert: 25.12.2006 19:42
Wohnort: Dresden

Re: Fahrerübersicht (mittels php und DB) - brauche Hilfe

Beitrag von IceD »

<tr class="bg3">
<!-- ENDIF -->
<td align="center" style="width: 30%;">{qualirow_gfx.DRIVERIMG}</td>
<td align="left" style="width: 70%; white-space:nowrap;">
<strong>&nbsp;{qualirow_gfx.L_PLACE}&nbsp;</strong><br />
&nbsp;{qualirow_gfx.DRIVERNAME}&nbsp;<br />
&nbsp;{qualirow_gfx.DRIVERTEAMNAME}&nbsp;
</td>
</tr>

Code: Alles auswählen

 $template->assign_block_vars('qualirow_gfx', array(
                                                                'L_PLACE'                        => $position,
                                                                'DRIVERIMG'                        => (isset($drivers[$current_driver_id]['driver_img'])) ? $drivers[$current_driver_id]['driver_img'] : '',
                                                                'DRIVERCAR'                        => (isset($drivers[$current_driver_id]['driver_car'])) ? $drivers[$current_driver_id]['driver_car'] : '',
                                                                'DRIVERNAME'                => (isset($drivers[$current_driver_id]['driver_name'])) ? $drivers[$current_driver_id]['driver_name'] : '',
                                                                'DRIVERTEAMNAME'        => (isset($drivers[$current_driver_id]['driver_team_name'])) ? $drivers[$current_driver_id]['driver_team_name'] : '')
                                                        );
hoffe das hilft, wenn ich es richtig verstanden habe, setzt er durch solch ein System solange die Struktur um, solange Datensätze in der DB vorhanden sind, allerdings versteh ich die genaue Umsetzung noch nicht.
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: Fahrerübersicht (mittels php und DB) - brauche Hilfe

Beitrag von mad-manne »

Nunja .. vorausgesetzt du weisst in deinem Code die Variablen innerhalb einer Schleife zu(so dass auch wirklich alle Daten "ankommen"), so fehlt auf jeden Fall im Template die passende Konstruktion um die Table-Row(<tr></tr>) Die musst du in folgendes "einpacken"

Code: Alles auswählen

<!-- BEGIN qualirow_gfx -->
.. / .. (Hier dein bisheriges Tabellenkonstrukt.
<!-- END qualirow_gfx -->
Hier noch etwas Lesefutter(englisch): Template Syntax

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
IceD
Mitglied
Beiträge: 265
Registriert: 25.12.2006 19:42
Wohnort: Dresden

Re: Fahrerübersicht (mittels php und DB) - brauche Hilfe

Beitrag von IceD »

danke, hab grade was gefunden.

in der Vorlage ist dieses Konstrukt etwas erklärt, nur holt er sich da statische Variablen.

Bei mir siehts im Moment so aus.

Code: Alles auswählen

//Select data from database   Drivers
$sql = "SELECT *
   FROM ". DRIVERSTATS_DRIVERS_TABLE .'
   ORDER BY driver_id DESC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
   $d_name    = $row['driver_name'];
<<hier steht noch etwas mehr>>
   $d_bi = $row['driver_birthday'];
}
/*
 * Standard Beispiel um eine Block Variable fuer das Template zu fuellen.
 * Dies wird Dir ermöglichen einen Block oder ein Array im Template darzustellen
 * Dies ist nützlich um SQL Abfragen aus der Datenbank in das Template zu überführen.

 foreach (<<hier muss irgendwie noch was rein, wahrscheinlich die Schleifenanweisung>>)
{
    $template->assign_block_vars('all_drivers', array(
// $template->assign_vars( array(
      'D_NAME'        => $d_name,
<<hier steht noch etwas mehr>>
      'D_BI'          => $d_bi,
    ));
}
Anmerkung: das im letzten Post gezeigte Bsp. stammt aus dem F1 Tip Mod und sollte kurz verdeutlichen, wo ich hinwill.
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: Fahrerübersicht (mittels php und DB) - brauche Hilfe

Beitrag von mad-manne »

Auch wenn ich schon erste Fehler entdecken kann ...
IceD hat geschrieben:<<hier steht noch etwas mehr>>
Es wäre besser, wenn du mal deine kompletten Datei(en) verlinkst, also die PHP-Datei mit dem Code und dein Template
Bitte beachten: KB:datei

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
IceD
Mitglied
Beiträge: 265
Registriert: 25.12.2006 19:42
Wohnort: Dresden

Re: Fahrerübersicht (mittels php und DB) - brauche Hilfe

Beitrag von IceD »

hier: Hier (datei erstmal wieder rausgenommen, wenn sie bei Bedarf nochmal gebraucht wird, verlink ich sie wieder.

man sieht noch die alte, auskommentierte Anweisung fürs übergeben ans Template, das hat damit auch funktioniert, leider halt nur der erste oder letzte Datensatz
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: Fahrerübersicht (mittels php und DB) - brauche Hilfe

Beitrag von mad-manne »

So ... dann will ich mal loslegen 8)

Zuerst möchte ich mal einen allgemeinen Tipp loswerden, was die Bezeichnung deiner Variablen angeht, z.B.:

Code: Alles auswählen

      'D_NAME'        => $d_name,
      'D_I_K'         => $d_i_k,
      'D_I_O'         => $d_i_o,
      'D_I_H'         => $d_i_h,
Ich würde dir dringend dazu raten etwas sinnvollere Namen zu wählen, deren Sinn du auch noch in 3 Monaten beim Lesen des Quelltextes verstehen wirst. Dabei meine ich sowohl die Variablen auf PHP-Seite, als auch die Platzhalter für die Template-Engine. Also zum Beispiel anstatt $d_i_k besser $driver_image_k oder eben anstatt D_I_K besser DRIVER_IMAGE_K.
Genaugenommen könntest du auch den Sinn des abschliessenden k noch ergänzen, da sich auch das im Moment nur dir erschliesst(aber wer weiss, wie es in 3 Monaten aussieht :wink: )

Aber jetzt zum eigentlichen Problem ...
Du gehst jeweils an 2 Stellen in deinem Code die Abfrage-Ergebnisse in einer while-Schleife durch und "baust" dort entsprechende Variablen zusammen. Diese Variablen übergibst du allerdings dann nicht innerhalb der while-Schleife, sondern erst nachdem diese beendet ist bzw. gar nicht(siehe nächster Absatz). Deshalb kann auch nur ein Datensatz im Template ankommen.

"Zwischendurch"(ab Zeile 69) hast du auch noch eine foreach-Schleife in der du ein array($some_array) durchgehst ... das array ist aber weder initialisiert noch mit irgendwelchen Werten gefüllt :roll:
Obwohl du hier richtigerweise $template->assign_block_vars nutzt, führt das aufgrund des leeren array zu gar nichts :(

FAZIT:
Du musst in beiden while-Schleifen deine "zusammengebauten" Variablen vor dem Ende der Schleife noch per $template->assign_block_vars an das Template übergeben!

Im Template musst du dann die Ausgabe deiner Datensätze jeweils in folgendes Konstrukt verpacken:

Code: Alles auswählen

<!-- BEGIN deine_fahrer -->
.. / .. (Hier dein bisheriges Tabellenkonstrukt.
<!-- END deine_fahrer -->
Die Variable deine_fahrer musst du natürlich gegen den Namen ersetzen, den du für diese Daten bei der assign_block_vars-Zuweisung benutzt hast!
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
IceD
Mitglied
Beiträge: 265
Registriert: 25.12.2006 19:42
Wohnort: Dresden

Re: Fahrerübersicht (mittels php und DB) - brauche Hilfe

Beitrag von IceD »

ok, danke schonmal. werde dies berücksichtigen und bei entsprechendem Ergebnis hier wieder was dazu schreiben.

das foreach stammt aus dem Beispiel im wiki.

PS: k bedeutet klein (quasi Passbild), o beudetet Anzug (Overall) und h Helm ;)
werde das aber beherzigen.


Edit (17:55): Danke funktioniert wunderbar.

Wie du eventuell gesehen hast, hab ich da Bilderausgaben, ist es möglich da ne If then else Anweisung mit reinzubauen, sodass der Wert für Höhe und Breite aus der Config Tabelle nur dann genommen wird, wenn das Bild höher und/oder breiter ist?

Edit (19:13): nun hab ich es auch hinbekommen, dass Team Übersicht und Fahrerübersicht nicht zusammen zusehen sind (case ' ' : ).
Die weitere Gestaltung der Ansicht mache ich später weiter, da ich den momentanen Stand gut fürs ACP gebrauchen kann. Nur da gehts jetzt richtig los. Und ich versteh das wiki in dem Punkt noch nicht ganz.
Wäre erfreut, wenn mir da jemand unter die Arme greifen könnte. :roll: :oops:

Edit (21:32): so nun tritt das erste Problem auf, kann zwar die Module hinzufügen, seh sie aber nicht.

Edit (13.5./7:53): So, Module werden angezeigt, leider noch ohne Inhalt, muss da heute Nachmittag nochmal suchen.
IceD
Mitglied
Beiträge: 265
Registriert: 25.12.2006 19:42
Wohnort: Dresden

Re: Fahrerübersicht (mittels php und DB) - brauche Hilfe

Beitrag von IceD »

habs jetzt hinbekommen, dass erstmal alles aus der DB gelesen wird. :grin:
Nun möchte ich aber das die DB vom ACP aus auch beschrieben wird, sprich das man die Settings aktuallisiert (man kann zwar hier auf absenden klicken, die Änderungen werden aber nicht übernommen). :-?
Bei den Fahrern siehts leider noch düsterer aus. Zwar hab ich die Buttons, doch da tut sich gar nix. :-? :oops:

Könnte jemand da nochmal drübersehen?


Edit (15.5./16:40): Hinzufügen kann ich jetzt, aber weder editieren noch löschen. :oops:
IceD
Mitglied
Beiträge: 265
Registriert: 25.12.2006 19:42
Wohnort: Dresden

Re: Fahrerübersicht (mittels php und DB) - brauche Hilfe

Beitrag von IceD »

Könnte jemand von den Spezis sich mal meinem Versuch annehmen, übers ACP Datensätze zu löschen bzw. zu editieren.

Hinzufügen funktioniert, leider aber nicht das oben genannte. Da ich leider aus einem bestehenden Mod das ganze für mich adaptiert habe und sich für mich keine Unschlüssigkeiten ergeben, steh ich etwas ratlos vor dem Problem.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“