art-d-sign
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 31.08.2002, 17:29   #1
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE

[PHP/mySQL] Template Problem mit if / else


Ich hab gerad ein Problem, das mich zur Verzweiflung bringt ... ich arbeite an einem templatebasierendem Newssystem.

Es soll einen Cheeck geben, ob es News gibt oder nicht. Gibt es welche, wird ein Array mit allen News erstellt (ROWS).

Gibt es keine News, wird nur ein Array mit einem Textinhalt erstellt (KEINENEWS).

Sieht so aus:

PHP-Code:

    $result 
mysql_query("SELECT id,titel,time,content FROM news WHERE status='view' ORDER BY time DESC",$dbase);

    if(empty(
$result))
    {
        
$t->set_var(array("KEINENEWS" => "Derzeit gibt es keine neuen News oder Events."));
    }
    else
    {    
        while (
$daten mysql_fetch_array($result))
        {
            
$titel=stripslashes($daten[titel]);
            
$datum=unix2date($daten[time],"long");
            
$inhalt=substr(bbcode2html($daten[content]), 0200)." ...";
            
$link="details.php?id=".$daten[id];    
    
            
$t->set_var(array("NEWSTITEL" => $titel"NEWSDATUM" => $datum"NEWSCONTENT" => $inhalt"NEWSLINK" => $link));
            
$t->parse("rows""row"true);
        }
    } 
Das Problem ist - wenn News existieren, werden diese auch ganz brav erstellt, eingebaut und und auch dargestellt.

Gibt es keine News, sollte ja eigentlich das andere Array erstellt und eingebaut werden - aber es passiert nicht. Ich hab keine Ahnung, wieso!

Im Template selbst sind {ROWS} und {KEINENEWS} eingebaut. Daher müsste entweder das eine oder andere angezeigt / eingebaut werden. Aber das funktioniert wie schon gesagt nur mit den News.

Irgendwelche Ideen?
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist gerade online   Mit Zitat antworten


Alt 31.08.2002, 17:43   #2
TP-Specialist
 
Benutzerbild von Jürgen
 
Registriert seit: Feb 2002
Ort: Wien
Jürgen bringt sich richtig einJürgen bringt sich richtig ein
Hi Adagio,

also wenn ich das richtig sehe, muss du im ersten Zweig ebenfalls das $t->parse(wasimmerdahineinkommt) angeben, sonst wird ja im Falle, dass keine News vorhanden sind, nur das Array erstellt, aber nichts ins Template eingefügt.

Kann das sein?
Jürgen ist offline   Mit Zitat antworten
Alt 31.08.2002, 17:46   #3
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Nein, das ist doch nur ein Ausschnitt der Codes. Das wird alles in der letzten Zeile "geparst".

Wenn ich zum Test das Array KEINENEWS nicht in diese if/else Abfrage baue sondern "einfach so", wird es ja dargestellt. Pack ich es aber da rein, wird es das nicht mehr. Daher bin ich ja so irritiert ...

Hier ist der ganze Code ... Du siehst, SEITENTITEL wird genauso erstellt wie KEINENEWS und wird auch ohne Probleme dargestellt. Aber pack ich das in die if/else Abfrage, gehts nicht mehr.
PHP-Code:
<?php
# News page
# Last change: 30.08.2002 19:00

    
include("../../inc/common/functions.php");
  include(
"../../inc/common/template.inc");
    include(
"../../inc/common/config.php");

  
# create Template instance called $t
    # for debugging add , "keep"
  
$t = new Template("../../tpl/news");

  
# define variables named page and box, referencing files
  
$t->set_file(array(
     
"HAUPTSEITE" => "hauptseite.html",
         
"META" => "../../inc/meta/meta.html",
         
"LOGO" => "../../inc/topnav/logo.html",
         
"NAVIGATION" => "../../inc/topnav/topnav_4.html",
         
"LEFTNAVIGATION" => "../../inc/leftnav/news.html",
         
"SMALLNAVIGATION" => "../../inc/smallnav/smallnav.html",
         
"NEWSBLOCK"  => "news.html"));

  
# extract the block named "row" from "box", creating a
  # reference to {rows} in "box".
  
$t->set_block("NEWSBLOCK""row""rows");

  
# define the variable SEITENTITEL
  
$t->set_var(array("SEITENTITEL" => "Format//Webdesign - News &amp; Events / Aktuelle News"));

    
# Get all data from the database
    
$result mysql_query("SELECT id,titel,time,content FROM news WHERE status='view' ORDER BY time DESC",$dbase);

    if(empty(
$result))
    {
        
$t->set_var(array("KEINENEWS" => "Derzeit gibt es keine neuen News oder Events."));
    }
    else
    {    
        while (
$daten mysql_fetch_array($result))
        {
            
$titel=stripslashes($daten[titel]);
            
$datum=unix2date($daten[time],"long");
            
$inhalt=substr(bbcode2html($daten[content]), 0200)." ...";
            
$link="details.php?id=".$daten[id];    
    
            
$t->set_var(array("NEWSTITEL" => $titel"NEWSDATUM" => $datum"NEWSCONTENT" => $inhalt"NEWSLINK" => $link));
            
$t->parse("rows""row"true);
        }
    }

  
# build page...
  
$t->parse("SEITE", array("NAVIGATION","META","LOGO","LEFTNAVIGATION","SMALLNAVIGATION","HAUPTSEITE"));

  
# finish and print it.
  
$t->p("SEITE");
?>
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist gerade online   Mit Zitat antworten
Alt 31.08.2002, 17:55   #4
TP-Specialist
 
Benutzerbild von Jürgen
 
Registriert seit: Feb 2002
Ort: Wien
Jürgen bringt sich richtig einJürgen bringt sich richtig ein
Oh, da hab ichs falsch verstanden. Komm grad nicht dazu, mir das genau anzusehen, aber hast wenns nur an der Abfrage liegt, hast du es schon mal mit

PHP-Code:
if ((!$result) or (empty($result)) { 
versucht - mag sein, dass er mit empty nicht das leere DB-Handle erkennt
Jürgen ist offline   Mit Zitat antworten
Alt 31.08.2002, 18:29   #5
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Nee, das geht auch nicht ... manmanman ...
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist gerade online   Mit Zitat antworten
Alt 31.08.2002, 18:33   #6
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
hm...genau dort hätt ich den fehler auch zuerst gesucht...hast dus mal mit ner mysql_affected_rows()-Überprüfung probiert?
seb ist offline   Mit Zitat antworten
Alt 31.08.2002, 18:50   #7
TP-Specialist
 
Benutzerbild von Jürgen
 
Registriert seit: Feb 2002
Ort: Wien
Jürgen bringt sich richtig einJürgen bringt sich richtig ein
Seltsam, seltsam. Zu seb's Vorschlag könntest du alternativ noch die Select-Anweisung direkt im mysql Monitor eingeben und schauen, ob da ein empty set oder eine Fehlermeldung zurückkommt.

Wenn da ein empty set ausgegeben wird, dann in der Schleife mit echo mal testen, ob das Skript überhaupt in den richtigen Zweig reingeht.

Wenn das auch ok ist, kanns ja wohl nur noch an der Methode $t->set_var liegen, wenn der Rest mit einem selbst erstellten Array funktioniert.

Ansonsten hilft bei mir manchmal, das Zeug auf die Seite legen und am nächsten Tag damit weitermachen
Jürgen ist offline   Mit Zitat antworten
Alt 01.09.2002, 00:13   #8
TP-Newbie
 
Benutzerbild von Chacky
 
Registriert seit: Jul 2001
Ort: Hilden (NRW)
Chacky macht alles soweit korrekt
Hi Adagio,

ich bin relativ neu hier, lese zwar schon ne ganze Zeit mit aber was geschrieben habe ich noch nicht.
Somit bist du der erste dem ich versuche zu helfen.

Ich denke dein Problem ist aber nicht so schwer, falls ich es richtig verstanden habe, und zwar prüfst du ja denn Inhalt von $result mit "if(empty($result))", $result wird aber immer einen Inhalt haben weil mysql_query() ein Ergebnisszeiger zurückgibt und somit hat $result immer einen Wert und "if(empty($result))" gibt FALSE zurück.

Versuch es doch mal so:

PHP-Code:
$result mysql_query("SELECT id,titel,time,content FROM news WHERE status='view' ORDER BY time DESC",$dbase);

    if(
mysql_num_rows($result) == "0")
    {
        
$t->set_var(array("KEINENEWS" => "Derzeit gibt es keine neuen News oder Events."));
    } else {    
        
// Dein Rest halt...
    


Ich hoffe mal mein erster Beitrag hier war jetzt nicht direckt totaler Quatsch!

Cu,
Chacky
Chacky ist offline   Mit Zitat antworten
Alt 02.09.2002, 11:11   #9
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Thumbs up

Hey, das war es - hätt' ich auch selbst drauf kommen, aaah

Auf alle Fälle - danke!
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist gerade online   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
[PHP/mySQL] Template Problem mit if / else [PHP/mySQL] Template Problem mit if / else
« modifikation formmailer | umleitung / redirect nach zeit »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:28 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67