Zur Boardunity Forenstartseite

Zurück   Boardunity Ratgeber Forum » Technik » Web Design und Grafik

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1  
Alt 27.04.2004, 12:18
neues Mitglied
 
Registriert seit: 07.2003
Ort: Ostwestfalen
Beiträge: 6

[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
  #2  
Alt 27.04.2004, 12:22
Benutzerbild von DaddyCool
Platzanweiser
 
Registriert seit: 10.2003
Ort: Niedersachsen
Beiträge: 306
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.

__________________
Fabian Martin
Fabian Martin

Blog | Twitter | XING
  #3  
Alt 27.04.2004, 12:49
neues Mitglied
 
Registriert seit: 07.2003
Ort: Ostwestfalen
Beiträge: 6
Damit komme ich leider nicht weiter.
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

  #4  
Alt 27.04.2004, 13:39
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 777
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') . '");'); 

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #5  
Alt 27.04.2004, 13:58
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.605
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

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

  #6  
Alt 27.04.2004, 14:56
neues Mitglied
 
Registriert seit: 07.2003
Ort: Ostwestfalen
Beiträge: 6
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

  #7  
Alt 27.04.2004, 16:56
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.605
Ersetz mal '$userid' mitz.B. '2' oder '3' um zu testen ob es dann geht.

  #8  
Alt 27.04.2004, 17:18
Benutzerbild von DaddyCool
Platzanweiser
 
Registriert seit: 10.2003
Ort: Niedersachsen
Beiträge: 306
Oder $userid mit $_GET['userid']

__________________
Fabian Martin
Fabian Martin

Blog | Twitter | XING
Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Das PHP Forum 4 all ShadowByte Projektvorstellung und Bewertung 4 22.06.2003 21:12






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