Wie bekomme ich CSS Atribute in PHP echo Ausgaben?

5 Antworten

Deine derzeitige Lösung ist ziemlich unflexibel und fördert Redundanzen in der Datenbank. Speicher nur die konkreten Werte, die du für das Bild benötigst und bau dir den Rest mit PHP zusammen.

Das heißt, in deiner Datenbank hast du eine Tabelle Bilder. Diese hat eine Spalte Pfad (oder URL), eine Spalte für den Alternative Text eine ID (zum einfachen Finden des Eintrags) sowie eine Spalte für die CSS-Klasse, die ihr zugeordnet werden soll. Deinen Inline-Style solltest du mit in den angegebenen CSS-Klassenselektor packen. Wenn das ungünstig ist, dann lege noch eine 2. Spalte für eine weitere CSS-Klasse an oder lasse dir eine andere Möglichkeit an Datenbankdesign einfallen, welches dir erlaubt, dem Bild mehrere Klassen zuzuordnen. Die Spalten für die CSS-Klassen sollten via Fremdschlüssel auf eine externe Tabelle CSS-Klasse verweisen, welche alle notwendigen Klassen listet. Sollten Bildpfade oder alternative Tags ebenso jeweils mehr als dreimal vorkommen, würde sich für diese ebenso ein Fremdschlüssel und eine eigene Tabelle eignen.

Wenn deine Datenbank ordentlich designt ist, kannst du dich der Backend-Entwicklung widmen. Hole dir den gewünschten Eintrag und bau dir das Markup zusammen:

<?php print "<img alt=\"$alternativeText\" class=\"$cssClass\" src=\"$imagePath\" />" ?>;

Ohne den Code zu kennen, meine Frage: Warum speicherst nicht die CSS Klassennamen in der Datenbank als neues Feld in der gleichen Zeile wie  das Bild?  Alternativ kannst Du den Link auf das Bild speichern oder eine eindeutige Id auf das Bild.

Dann müsste ich doch aber 3x das gleiche Bild abspeichern. Ich möchte ein Bild in verschiedenen Klassen (= Größe) anwenden. Hatte gehoffte dass ich einfach html/css in den php code verpacken kann, aber ging nicht:

z.B.

echo "img class="bild1" src="$bild" style="float:right"      border="0" alt="bild">
0
@7thRaven

Hatte gehofft dass ich einfach html/css in den php code verpacken kann, aber ging nicht:

Natürlich geht das:

echo '<a href="www.gf.de" >Link</a>';

Oder wo ist das Problem?

0
@7thRaven

Da soll kein Link stehen, sondern eins von mehreren Bildern aus der DB angezeigt werden :/ 

Auf einer anderen Seite sollen alle Bilder aus der DB angezeigt werden.

0
@7thRaven

Das da oben ist ein Beispiel. Wo liegt das Problem, so etwas für einen img-Tag umzubauen?

1
@regex9

Das Problem ist, dass ich das eben mit img nicht hinbekomme. Ich kann ja nicht für jedes einzelne Bild ein echo machen, zumal in der DB Einträge dazu kommen bzw gelöscht werden können. Ich bin halt auch noch recht neu in der Materie.

Mein neuer fehlgeschlagener Versuch:

          echo '<img class="bild2">' . $bild . '<style="float:right" border="0" alt="bild">';
0
@7thRaven

Mhm, einmal ganz ehrlich: Hast du dir bei diesem Versuch auch einmal überlegt, was du da überhaupt tust? Im Endresultat baust du dir 2 Tags zusammen, beide invalid.

Diesem Tag

<img class="bild2">

fehlen notwendige Attribute (src, alt), außerdem ist er nicht geschlossen.

Der zweite Tag:

<style="float:right" border="0" alt="bild">

besteht nur aus falscher Syntax und ist ebenso nicht geschlossen.

So müsste es aber aussehen:

echo '<img class="bild2" src="'.$bild.'" style="float:right" border="0" alt="bild" />';

Du baust dir doch lediglich Textbausteine zusammen. Zwei weitere Beispiele:

echo "Hallo "."Welt"; // Hallo Welt

$name = "Hans"; echo "Hallo ".$name; // Hallo Hans

Bevor du nun weiter mit PHP oder Datenbanken machst, lerne erst HTML und übe so lange, bis du es kannst / wirklich verstanden hast. 

1
@regex9

Ja, ist mir nun auch schon aufgefallen, dass ich den tag zu gemacht hab... Ich probiere hier gerade alle möglichen Tutorials aus um html und php zu verknüpfen. Deine Version hatte ich auch schon. Aber ich hab jetzt den Fehler (glaub ich?) in der DB. Da hab ich das Bild auch nur als html text drin <img....>

Also baue ich die ganze Zeit <img <img> > -.- 

Hab bisher aber keine andere Variante gefunden, wie man Bilder in die DB bekommt. Direkt hochladen gab bei mir nur Hyroglyphentext statt nem Bild.

0
@7thRaven

ok... ich hab's jetzt. War die Datenbank. Hab jetzt nur den Bildpfad in der DB und den Code von oben in der html Datei.

0
@7thRaven

Vermeide es wie gesagt, Markup in der Datenbank zu speichern, sofern es sich nicht bspw. um statische Artikeltexte handelt, die in einem Rutsch nur eingesetzt werden.

Bilder kann man durchaus in der Datenbank speichern. Dafür wird dann das BLOB-Format genutzt, welches das Bild in einem speziellen Format serialisiert. Das Auslesen wird hier gezeigt: https://stackoverflow.com/questions/7793009/how-to-retrieve-images-from-mysql-database-and-display-in-an-html-tag/7793098#7793098

Ein oftmals gewählter Weg ist aber der, den du nun gewählt hast. Die Bilddateien liegen im Dateisystem und in der Datenbank sind nur die Bildpfade hinterlegt.

0

Leg in der Tabelle ein Extra Feld an, wo Du den Klassen-Namen hinterlegst. Also:

ID / BILD / KLASSE
1 | foto.jpg | thumbnail
2 | panorama.png | panorama
...

Verstehe jetzt nicht so ganz, was Du vorhast oder wo das Problem ist? Den Rest machst mit HTML / CSS / PHP ...

Aber die Bilder werden mehrmals benutzt mit unterschiedlichen Klassen (darüber wird die Bildgröße geregelt).

0
@7thRaven

Dann lege halt mehrere Felder für die Bilder an:

ID / BILD / KL_PANORAMA / KL_THUMBNAIL / KL_FULLSIZE
1 | foto.jpg | 1 (=ja) | 0 (=nein) | 1 (=ja)

Und Bildgrößen würde ich nicht über CSS regeln, sondern über einen Image-Resize-PHP

1

Umlaute aus MySQL Datenbank in PHP (Browserproblem)

Hallo,

auf einer Webseite von mir werden Umlaute aus einer Mysql Datenbank angezeigt.

Die Datenbank ist auf UTF-8 eingestellt und auch die PHP-Dateien sind alle auf UTF-8.

Wenn ich diese Homepage aufrufe, sehe ich alles richtig - so wie es sein soll.

An einem anderen Laptop funktioniert es allerdings nicht. -> wenn von dem anderen Laptop aus etwas in der Datenbank gespeichert wird, dannn sehe ich es wiederrum nicht mehr richtig. Auf beiden Laptops wird Firefox verwendet.

Woran könnte das liegen ?

...zur Frage

Daten aus 2 MySQL Datenbanken auf einer PHP seite wiedergeben?

Hallo, ich wollte mal fragen wie ich Daten aus 2 MySQL Datenbanken auf einer PHP seite wiedergeben kann, also z.B. wenn ich in einer Datenbank Name und Geburtstag habe und in einer anderen Name und Geburtsort wie kann ich es quasi als eine Tabelle ausgeben, also das ich per PHP Name Geburtstag und Geburtsort als eine Abfrage mache

Bitte vorallem auch erklären wie ich 2 Datenbanken in einer PHP Datei Starten und dann halt auch gleichzeitig verwenden kann

Danke schonmal in Vorraus:)

...zur Frage

Wie kann man in MySQL Radiobuttons abspeichern?

Hallo!

Ich habe mit PHP ein Formular erstellt, dass in eine Datenbank gespeichert werden soll, allerdings sind auch Radiobuttons enthalten, wie kann ich diese in die Datenbank einspeisen?

...zur Frage

Dateinamen der Bilder beim "Seite speichern unter" ... HTML/PHP-Problem

Hallo,

ich habe mir eine Webseite gebastelt, auf der ich eine andere Webseite abfrage. Die einzelnen Zeilen bestehen dabei aus dem Aufruf eines PHP-Scriptes der Zielseite mit jeweils unterschiedlichen Parametern. Dadurch bekomme ich etwa 100 Bilder untereinander angezeigt. Wenn ich nun das Ergebnis als "Seite speichern unter" auf meine Festplatte bannen möchte, wird beim Speichern der Bilder eine willkürliche Reihenfolge bzw. Benennung gewählt.

z.B. das PHP-Script des Zielservers heißt aufruf.php, dann wird das oberste von 200 Bildern als bild147 gespeichert, das zweite als bild15 etc etc.

Ich möchte aber das erste Bild als Bild1, das zweite als Bild2 abspeichern. Das name-Attribut von img in HTML hilft mir hier nicht weiter.

Wie kriege ich das trotzdem hin?

cu und Danke

Spaetzleforces

...zur Frage

Wie kann ich in PHP einen bestimmten Datensatz aus einer Datenbank auslesen und dann bestimmte Parameter des Datensatzes per Echo ausgeben?

...zur Frage

Wie garantiere ich eine sichere Verbindung zwischen einer Android Application und einer MySQL Datenbank?

Hallo,

Ich bin gerade dabei eine Android App zu erstellen, für welche ich eine MySQL-Datanbank Anbindung benötige.

Testweise habe ich mit XAMPP eine Lokale Datenbank und PHP-Scripts in meinem Netzwerk veröffentlicht um mit Android-Studio und meinem Smartphone mit diesen zu Interagieren. Die Kommunikation zwischen Java und PHP funktioniert problemlos.

Wenn ich jedoch überlege diese App zu veröffentlichen und die Datenbank hierfür Online zu stellen ist es doch sehr unsicher, da jeder Zugriff auf die PHP Scripts haben kann welche mit der Datenbank interagieren. ist es eine Lösungsmöglichkeit die PHP Scripts in der App zu speichern und durch diese auf die Online Datenbank zuzugreifen? Denn es gibt doch sicher Möglichkeiten die App Ordner einzusehen und somit auch die PHP-Scripts mit den Passwörtern für die Datanbank!

Hat jemand diesbezüglich Erfahrungen, Tipps oder eine sichere Lösungsmöglichkeit? Ich habe lediglich Grundkenntnisse was Datenbanken angeht und zu diesen gehört leider nicht die Sicherheit.

...zur Frage

Was möchtest Du wissen?