Zum Inhalt springen

PHP / MySQL -> Aufbau einer dynamischen HTML Seite


Empfohlene Beiträge

Hallo,

ich habe folgende DB Tabellen:

abteilung (primary anr, name)

person ( primary pnr, vorname, nachname, tel, email, foreign key f_anr )

Ich möchte eine Administrationsmaske für die Personentabelle programmieren.

Auf dieser werden alle Datensätze aus der Tabelle peson aufgelistet. funktioniert auch schon.

Es werden alle Felder bis auf das Feld Abteilung als Textfield angezeigt. Das Feld Abteilung ist ein Fremdschlüssel, diesen möchte ich über ein Dropdown Feld anzeigen lassen, da der User nur vorhandene Abteilungen auswählen können soll, wenn er einen Datensatz editiert.

Wie schaffe ich es, dass er mir in dem dynamischen Template die richtige Abteilung auf option selected setzt und die anderen normal?

Schnipsel aus meinem Template:

<select name="abteilung" class="Auswahl">

<!-- BEGIN department -->

<option{DEFAULT}>{ABTEILUNG}</option>

<!-- END department -->

</select>

Ich habe eine ForSchleife, die mir alle Personen Daten andruckt.

Jetzt kann ich doch ein SQL Statement machen, das mir alle Abteilungen ausgibt und ein SQL Statement, das mir für die Person, bei der ich gerade bin die Abteilung ausgibt.

Wenn SQL Statment 1 und 2 übereinstimmen, dann setze ich DEFAULT = selected und sonst lasse ich es leer.

Das klappt nur leider nicht.

Kann mir jemand von Euch helfen. Stimmt meine Logik nicht? Oder wie kann ich so etwas lösen?

Falls Bedarf vorhanden, poste ich auch noch mehr Code.

Danke korea1

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

hilft dir das weiter?

/*

* Session Management for PHP3

*

* © Copyright 1999-2000 NetUSE GmbH

* Kristian Koehntopp

*

* $Id: template.inc,v 1.5 2000/07/12 18:22:35 kk Exp $

*

*/

Gibt es in PHP sowas wie Pointer? Mein Problem is nur, dass ich eben wissen muss bei welcher Person ich gerade bin. Mir würde eine Variable reichen, die dann eben pro Schleifendurchlauf geändert wird.

Ich kann das nur leider nicht in der "Personenschleife" machen, sonst kommt was völlig wirres raus.

Hier mal meine Codeschnipsel aus der PHP Datei:

//Query der Personendaten selektiert
$SQLQuery = "
SELECT
p.vorname, p.nachname, p.tel, p.email, a.name, p.pnr
FROM
person p, abteilung a
WHERE
p.f_anr = a.anr
ORDER BY p.nachname
";
$DB->ExecQuery($SQLQuery);

//Befüllen des HTML TPL
for($i=0; $i<$DB->GetNumberOfRows();$i++){
$tpl->set_var(array("VORNAME" => $DB->GetValue($i,"vorname"),
"NACHNAME" => $DB->GetValue($i,"nachname"),
"TEL" => $DB->GetValue($i,"tel"),
"MAIL" => $DB->GetValue($i,"email"),
"ID" => $DB->GetValue($i,"pnr"),
));

$tpl->parse("temp","datenblatt",true);
}//eof for($i=0; $i<$DB->GetNumberOfRows();$i++)

$DB2 = new DBConnection();
$DB3 = new DBConnection();

$SQLQueryEditPerson = "SELECT a.name FROM abteilung a, person p WHERE a.anr = p.f_anr";
$DB2->ExecQuery($SQLQueryEditPerson);

$SQLQueryAbteilungDropDownMenue= "SELECT a.name AS Abteilung FROM abteilung a ";
$DB3->ExecQuery($SQLQueryAbteilungDropDownMenue);

for($i=0; $i<$DB3->GetNumberOfRows();$i++){
if($DB3->GetValue($i,"Abteilung") == $DB2->GetValue($i,"name")){
$Default = " selected";
}else{
$Default = "";
}
$tpl->set_var(array("ABTEILUNG" => $DB3->GetValue($i,"Abteilung"),
"DEFAULT" => $Default
));
$tpl->parse("temp3","department",true);
}//eof for ($i=0; $i<$DB3->GetNumberOfRows();$i++)[/PHP]

MfG korea1

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

wie meinst du das? Im HTML Template?

Kannst du mal ein kleines Beispiel machen.

Danke korea1

in der TemplateEngine die ich verwende kann ich z.b. If-Statements verwenden:

http://smarty.php.net/manual/en/language.function.if.php

dann würde ich das Template ungefähr so aufbauen:

Achtung PseudoCode! :)


<select name="abteilung" class="Auswahl">

   <!-- BEGIN department -->

   <option

      <!-- IF $Abteilung == $Default -->

      selected="selected"

      <!-- ENDIF -->

   >{ABTEILUNG}</option>

   <!-- END department -->

</select>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...