PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie rufe ich templates in php richtig auf?


Andree
27.04.2004, 11:50
Wer kann mir ein wenig helfen?

In der user Tabelle habe ich mal mit folgendem SQL-Befehl ein weiteres Feld mit dem Namen "statusfeld" angelegt.

ALTER TABLE user ADD statusfeld int(1) NOT NULL default '1'
Nun mochte ich über PHP den Wert in diesem Feld abfragen.
Abfragen möchte ich diesen Wert über die "userid"

Dabei habe ich mir gedacht, dass ich das mal auf der Indexseite bei der Anzeige der eingeloggten User mache.

Also habe ich folgendes template verändert: forumhome_loggedinuser

<a href="index.php?do=statusabfrage&userid=$userid">$loggedin[musername]</a>$loggedin[invisiblemark]$loggedin[buddymark]

Die index.php habe ich dann wie folgt verändert:


//#####Statusabfrage @by pcfreak START#####
if ($_REQUEST['do'] == 'statusabfrage')
{
$status = $DB_site->query("
SELECT *
FROM user
WHERE userid = '$userid'
");

// wenn in der usertabelle im statusfeld der Wert 1 steht dann soll template test_an geöffnet werden

if($status[statusfeld] == 1){

eval('print_output("'.fetch_template('test_an'). '");');
}

// wenn in der usertabelle im statusfeld der Wert 0 steht dann soll template test_aus geöffnet werden
elseif($status[statusfeld] == 0){
eval('print_output("'.fetch_template('test_aus'). '");');
}}

//#####Statusabfrage @by pcfreak ENDE#####

// Davor habe ich den code eingefügt

eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('FORUMHOME') . '");');

Nun möchte ich ereichen das die beiden unterschiedlichen templates aufgerufen werden wenn ich einen Namen in der Onlineanzeige anklicke. Einmal das Template test_an, wenn der Status 1 im der Usertabelle im statusfeld eingetragen ist. Das Template test_aus wenn der Status 0 eingetragen ist.

Leider wird immer das Template test_aus aufgerufen, obwohl ein unterschiedlicher Status bei mehreren Usern in diesem Feld eingetragen ist.

Ich komme dabei nicht weiter.

Kann mir jemand helfen?

Vielen Dank

PcFreak

Mystics
27.04.2004, 19:51
Ändere mal:$status = $DB_site->query(" in$status = $DB_site->query_first("

Andree
27.04.2004, 21:28
Ändere mal:$status = $DB_site->query(" in$status = $DB_site->query_first("
Da ändert sich leider nichts.

Egal wie ich den code ändere. Es wird leider immer nur das template "test_aus" aufgerufen.

Ich habe z.b zwei Testuser. Einer hat im "statusfeld" in der Usertabelle eine 1, der andere die 0. Trotzdem öffnet sich nur das "test_aus" template.

Mache ich vielleicht diese Abfrage verkehrt?
<a href="index.php?do=statusabfrage&userid=$userid">$loggedin[musername]</a>$loggedin[invisiblemark]$loggedin[buddymark]
Oder gibt es eine andere Möglichkeit diesen Status abzufragen und dann je nach Status zwei verschiedene templates zu öffnen.

Habe soviel versucht, aber komme nicht weiter.

Vielen Dank
PcFreak

Mystics
27.04.2004, 21:47
Ändere malWHERE userid = '$userid'inWHERE userid = '$_REQUEST[userid]'

Andree
27.04.2004, 22:13
Vielen, vielen Dank. Ich war am verzweifeln.

Der letzte Schritt bringt mir nun das richtige Ergebnis und die Bedingung wird ausgeführt. Sowohl das template "test_an" und "test_aus" werden richtig geladen.

Vielen Dank Mystics :)

Liebe Grüße
PcFreak

Andree
27.04.2004, 23:48
Jetzt würde ich noch gerne im template den Usernamen, welchen ich angeklickt habe aufrufen.

Wie kann ich das realisieren?

Liebe Grüße
PcFreak

Mystics
27.04.2004, 23:52
Jetzt würde ich noch gerne im template den Usernamen, welchen ich angeklickt habe aufrufen.

Wie kann ich das realisieren?

Liebe Grüße
PcFreakVerwende $status[username] im Template.

Andree
28.04.2004, 00:26
Verwende $status[username] im Template.
Danke:

ich habe nämlich noch mal unter

if($status[statusfeld] == 1){

diese Abfrage gemacht

$user = $DB_site->query("
SELECT *
FROM user
WHERE userid = '$userid'
");

Da wird mir im template mit $user[username] auch der richtige Name angezeigt. Meine Abfrage ist dann wohl überflüssig.

Vielen, vielen Dank

PcFreak