Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Web Design und Grafik (https://boardunity.de/web-design-grafik-f29.html)
-   -   [php] vBullitin3 "templates über php aufrufen (https://boardunity.de/php-vbullitin3-templates-ber-php-aufrufen-t1769.html)

PcFreak 27.04.2004 11:18

[php] vBullitin3 "templates über php aufrufen
 
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.

PHP-Code:

ALTER TABLE user ADD statusfeld int(1NOT 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

PHP-Code:

<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:


PHP-Code:

//#####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

DaddyCool 27.04.2004 11:22

Du solltest aus "$DB_site->query(" -> "$DB_site->query_first(" (ohne Häckchen) machen.

Dann klappts auch mit der Abfrage. Ansonsten arbeitest du nur mit der Ergebniskennung weiter, und nicht mit dem eigentlichen Ergebnis der Abfrage.

PcFreak 27.04.2004 11:49

Damit komme ich leider nicht weiter. :confused:
Ich verstehe nicht wie du das meinst, "mit der Ergebnisskennung" weiterarbeiten?

Kannst du mir das vielleicht mal an meinem code erklären wie ich ihn ändern sollte?
Das wäre sehr nett, da ich erst vor kurzem angefangen habe mich ein wenig mit php zu beschäftigen. :)

Vielen Dank für deine Mühe
PcFreak

Patrick Gotthardt 27.04.2004 12:39

Laut DaddyCool:
PHP-Code:

//#####Statusabfrage @by pcfreak START#####
 
if ($_REQUEST['do'] == 'statusabfrage')
 {
     
$status $DB_site->query_first("
         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') . '");'); 


MrNase 27.04.2004 12:58

Ich würde
PHP-Code:

     if($status['statusfeld']){
       
       eval(
'print_output("'.fetch_template('test_an'). '");');
       }
   else
        eval(
'print_output("'.fetch_template('test_aus'). '");');
       } 

benutzen. Aber was weiß ich denn schon :rolleyes:

Bist du dir sicher, dass die Tabelle 'user' und nicht z.B. vb3_user heißt?
Ersetze da oben user mal mit " . TABLE_PREFIX . "user :)

PcFreak 27.04.2004 13:56

Zitat:

Zitat von MrNase
Bist du dir sicher, dass die Tabelle 'user' und nicht z.B. vb3_user heißt?
Ersetze da oben user mal mit " . TABLE_PREFIX . "user :)

Nee, die heißt tatsächlich user.

Leider wird trotz dieser Änderung immer nur das template "test_aus" aufgerufen.

Noch jemand eine Idee?

Liebe Grüße
PcFreak

MrNase 27.04.2004 15:56

Ersetz mal '$userid' mitz.B. '2' oder '3' um zu testen ob es dann geht.

DaddyCool 27.04.2004 16:18

Oder $userid mit $_GET['userid']


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:24 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25