Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problem beim Laden eines in einer Datenbank hinterlegten Bildes

Empfohlene Antworten

Veröffentlicht

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

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).

  • Autor
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

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.

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. 

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.

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. 

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.