ilch Forum » Allgemein » HTML, PHP, SQL,... » Templatebedingungen -> OPERATOREN HILFE!

Geschlossen
  1. #1
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Moin!

    Auszug aus der Doku:
    ZitatZitat
    ...
    Als Vergleichsoperatoren sind bis 1.1I ==,!=,<>,>=,<= möglich, ab 1.1I dann zusätzlich noch > und <
    ...


    Ich hätte jetzt gedacht, das der Operator " <> " für "NICHT LEER" steht...

    Ich möchte nämlich prüfen, ob ein Bild in der Datenbank vorhanden ist. Wenn JA, dann HTMLCODE, ansonsten nix.

    Hoffe, ihr könnt mir helfen...

    Gruß

    CeeJay!


    verwendete ilch Version: 1.1 P
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ja du liest die spalte aus und prüfst ob dein Bild da ist oder nicht

    also so z.B.

    if ($row['bild'] == " ") {
    kein Bild
    }
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    lächeln das ist ja PHP

    ich mein diese hier:

    {_if_{bild2}!=''}<!-- Wenn Bild 2 NICHT LEER, DANN folgenden CODE: -->
    <a href="#"><img src="include/images/inserate/slider/{bild2}" alt=""></a>
    {/_endif}
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ja durchaus ist das php ...


    funktioniert das was du gepostet hast oder nicht?
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    So richtig verstehe ich das Problem noch nicht.
    Da Du
    ZitatZitat
    bild2

    als Template-Variable sowieso in der php setzt, kannst Du doch da auch gleich prüfen, ob sie leer ist.
    Oder so wie Du es hast...


    Zuletzt modifiziert von Outi77 am 03.03.2014 - 11:13:19
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Ok, dann hole ich nochmal etwas weiter aus:

    Ich habe einen Slider, der mir unter dem großen Bild gleich die Thumbs mit anzeigt. Bild1, Bild2, Bild3... Bild20.

    Sagen wir mal, jemand hat nur 3 Bilder hochgeladen, dann gibt es das 4.te Bild in der DB nicht (Bild4=LEER), das Ganze natürlich bis Bild20 <- LEER.

    Trotzdem sehe ich jetzt "thumbs" meiner Bilder, die ja aber garnicht existieren.. deswegen möchte ich bei der Sliderausgabe folgendes machen:

    Wenn Bild 1 da, dann <a href="#"><img src="include/images/inserate/slider/{bild1}" alt=""></a>
    Wenn Bild 2 da, dann <a href="#"><img src="include/images/inserate/slider/{bild2}" alt=""></a>
    Wenn Bild 3 da, dann <a href="#"><img src="include/images/inserate/slider/{bild3}" alt=""></a>
    ... bis Bild 20 halt.
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    ZitatZitat geschrieben von holz
    ja durchaus ist das php ...


    funktioniert das was du gepostet hast oder nicht?


    läuft leider nicht...
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    OK andere Frage: wo setzt Du denn die Variablen {bild1}, {bild2} usw ?
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    in der php

    Auszug:
    $abfrage	 = 'SELECT * FROM prefix_inserate WHERE `id` = "'.$id.'"';
    $ergebnis	 = db_query($abfrage);
    while($row = db_fetch_object($ergebnis)) {
    			...
    			$tpl->set("bild1", $row->bild1);
    			$tpl->set("bild2", $row->bild2);
    			$tpl->set("bild3", $row->bild3);
    			$tpl->set("bild4", $row->bild4);
    			$tpl->set("bild5", $row->bild5);
    			$tpl->set("bild6", $row->bild6);
    			$tpl->set("bild7", $row->bild7);
    			$tpl->set("bild8", $row->bild8);
    			$tpl->set("bild9", $row->bild9);
    			$tpl->set("bild10", $row->bild10);
    			$tpl->set("bild11", $row->bild11);
    			$tpl->set("bild12", $row->bild12);
    			$tpl->set("bild13", $row->bild13);
    			$tpl->set("bild14", $row->bild14);
    			$tpl->set("bild15", $row->bild15);
    			$tpl->set("bild16", $row->bild16);
    			$tpl->set("bild17", $row->bild17);
    			$tpl->set("bild18", $row->bild18);
    			$tpl->set("bild19", $row->bild19);
    			$tpl->set("bild20", $row->bild20);
    ...
    		}
    $tpl->out(1);


    In der HTM greife ich dann auf die Variablen zu.


    Zuletzt modifiziert von CeeJay am 03.03.2014 - 11:40:40
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Dann sollte Dein Ansatz doch aber eigentlich funktionieren:
    {_if_{bild1}!=''}<a href="#"><img src="include/images/inserate/slider/{bild1}" alt=""></a>{/_endif}{_if_{bild1}==''}{/_endif}

    Eventuell fehlte die Bedingung, wenn es nicht vorhanden ist?
    Oder in der php nur ausgeben, wenn nicht leer...
    if (file_exist($row['bild1'])) {
    $bild1 = '<a href="#"><img src="'.$row['bild1'].'";
    } else {
    $bild1 = '';
    }
    $tpl->set...

    Dann aber die komplette Ausgabe in der htm in {bild1} speichern.


    Zuletzt modifiziert von Outi77 am 03.03.2014 - 12:44:49
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    ZitatZitat geschrieben von Outi77
    Dann sollte Dein Ansatz doch aber eigentlich funktionieren:
    {_if_{bild1}!=''}<a href="#"><img src="include/images/inserate/slider/{bild1}" alt=""></a>{/_endif}{_if_{bild1}==''}{/_endif}

    Eventuell fehlte die Bedingung, wenn es nicht vorhanden ist?
    Oder in der php nur ausgeben, wenn nicht leer...
    if (file_exist($row['bild1'])) {
    $bild1 = '<a href="#"><img src="'.$row['bild1'].'";
    } else {
    $bild1 = '';
    }
    $tpl->set...

    Dann aber die komplette Ausgabe in der htm in {bild1} speichern.


    Zuletzt modifiziert von Outi77 am 03.03.2014 - 12:44:49


    Den Ansatz finde ich sehr gut! 1 Problem habe ich allerdings noch: bild1 ist ja kein File binär in der DB abgelegt, sondern nur der Dateiname - Pfad, in dem das bild liegt, gebe ich selbst an. (Die Bilder existieren auch, das habe ich schon geprüft)
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.675
    Beitragswertungen
    1212 Beitragspunkte
    DB und File Prüfung

    $pfad = 'include/images/inserate/slider/';
    if ($row['bild'] && file_exist($pfad . $row['bild'])) {
    	$bild = '<a href="#"><img src = "' . $pfad . $row['bild'] . '" alt="" /></a>';
    } else {
    	$bild = '';
    }
    $tpl->set();


    Nur File ohne DB
    $pfad = 'include/images/inserate/slider/';
    if (file_exist($pfad . $row['bild'])) {
    	$bild = '<a href="#"><img src = "' . $pfad . $row['bild'] . '" alt="" /></a>';
    } else {
    	$bild = '';
    }
    $tpl->set();



    Zuletzt modifiziert von Lord|Schirmer am 03.03.2014 - 13:40:13
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Ja ok, ich habs am Handy geschrieben und sicher Einiges vereinfacht dargestellt.
    Ganz genau ist es, wie Lord es schreibt...
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Ahrtas Moderator
    Registriert seit
    17.12.2007
    Beiträge
    2.368
    Beitragswertungen
    210 Beitragspunkte
    Wie wärs mit "empty"?

    if (!empty($row['bild'])) {
    // Bild-Ausgabe
    } else {
    // tuh nichts
    }



    Wenn du allerdings die Slider-Elemente aus der DB liest, dann prüf ob die Variable etwas enhält und ob die Datei existiert.

    if (!empty($row['bild']) && file_exist($pfad . $row['bild'])) {
    // Bild-Ausgabe
    } else {
    // tuh nichts
    }



    Zuletzt modifiziert von Ahrtas am 03.03.2014 - 19:31:22
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also wenn du 20 Bilder hast solltest du das auf jeden Fall in einer Schleife machen.
    Das geht selbst im Template, wird z.B. auch beim select und options genutzt.

    {_list_images@<a href="#"><img src="include/images/inserate/slider/%1" alt=""></a>}


    $path = 'include/images/inserate/slider/';
    $images = '';
    for ($i = 1; $i <= 20; $i++) {
        $fileName = $row->{'bild' . $i};
        $currentImage = $path . $fileName;
        if (!empty($fileName) && file_exists($currentImage)) {
            $images .= $tpl->list_get('images', array($fileName));
        }
    }
    $tpl->set('images', $images);



    Zuletzt modifiziert von Mairu am 03.03.2014 - 22:14:16
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Super Leute, vielen Dank für die vielen Ideen!

    Letztendlich habe ich es wie Holz angesetzt hat, gelöst - ich prüfe beim Hochladen der Bilder, ob diese existieren bzw. da sind, wenn ja, gibts einen eintrag + erstellung von thumbs, wenn nein, passiert nix. lächeln
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten