Zum Inhalt springen

Problem beim Laden eines in einer Datenbank hinterlegten Bildes


Empfohlene Beiträge

Geschrieben

Hallöle Dominik Mein Name.
Ich Bin noch neu im Thema PHP und MYSQL. Aktuell sitze ich an einer Artikel Abfrage aus einer von Mir erstellten Daten Bank.
Ich habe Vor das Verschiedene Attribute abgefragt werden darunter erstmal der Name des Artikels der Preis Und dazu noch ein Produktbild. 
Hier ist mein Aktueller Code den Ich verwende.

<section id="products">
            <?php
            require("mysql.php");
            $stmt = $mysql->query("SELECT * FROM products");
            $stmt->execute();
            while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                echo '<div class="card">';
                    echo '<img class="cardimg" src="data:image/jpeg;base64,' . base64_encode($row['product_image']) . '" alt="' . htmlspecialchars($row['product_name']) . '">';
                    echo '<h2>' . $row['product_name'] . '</h2>';
                    echo '<p>Preis: €' . $row['product_price'] . '</p>';
                echo '</div>';}
            ?>
        </section>

Mein Problem ist Name Und Preis werden Geladen nur dass Bild nicht.
Im Anhang lade ich ein Bild Hoch wie es später ungefähr aussehen soll.


Falls jemand eine Idee hat ich bin Offen für Vorschläge.

Gruß Dominik

Geschrieben

Was steht denn im html was an den Browser übermittelt wird? Ich find meistens sind die Fehler am einfachsten sichtbar, indem eins einfach mal die Developertools aufmacht und guckt was da dann rauskommt. Vielleicht siehst du da schon direkt den Fehler (keinen Inhalt, falsch formatiert, etc).

Geschrieben
vor 15 Stunden schrieb EdwardFangirlXxX:

Was steht denn im html was an den Browser übermittelt wird? Ich find meistens sind die Fehler am einfachsten sichtbar, indem eins einfach mal die Developertools aufmacht und guckt was da dann rauskommt. Vielleicht siehst du da schon direkt den Fehler (keinen Inhalt, falsch formatiert, etc).

Hallo Edward In der Konsole wird leider kein Fehler Angezeigt (Siehe Konsolen Screenshot)

Ich habe auch schon KIs gefragt hat aber nichts Gebracht.

Gruß Dominik

Geschrieben

Die Links kann ich nicht sehen, die sind nicht freigegeben. 

Ich meinte aber gar nicht unbedingt die Konsole, sondern das html was deine php Anwendung generiert. Du solltest ja die Elemente im Browser sehen können, und dann kannst du mit den Developertools untersuchen was falsch aussieht. Also ob in dem img Tag den du generierst irgendwas komisch aussieht.

Geschrieben
vor 3 Stunden schrieb DomHa12:

Hallo Edward In der Konsole wird leider kein Fehler Angezeigt (Siehe Konsolen Screenshot)

Ich habe auch schon KIs gefragt hat aber nichts Gebracht.

Gruß Dominik

Bitte keine Links auf Google Drive, Screenshots können hier direkt hochgeladen werden. 

Geschrieben

Wenn das erst mal so ne art "Proof of Concept" ist, probiere einfach ein wenig herum. 

Wenn nicht ein paar Anregungen:

Es gibt Situationen, wo man Binärdaten in der Datenbank hinterlegt. Diese sind aber eher selten. Speichere alternativ die Pfade zu den Dateien mit ggf. Metadaten ab. 
Wenn es nicht anders geht. Lege die Binärdaten in einer separaten Relation ab. (1 zu 1). Wenn das Datenbankschema mit der Zeit komplexer wird, hast du eine Bessere Kontrolle, welche Daten an den Client zurückgegeben werden. Wenn eine Abfrage keinen Index verwenden kann, wird die gesamte Relation in den Speicher geladen. Dies kann mit Relationen die Binärdaten enthalten dazu führen, dass eine Datenbank in die Knie geht.

Innerhalb der UI sollte man keine DB Abfragen machen. Baue dir Klassen für den Datenzugriff. Das ist erst mal mehr Code, bietet aber eine bessere Übersichtlichkeit. 

Schau dir mal das Thema "Logging" an und logge ein paar mehr Informationen zur Datenabfrage mit. Schau dir die einzelnen Log-Levels (Severity) an und überlege, wie wichtig die Information ist, die du loggen möchtest. Idealerweise kannst du dann sehen, was wann und wie innerhalb deiner Anwendung passiert.

Versuche "SELECT * FROM" zu vermeiden. Sollte sich die Datenstruktur mit der Zeit ändern, bekommst du den Fehler an der "richtigen" Stelle. Zudem beschreibst du mit expliziten Spaltenangaben genau, was du von der Datenbank haben möchtest. Wenn du in einem halben Jahr noch mal auf den Code schaust, kommst du wieder besser in das Thema rein.

Geschrieben

Ohne den Rest vom Code zu kennen: Wenn du die Bilddatei schon als Base64 speicherst (zum Beispiel beim Upload, was Sinn machen würde), dann brauchst du im HTML base64_encode() nicht, denn dann machst du ein Base64 vom bereits erstellten Base64. 

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...