Neben einem Thumbnail, weitere Bilder aus einer Datenbank anzeigen

Nope. An alle die hier mitlesen.
Es empfiehlt sich immer, wenn man Beispiele sieht diese zu Hinterfragen, Befehle die man nicht kennt auf php.net nachzuschlagen. Im Notfall nachzufragen. So kann man relativ einfach viel lernen und ist in Zukunft nicht mehr ganz so extrem von anderen Leuten abhängig.

Ja, du hast da sicherlich Recht und ich bin auch wirklich bemüht und es ist auch mein Ziel mal weniger abhängig zu sein :( Lieben Dank noch einmal.

Gruß
Kerstin
 
Zuletzt bearbeitet:
Ich muss nun leider meine Arbeit abbrechen, hab noch ein Arzttermin.
Wollte Thommas noch einmal ganz herzlich für seine super tolle Hilfe danken! Das mit dem Codeblock hat wie erwartet funktioniert, ich werde es mir aber Morgen noch einmal genauer anschauen. Bei mir wird das Thumbnail und das passende Thumbnail-Dummy ganz rechts außen angezeigt. Thomas, auf deinem Bildanhang kann man leider nicht erkennen, ob das Thumbnail rechts angezeigt wird, da das Thumbnail-Dummy nicht zu sehen war, du hast links und recht ein Bild angezeigt :P

Vieeeeeeeelen Dank Thomas und auch ein liebes Danke an Yaslaw

Gruß
Kerstin
 
@tombe
Deine Lösung sieht auch korrekt aus. Ist halt immer Geschmacksache ob man gerne Strings Stückweise zusammensetzt oder das ganze ein wenig generisch mithilfe von Arrays löst. Ich verliere bei dem generischen Ansatz weniger schnell die Übersicht, wo ich Kommas in Variablen drin hab und wo nicht.
Es empfiehlt sich aber die Variable dann nicht $pic_id sondern irgendwie $pic_id_sql oder so zu benennen, da darin nicht nur die id sondern auch ein Teil des SQL-String, nämlich das Komma, enthalten ist. Ansonsten kann es zu Verwirrungen führen wenn man im späteren Code nochmals auf die $pic_id zugreifen will und da auf einmal ein Komma drin ist.

@Kerstin
Keine Angst, bin nicht beleidigt wenn jemand nicht mein Lösungsweg einschlägt. Es gibt beim Programmieren immer mehrere richtige Wege. Ich begreife es wenn jemand am bisher bearbeiteten Weg festhalten will, um nicht den Faden zu verlieren.
Ich schreibe auch häufig Lösungsansätze irgendwo rein, da ich weiss das manchmal später Leute über Google im Thread landen und Antworten suchen. Je breiter das Spektrum der Antworten da drin, umso besser. Darum schreibe ich für alle die hier lesen (inkl. dir und tombe)

PS. Viel Glück beim Arzt
 
Jetzt bist du noch so lieb und buxierst mir das Thumbnail und das dazugehörige Dummy-Thumbnail nach ganz links

Ok, ich gebe es zu. Ich verwechsle immer lechts und rinks. Bei mir stand sowohl das Thumbbild als auch der -dummy ebenfalls auf der rechten Seite.

So stimmt es jetzt aber?

Es musste "nur" der Teil des Codes der für das Anzeigen des Dummys verantwortlich ist vor den Code gesetzt werden der die Bilder anzeigt.
 

Anhänge

  • position.jpg
    position.jpg
    12,7 KB · Aufrufe: 4
Da es mir grad langweilig war und ich schöne Lösungen liebe, hier mein Input für das SQL-Problemchen.
Dinge die man generisch macht kann man gut in Funktionen auslagern. Das macht den eigentlichen Code auch lesbarer, da man sich dort nicht wirklich um die Details kümmern will.
PHP:
<?php
//Testdaten 
$filename2 = 'test.txt';
$_SESSION['id'] = 1;

// *** Hier startet der eigentliche Code ***
//Definitionen
$keysFields = array('pic_id', 'id');
$args = array('pic_id' => $pic_id, 'id' => $_SESSION['id'], 'thumbnail' => "'{$filename2}'");
//Erstellen des SQLs
$sql = createInsertOrUpdate('picture', $keysFields, $args);

//Ausgabe für den Test
echo $sql;

// *** Hier endet der eigentliche Code ***


/**
 * @name createInsertOrUpdate
 * Erstellt ein SQL-Statement für das Muster 'INSERT INTO .. ON DUPLICATE KEY UPDATE'
 * @param $tableName            String                  Name der Tabelle
 * @param $keysFields           Array<String>           Array mt allen Feldnamen des PrimaryKey
 * @param $args                 Array<String=>String>   Array mit allen Feldern und Werten: Feldname als Key, Value in SQL-Format
 * @param $suppressEmptyFields  Boolean                 Flag ob False-Values unterdrückt werden sollten
 * @return                      String                  SQL-Statement
 */
function createInsertOrUpdate($tableName, $keysFields, $args, $suppressEmptyFields = true){
    //ggf False-Values unterdrücken und nicht ins SQL-Statement aufnehmen
    if($suppressEmptyFields) $args = array_filter($args);
    
    // Alle Felder die nicht zum Key gehören auslesen
    $updateFields = array_diff_key($args, array_flip($keysFields));
    // Für all diese Felder ein SQL-Update-String zusammenstellen: Feldname3 = Value3
    foreach($updateFields as $fieldName => $fieldValue){
        $sqlUpdateStrings[] = "{$fieldName} = {$fieldValue}";    
    }
    
    // SQL-String für die Feldliste des Insert-Teils erstellen: Feldname1, Feldname2, Feldname3
    $sqlInsertFieldsList =  implode(', ', array_keys($args));
    // SQL-String für die Feldliste des Value-Teils erstellen: Value1, Value2, Value3
    $sqlInsertValuesList = implode(', ', $args);
    // SQL-String für die Feldliste des UPDATE-Teils erstellen: Feldname3 = Value3, Feldname4 = Value4
    $sqlUpdateList = implode(', ', $sqlUpdateStrings);
    
    //SQL-String zusammensetzen und zurückgeben
    return "INSERT INTO {$tableName} ({$sqlInsertFieldsList}) VALUES ({$sqlInsertValuesList}) ON DUPLICATE KEY UPDATE {$sqlUpdateList}";    
}
?>
Ergibt in diesem Testfall
SQL:
INSERT INTO picture (id, thumbnail) VALUES (1, 'test.txt') ON DUPLICATE KEY UPDATE thumbnail = 'test.txt'
 
Zuletzt bearbeitet von einem Moderator:
@Kerstin
Keine Angst, bin nicht beleidigt wenn jemand nicht mein Lösungsweg einschlägt. Es gibt beim Programmieren immer mehrere richtige Wege. Ich begreife es wenn jemand am bisher bearbeiteten Weg festhalten will, um nicht den Faden zu verlieren.
Ich schreibe auch häufig Lösungsansätze irgendwo rein, da ich weiss das manchmal später Leute über Google im Thread landen und Antworten suchen. Je breiter das Spektrum der Antworten da drin, umso besser. Darum schreibe ich für alle die hier lesen (inkl. dir und tombe)

PS. Viel Glück beim Arzt

Hallo Yaslaw,
lieben Dank für dein Verständnis, ihr seid hier wirklich klasse,genau so stelle ich mir ein Hilfsforum vor, Vielen Dank!

PS. Danke auch für deine Glückwünsche für meinen Arztbesuch:)
 
Ok, ich gebe es zu. Ich verwechsle immer lechts und rinks. Bei mir stand sowohl das Thumbbild als auch der -dummy ebenfalls auf der rechten Seite.

So stimmt es jetzt aber?

Es musste "nur" der Teil des Codes der für das Anzeigen des Dummys verantwortlich ist vor den Code gesetzt werden der die Bilder anzeigt.

Guten Morgen Thomas,
du verwechselst also immer lechts und rinks :P
Werd es gleich mal ausprobieren und schauen wie es funktioniert, noch einmal lieben Dank :)
 
...Na ja manchmal verwechsle ich auch oben mit unten....

Aha, wie wirkt sich dass denn dann aus :) Wie es sich auch immer auswirken sollte, ich danke dir auf jeden Fall vom ganzen Herzen für deine tolle Unterstützung! Ohne dich, hätte ich sicherlich erheblich länger an dem Problem verharrt. Vielen lieben Dank, Thomas, vielen lieben Dank!

Das Thema ist für mich dann vorerst erledigt, Topic kann somit geschlossen werden :)
 
Zuletzt bearbeitet:
Zurück