Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

if/else Fallunterscheidung

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 28.02.2010, 00:23

Das einfachste wäre wohl:

Code: Alles auswählen

<img src="fehle.jpg" onError="this.src = 'ersatzbild.jpg';">
Noch ein paar andere Beispiele:

https://www.seo-welten.de/webcoding/images-pruefen.php
Scripts und Plugins für Cookie-Hinweise

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 28.02.2010, 01:19

ben78 hat geschrieben:
Mork vom Ork hat geschrieben: select case when bild1 is not null then bild1 when bild2 is not null then bild2 when bild3 is not null then bild3 else "keinbild.png" end as bild where blafasel
...aber ich weiß nicht, wie meine Query aussehen muss, wenn ich sie um gewünschtes erweitern will. Habe sämtliche Varianten probiert in google gesucht etc..
select und where wirst du oben außerhalb des besagten blauen Bereichs finden und auch in deiner Abfrage:
$abfrage = "SELECT DISTINCT * FROM tabelle WHERE";
Das musst du nur kombinieren:
$abfrage = "SELECT DISTINCT case when bild1 is not null then bild1 when bild2 is not null then bild2 when bild3 is not null then bild3 else "keinbild.png" end as bild FROM tabelle WHERE";

Ändern musst du noch dieses:
1. Die Spaltennamen bild1 bis bild3 durch jene deiner Bilder-Spalten ersetzen.
2. keinbild.png durch die URL zu deinem Fehlerbild ersetzen.
3. Im PHP-Code auf $zeile['bild'] zugreifen statt wie bisher auf $zeile['Abbildung'] &#8211; oder in der SQL-Abfrage bild in Abbildung ändern.
4. (optional) In deiner ursprünglichen Abfrage hast du mit dem Stern (*) alle Spalten abgerufen. Der Stern könnte (oder sollte) rausgefliegen, du müsstest dann alle Spalten, die du benötigst, von Hand eintragen, durch ein Komma getrennt.

Alles in allem sieht das dann ungefähr so aus:
$abfrage = "SELECT DISTINCT case when bild1 is not null then bild1 when bild2 is not null then bild2 when bild3 is not null then bild3 else "keinbild.png" end as bild,SpalteA,SpalteB,SpalteC,Marke,Dingbumms,Bla,Fasel FROM tabelle WHERE";

Mit beibehaltenem Stern so:
$abfrage = "SELECT DISTINCT *, case when bild1 is not null then bild1 when bild2 is not null then bild2 when bild3 is not null then bild3 else "keinbild.png" end as bild FROM tabelle WHERE";
In diesem Fall musst du aber sicherstellen, dass der Name der generierten Spalte bild nicht mit jenem einer existierenden Spalte kollidiert. Da der Stern alle Spalten anfordert, bekommt PHP dann zwei Spalten desselben Namens vorgesetzt und ich weiß nicht, wie PHP darauf reagiert.

w3news
PostRank 8
PostRank 8
Beiträge: 938
Registriert: 10.10.2006, 23:17
Wohnort: Berlin

Beitrag von w3news » 28.02.2010, 03:32

Melegrian hat geschrieben:Das einfachste wäre wohl:

Code: Alles auswählen

<img src="fehle.jpg" onError="this.src = 'ersatzbild.jpg';">
Noch ein paar andere Beispiele:

https://www.seo-welten.de/webcoding/images-pruefen.php
Den Thread hast du aber schon gelesen, oder?
MfG Lars

News, Tarife und Mobilfunk: w3news.de
Mobile Datenflatrates

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 28.02.2010, 05:31

Eine kleine Pause zwischendurch, macht das Gehirn wieder frei und gibt ihm seine nötige Konzentration zurück. Dann schaut man sich das ganze noch mal mit etwas mehr Konzentration an...UND siehe DA...Lösung des Problems fast so locker wie aus dem Ärmel geschüttelt...

Code: Alles auswählen

if &#40; $zeile&#91;'Bild1'&#93;=='' &#41; $zeile&#91;'Bild2'&#93;=htmlspecialchars&#40;$zeile&#91;'Bild2'&#93;&#41;;
THX @all 4 HLP...Prob gelöst bzw. THREAD CLOSED!

[E D I T : ]
So ein Mistbock aber auch...die ganze Nacht hocke ich mit meinem Projekt da. Natürlich am Arbeiten und während dem Arbeiten immer wieder (fast stündlich) in diesen Thread geschaut...mich aber gewundert, warum mir keiner mehr antwortet...und nach meiner besagten Pause
1. das Prob eigenständig gelöst, dann...
2. Posten um mit zu teilen, dass ich das Prob lösen konnte...
UND jetz kommt das aller Schärfste...alle guten Dinge sind ja 3 oder???
3. Festgestellt, das der Thread schon längst die zweite Seite angebrochen hat...und zwar schon vor ca 5,5 Stunden...
unglaublich aber wahr...Pausen bewirken manchmal Wunder...

Vielen Dank @Mork vom Ork...Deinen obigen Post werde ich sofort umsetzen, da er von seiner Mechanik her am besten für mein Vorhaben geeignet ist.

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 28.02.2010, 10:51

ben78 hat geschrieben:Lösung des Problems fast so locker wie aus dem Ärmel geschüttelt...

Code: Alles auswählen

if &#40; $zeile&#91;'Bild1'&#93;=='' &#41; $zeile&#91;'Bild2'&#93;=htmlspecialchars&#40;$zeile&#91;'Bild2'&#93;&#41;;
Ich will ja nicht nörgeln, aber dass du bild2 HTML-kodierst, wenn bild1 leer ist, kann nicht die Lösung deines Problems sein. Das ist zwar beides Teil der Lösung (insbesondere die erste Hälfte), aber nichtsdestotrotz wird da immer noch nirgends festgelegt, welches Bild du ausgibst.

Antworten