Anzeige

einzelne zeilen aus db-Feld ausgeben

einzelne zeilen aus db-Feld ausgeben | PSD-Tutorials.de

Erstellt von strichcode, 31.01.2012.

  1. strichcode

    strichcode Nicht mehr ganz neu hier

    Dabei seit:
    18.10.2007
    Beiträge:
    84
    Geschlecht:
    weiblich
    einzelne zeilen aus db-Feld ausgeben
    Hallo @ all,
    ich stehe auf den Schläuchen und bitte Euch um Hilfe.

    Ich habe eine große Datenbank zur Verfügung aus der ich die Inhalte auslesen kann.
    Mit viel Geschrei ist es mir auch soweit gelungen, die Felder in mein html-Template zu bekommen - so weit ist es dann auch mit meinen php-Kenntnissen...

    Jetzt stehe ich vor folgendem Problem:

    Das Datenbankfeld KAT01_50 sieht so aus:
    HTML:
    1. http://www.absoluterpfadzumeinembild.jpg
    2. http://www.absoluterpfadzumeinembild.jpg
    Meine Abfrage:
    HTML:
    1. <?php
    2. $abfrage = "SELECT * FROM db-Name WHERE HAUS_NR_INTERN = '123' ";
    3. $ergebnis = mysql_query($abfrage);
    4.  
    5. while ($daten = mysql_fetch_array( $ergebnis, MYSQL_ASSOC)) {
    6.  
    7. echo '
    8. <img src="'.$daten['KAT01_50'][0].'" /><img src="'.$daten['KAT01_50'][1].'" />
    9. ';
    10. }?>
    und das hier bekomme ich als ergebnis:
    HTML:
    1. <img src="h" /><img src="t" />
    Er gibt mir offensichtlich den ersten und zweiten Buchstaben zurück, nicht den ganzen Pfad.

    Ich hab ja oben schon geschrieben mit meinem php ist es nicht weit her.
    Habt Ihr Ideen, Ansätze oder was zum googlen für mich?

    Ich denke, ich muß eine Anweisung geben nach einem \n oder ähnlichem zu Trennen,
    ich habe aber keine Ahnung wie, bzw. wie man sowas schreibt.

    Über ein bischen Hilfe von Euch wäre ich sehr dankbar.

    LG
    Heike
     
    #1      
  2. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Hy,

    deine Abfrage ist schon soweit richtig, nur sollte sie wie folgt aussehen:

    PHP:
    1.  
    2. $abfrage = "SELECT `KAT01_50` FROM db-Name WHERE HAUS_NR_INTERN = '123' ";
    3. $ergebnis = mysql_query($abfrage);
    4.  
    5. while ($daten = mysql_fetch_assoc( $ergebnis)) {
    6.    
    7. echo '
    8. <img src="'.$daten['KAT01_50'].'" /><img src="'.$daten['KAT01_50'].'" />
    9. ';
    10.  
    Dadurch das du immer ein [0] hinten rangehangen hast, sagtest du die Anwendung das du den 0(1) Buchstaben haben wolltest.
     
    #2      
  3. SineTempore

    SineTempore Nicht mehr ganz neu hier

    Dabei seit:
    25.01.2007
    Beiträge:
    201
    Geschlecht:
    männlich
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    PHP:
    1. <?php
    2. $abfrage = "SELECT * FROM db-Name WHERE HAUS_NR_INTERN = '123' ";
    3. $ergebnis = mysql_query($abfrage);
    4.  
    5. while ($daten = mysql_fetch_array( $ergebnis, MYSQL_ASSOC)) {
    6.    
    7. echo '
    8. <img src="'.$daten['KAT01_50'].'" />
    9. ';
    10. }?>
    sowas vielleicht?

    -.- Robbyn war schneller ;)
     
    #3      
  4. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Wobei auch dein Beispiel, zuviel Datensätze mitliefert und du auch noch das FETCH_ARRAY verfahren nutzt, was auch wieder zuviel infos enthällt ;)
     
    #4      
  5. strichcode

    strichcode Nicht mehr ganz neu hier

    Dabei seit:
    18.10.2007
    Beiträge:
    84
    Geschlecht:
    weiblich
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Hallo und vielen Dank für Eure schnelle Antworten.
    Entweder stelle ich mich noch blöder an, als befürchtet ;-)
    aber
    die Version von Robbyn liefert mir das:
    HTML:
    1. Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean  given in C:\xampp\htdocs\haueser\navigation\w2d\test3.php on line 241
    die Version von Sine Tempore ergibt den folgenden Quelltext:
    HTML:
    1. <img src="http://pfadzumeinembild1.jpg
    2. http://pfadzumeinembild2.jpg
    3. " /><img src="http://www.pfadzumeinembild1.jpg
    4. http://www.pfadzumeinembild2.jpg
    5. " />
    Also zwei Pfade in einem img-Tag. Mir fehlt doch immer noch sowas wie eine Trennung, oder?

    @Robbyn: FETCH_ARRAY steht auf meiner Liste zum Nachlesen

    Nachtrag: Wenn man es richtig schreibt, gibt es auch keine Fehlermeldung...
    aber der img-Tag ist immer noch nicht richtig.
     
    Zuletzt bearbeitet: 31.01.2012
    #5      
  6. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Hmmm komisch, mache mal das Leerzeichen swischen mysql_fetch:assoc und $ergebnis raus, aber eigentlich kommt solch ein Fehler nur wenn eine Query einen fehler auswirft.

    Versuche bitte mal bevor du mysql_fetch_assoc anwendest folgenden code vor die while Schleife zu schreiben:

    PHP:
    1.  
    2. echo mysql_error();
    3.  
    und sag mal was da raus kommt.
     
    #6      
  7. strichcode

    strichcode Nicht mehr ganz neu hier

    Dabei seit:
    18.10.2007
    Beiträge:
    84
    Geschlecht:
    weiblich
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Wir haben uns gerade überschnitten.
    Ich hatte die Fehlermeldung durch einen Schreibfehler fabriziert.
    Und das über die Korrekturfunktion noch meinem letzten Beitrag angehangen,
    da warst Du schneller.

    Jetzt gibt es mit
    echo mysql_error();
    keine Fehlermeldung, aber der img-Tag besteht aus zuviel Text.

    In der DB steht in dem Feld:
    Bild1.jpg
    Bild2.jpg

    und ich möchte als ausgabe haben:
    <img scr="Bild1.jpg> <img scr="Bild2.jpg>

    zu dem Thema fetch_assoc statt fetch_array habe ich auf die Schnelle das hier
    gefunden: http://board.*****.com/thread/910276-unterschiede-mysql-fetch-/
    Es soll keinen merklichen Unterschied in der Performance geben und ich bin
    in meiner php-unwissenheit froh wenn etwas was ich mache überhaupt funktioniert.
    *lach* Du kannst Dir nicht vorstellen wie lange ich gebraucht habe, bis ich überhaupt mein Template gefüllt bekommen habe.
     
    #7      
  8. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Das glaube ich dir gerne, PHP ist eben für Einsteiger nicht so leicht, aber dafür gibt es genug Tutorials und Übungen dafür und ist so schnell zu erlernen.

    Der Unterschied von fetch_assoc und fetch_arary ist, das fetch_array die doppelte Anzahl an Werte zurück sendet. Wenn man sich z.b. das Resultat von fetch_array anschauen würde, würde dies wie folgt aussehen.

    PHP:
    1.  
    2.  'name' = "bild.jpg",
    3.  '0' = "bild.jpg"
    4. )
    5.  
    bei fetch_assoc würde das wie folgt aussehen:

    PHP:
    1.  
    2.  'name' = "bild.jpg"
    3. )
    4.  
    Du siehst, du bekommst da schon etwas saubere Resultate zurück und da es somit auch weniger resultate sind, ist deine Anwendung auch schneller.



    Aber nun zu deinen Problem, ich weiß nicht ganz genau, wie deine Werte strukturiert integriert worden sind. Stehen bild1.jpg und bild2.jpg in dem selben Datensatz oder voneinander getrennt?
     
    #8      
  9. strichcode

    strichcode Nicht mehr ganz neu hier

    Dabei seit:
    18.10.2007
    Beiträge:
    84
    Geschlecht:
    weiblich
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Haha, "schnell zu erlernen" - ich jedenfalls tu mich recht schwer.
    Das schlimmste ist, wenn man gar keine Ahnung hat, hat man auch kaum Stichworte
    fürs googlen... von nützlichen englischkenntnissen ganz zu Schweigen...

    Der Eintrag in dem Datenbankfeld ist:

    www.pfadzubild1.jpg
    www.pfadzubild2.jpg

    Die Pfade stehen untereinander weg. Manchmal ist es nur ein Bild, manchmal sind es auch 5 oder 6. Immer stehen sie untereinander.

    Ich lese gerade über strtok() nach.
    Damit soll man Zeichenketten zerlegen können.
    Wahrscheinlich ist in dem Datenbankfeld sowas wie ein unsichtbares \r oder so...

    Irgendwie muß es gehen.
     
    #9      
  10. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Du sagst du hast sie alle untereinander stehen, dann kannst du sie mit explode aufteilen.

    Das sieht wie folgt aus:

    PHP:
    1.  
    2. $abfrage = "SELECT `KAT01_50` FROM db-Name WHERE HAUS_NR_INTERN = '123' ";
    3. $ergebnis = mysql_query($abfrage);
    4.  
    5. while ($daten = mysql_fetch_assoc($ergebnis)) {
    6.    $images = explode("<br />",nl2br($daten['KAT01_50']));
    7.  
    8.   foreach($images as $key)
    9.   {
    10.    echo '
    11.   <img src="$key" />
    12.   ';
    13.   }
    14. }
    15.  
     
    #10      
  11. strichcode

    strichcode Nicht mehr ganz neu hier

    Dabei seit:
    18.10.2007
    Beiträge:
    84
    Geschlecht:
    weiblich
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Hui! Bist Du schnell.

    aber es klappt nicht ganz:

    Wenn ich das mache, bekomme ich folgenden Quelltext geschrieben:
    HTML:
    1. <img src="$key" />        <img src="$key" />        <img src="$key" />        <img src="$key" />
     
    #11      
  12. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Uppps mein Fehler, hier nochmal der richtige Code:

    PHP:
    1.  
    2. $ergebnis = mysql_query($abfrage);
    3.  
    4. while ($daten = mysql_fetch_assoc($ergebnis)) {
    5.    $images = explode("<br />",nl2br($daten['KAT01_50']));
    6.  
    7.   foreach($images as $key)
    8.   {
    9.    echo "
    10.   <img src='$key' />
    11.   ";
    12.   }
    13. }  
    14.  
    P.S. Arbeite beruflich mit PHP, deshalb schon Routine ;)
     
    #12      
  13. strichcode

    strichcode Nicht mehr ganz neu hier

    Dabei seit:
    18.10.2007
    Beiträge:
    84
    Geschlecht:
    weiblich
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    YES!!!
    Super und vielen Dank.

    Jetzt hängt er an den letzten img-Tag einen leeren Tag dran:
    HTML:
    1. <img src='bild1.jpg' />        <img src=' bild2.jpg' />        <img src=' bild3.jpg' />        <img src=' ' />
    Ich hab nachgesehen, in diesem speziellen DB-Feld befinden sich nur 3 Pfadangaben.

    <img src=' ' /> am Ende ist also einmal zuviel.
    Aber mit so einem Fehler könnte ich glatt leben.
    Ich danke Dir noch mal sehr.
     
    #13      
  14. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Hier noch der verbesserte Code, damit sowas wie ein leeres Bild nicht kommt:

    PHP:
    1.  
    2. $ergebnis = mysql_query($abfrage);
    3.  
    4. while ($daten = mysql_fetch_assoc($ergebnis)) {
    5.    $images = explode("<br />",nl2br($daten['KAT01_50']));
    6.  
    7.   foreach($images as $key)
    8.   {
    9.     if(empty($key))
    10.    {
    11.       continue;
    12.    }
    13.    echo "
    14.   <img src='$key' />
    15.   ";
    16.   }
    17. }  
    18.  
     
    #14      
  15. jaderbass

    jaderbass Noch nicht viel geschrieben

    Dabei seit:
    14.01.2010
    Beiträge:
    45
    Geschlecht:
    männlich
    Ort:
    Erfurt
    Software:
    Adobe CC / Corel X4
    Kameratyp:
    Canon EOS 500D
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Uups, jetzt war ja doch einer schneller ;)

    Aber ich habe noch was:
    Um evtl. Leerzeichen am Anfang und Ende der Datenbankeinträge zu entfernen schreibst du:
    PHP:
    1. $ergebnis = mysql_query($abfrage);
    2.  
    3. while ($daten = mysql_fetch_assoc($ergebnis)) {
    4.    $images = explode("<br />",nl2br($daten['KAT01_50']));
    5.  
    6.   foreach($images as $key)
    7.   {
    8.     if(empty($key))
    9.    {
    10.       continue;
    11.    }
    12.    trim($key);
    13.    echo "
    14.   <img src='$key' />
    15.   ";
    16.   }
    17. }  
    Gruß
    Jörg
     
    Zuletzt bearbeitet: 31.01.2012
    #15      
  16. strichcode

    strichcode Nicht mehr ganz neu hier

    Dabei seit:
    18.10.2007
    Beiträge:
    84
    Geschlecht:
    weiblich
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Ich bin echt begeistert, welche Mühe Du Dir mit mir machst.
    Leider habe ich immer noch einen leeren Tag am Ende.

    unverändert:
    HTML:
    1. <img src='bild1.jpg' />        <img src=' bild2.jpg' />        <img src=' bild3.jpg' />        <img src=' ' />
    Aber ich muß unser Gespräch für heute leider beenden, die Familie kräht nach Abendessen(). ;-)
    Ich schaue mir morgen die Sache nochmal in Ruhe an und melde mich ggf. nochmal.

    Auf jedem Fall hast Du mir schon riesig weiter geholfen.
    Danke und einen schönen Abend noch.
    LG
    Heike
     
    #16      
  17. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Hallo Jörg, danke für die Ergänzung, aber ich denke das die Datensätze schon bevor sie in die Datenbank geschrieben werden kontrolliert werden, dass Sie nicht ein Leerzeichen am Anfang oder Ende enthalten. Aber kann er sich trotzdem aufschreiben :D
     
    #17      
  18. strichcode

    strichcode Nicht mehr ganz neu hier

    Dabei seit:
    18.10.2007
    Beiträge:
    84
    Geschlecht:
    weiblich
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    SIE! (der TO ist eine Sie) kann es sich trotzdem aufschreiben ;-)

    Hallo Jörg, vielen Dank auch für Deine Antwort,
    wir sind hier so wild unterwegs, das sich all unsere Antworten überschreiben.

    Aber wie gesagt, für heute ist für mich hier Feierabend, morgen sehe ich mir in Ruhe an, was genau nun hilft und werde Euch berichten.

    Bis dahin vielen Dank für Eure Hilfe und einen schönen Abend.
    LG
    Heike
     
    #18      
  19. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Uiii, verzeihe mir, war keine Absicht, bin nach deinem Benutzernamen gegangen DER strichcode ^_^
     
    #19      
  20. strichcode

    strichcode Nicht mehr ganz neu hier

    Dabei seit:
    18.10.2007
    Beiträge:
    84
    Geschlecht:
    weiblich
    einzelne zeilen aus db-Feld ausgeben
    AW: einzelne zeilen aus db-Feld ausgeben

    Guten Morgen!
    Nachdem ich trotz
    HTML:
    1. trim($key);
    immernoch einen leeren IMG-Tag hatte,
    habe ich einfach in meinem nicht mehr jugendlichen Leichtsinn
    eine "-1" angefügt.
    HTML:
    1. $images = explode("<br />",nl2br($daten['KAT01_50']), -1);
    Ich habe es mit verschiedenen Mengen ausprobiert, wenn ich nur einen
    Pfad im DB-Feld habe, oder wenn ich mehrere Pfade dort stehen habe,
    funktioniert es so.

    Also herzlichen Dank nochmal an alle, die mir geholfen haben, ich bin ein
    großes Stück weiter gekommen und gelernt habe ich auch was.

    LG
    Heike /die sich hinter DEM strichcode versteckt ;-)
     
    #20      
x
×
×