Antworten auf deine Fragen:
Neues Thema erstellen

MySQL-Tabelle Hintergrundbild

Ben78

Nicht mehr ganz neu hier

Hi Leutz,

ich habe eine MySQL-Tabelle, in der pro Datensatz eine Grafik zugeordnet ist.

Jedoch besteht nicht für jeden Datensatz eine Grafik, sodass bei der Ausgabe mittels PHP & HTML für das fehlende Bild immer ein rotes Kreuz, Fragezeichen etc. (Browserabhängig) angezeigt wird. Anstelle dieser Symbole hätte ich aber gerne eine eigene Grafik die besagt, das kein Bild vorhanden ist.

Diese Grafik habe ich bereits erstellt und mittels CSS als Hintergrundbild in die gewünschte Spalte gesetzt, sodass bei fehlendem Bild das Hintergrundbild angezeigt wird. Ist für mich aber - wegen Breite und Höhe - nicht die perfekte Lösung. Also es kommt vor, dass das Hintergrundbild breiter oder höher sein kann als das im Vordergrund angezeigte Bild...Schaut a bissl blöd aus...

Wie kann ich dafür sorgen, dass mir immer dann das "KeinFoto Bild" angezeigt wird, sobald für einen Datensatz kein Bild vorhanden ist???

THX an alle die helfen können. Google hat mir nicht viel gebracht.
 

Duddle

Posting-Frequenz: 14µHz

AW: MySQL-Tabelle Hintergrundbild

Such den Teil in deinem Script, in dem die Bilder aus der Datenbank ausgelesen und ausgegeben werden. Dort machst du eine Fallabfrage rein: hat der Datensatz ein Bild, zeigst du es an - ansonsten zeigst du eben das "Kein Foto"-Bild an.

Falls das ein fertiges Script ist und du keine Ahnung von PHP hast, such die verantwortliche Datei und poste den Inhalt hier, dann wird dir bestimmt konkreter geholfen :x


Duddle
 

saila

Moderatorle

AW: MySQL-Tabelle Hintergrundbild

Hi,

ich versteh nicht vollends was du möchtest, weil du offensichtlich schon die richtige Vorgehensweise ansetzt.

Im Normalfall prüft man, ob das Bild aus dem DB-Feld geliefert wird oder nicht (also if/else). Wenn nicht, setzt du das default-Image. Also dein eigens erstelltes Bild.

Wenn du nun das Bild über eine CSS-Klasse setzt - sprich dem div oder was auch immer eine Klasse setzt, erhält bzgl. der Breite und Höhe des default-Images die übliche Breite und Höhe wie in der CSS-Klasse angegeben. Damit es z.B. dann in der Mitte der Box platziert ist, kannst du z.B. folgendes ansetzen:

Code:
background: url('../image/default-image.jpg') no-repeat 50% 50%;

Damit wird das default-image in einer Box (egal welche Masse diese Box wiederum hat) immer in die Mitte platziert.

Oder meinst du etwas ganz anderes?
 

Ben78

Nicht mehr ganz neu hier

AW: MySQL-Tabelle Hintergrundbild

Ich habe das in meinem Skript stehen:
PHP:
echo "<tr class='tabelle' >";
echo "<td class='bild'><img id='product-pic' alt='Produkt' src='".
htmlspecialchars($zeile['Abbildung']) . "' /></td>";
echo"</tr>"

Mein Versuch:
PHP:
if($zeile['Abbildung'] == "[B]WAS KOMMT HIER REIN???[/B]")
  {
    echo "<td class='bild'><img id='product-pic' alt='Abbildung' src='".
htmlspecialchars($zeile['Abbildung']) . "' /></td>";
  }
  else
  {
    echo "<td class='bild'><img id='product-pic' alt='Abbildung' src='".
htmlspecialchars(../../KeinFoto-BILD.jpg) . "' /></td>";
  }
Ist das so richtig???
 

Duddle

Posting-Frequenz: 14µHz

AW: MySQL-Tabelle Hintergrundbild

Zu "Was kommt hier rein": Es kommt drauf an, wie leere Spalten bei dir gespeichert werden. Wahrscheinlich ist es dann einfach leer, das heisst die Abfrage sollte sein:
PHP:
 if($zeile['Abbildung'] != "")

Zweitens benötigst du die htmlspecialchars-Funktion im else-Fall nicht, du kannst also direkt den Pfad im img-src angeben. Ausserdem solltest du sicherstellen, dass der relative Pfad tatsächlich immer stimmt. Es könnte ja sein, dass du die Funktion mal in einem anderen Verzeichnis aufrufst.


Duddle
 

Ben78

Nicht mehr ganz neu hier

AW: MySQL-Tabelle Hintergrundbild

Jetzt hab ich's fast. Nur noch folgendes Problem:

wie kann ich denn dafür sorgen, dass im Quellcode der Pfad, welcher sich in der Spalte BILD2 meiner MySQL-Tabelle befindet, angezeigt wird und nicht das Wort BILD2 wie im unten stehenden PHP-Code an letzter Stelle.
PHP:
if ( $zeile['Bild1']=='' ) $zeile['Bild1']='Bild2';
 

Duddle

Posting-Frequenz: 14µHz

AW: MySQL-Tabelle Hintergrundbild

Da sie offenbar bei dir fehlen, hier ein paar Grundlagen: Die Variable $zeile ist ein Array, also eine Art Eierpackung die in n verschiedenen Plätzen gleichartige Werte speichert. Du kannst die einzelnen Speicherplätze entweder direkt als Nummer ansprechen (z.B. $zeile[3]) oder, falls es ein assoziatives Array ist, per Name (z.B. $zeile['name']).

Du liest die Werte aus der Tabelle zeilenweise aus und speicherst sie jeweils in $zeile. Dabei ist dann $zeile offensichtlich ein assoziatives Array und du kannst in diesem Fall jede Spalte der Tabelle direkt per Name auslesen (z.B. $zeile['spaltenname']).

Das sollte hoffentlich reichen, damit du dir die Frage beantworten kannst.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben