[PHP] auslesen + img GD funkt nicht wie es sollte ..

Dieses Thema im Forum "Webentwicklung" wurde erstellt von freakZ, 11. November 2012 .

Schlagworte:
  1. 11. November 2012
    Zuletzt bearbeitet: 11. November 2012
    auslesen + img GD funkt nicht wie es sollte ..

    hi,

    funkt nicht wie es sollte (
    Wird $text so befüllt ohne db funktionierts problemlos!

    PHP:
    include  "config.inc.php" ;
      
      
    $abfrage  "SELECT plz FROM geo" ;
      
    $ergebnis  mysql_query ( $abfrage );
      while(
    $row  mysql_fetch_object ( $ergebnis ))
        {
        
    //echo $row->plz;
        
    }
    Header ( "Content-Type: image/jpg" );
    $img  ImageCreateFromJPEG ( 'geobar.jpg' ); 
    $black  ImageColorAllocate ( $img 0 0 0 ); 
    $font_height  ImageFontHeight ( 3 ); 
    $font_width  ImageFontWidth ( 1 ); 
    $image_height  ImageSY ( $img ); 
    $image_width  ImageSX ( $img ); 
    /// GENAU HIER SCHEITERTS - das aus der Datenbank kommt dort nicht an :(( bild bleibt leer :((
    $text  $row -> plz ;  
    $length  $font_width * strlen ( $text );
    $image_center_x  = ( $image_width / 2 )-( $length / 2 );
    $image_center_y  = ( $image_height / 2 )-( $font_height / 2 );
    ImagePNG ( $img ); 
    ImageDestroy ( $img

     
  2. 11. November 2012
    AW: auslesen + img GD funkt nicht wie es sollte ..

    Und wo genau rufst du jetzt imagestring o.ä. auf?

    Bei deinem angegebenem Code schreibst du nur die Daten aus der Datenbank in die Variable $text. Diese Daten werden aber nicht durch eine Funktion in das Bild geschrieben.

    MfG
     
  3. 11. November 2012
    AW: auslesen + img GD funkt nicht wie es sollte ..

    hab den code abgeschnittel - es ging nur darum er nimmt das $text nicht an bzw. zeigt das leere bildlein an fülle ich die $text so funktionierts ohne probs
     
  4. 11. November 2012
    AW: auslesen + img GD funkt nicht wie es sollte ..

    Überdenk noch einmal diesen part:

    PHP:
    while( $row  mysql_fetch_object ( $ergebnis ))
        {
        
    //echo $row->plz;
        
    }

    Du machst eine Schleife und erst danach greifst du auf $row zu?
    Die Variable $row wird bei jedem Durchlauf neu gefüllt, hat also immer einen anderen Wert.
     
  5. 12. November 2012
    AW: auslesen + img GD funkt nicht wie es sollte ..

    ich bekomms nicht hin ( tut mir leid ...
     
  6. 12. November 2012
    AW: auslesen + img GD funkt nicht wie es sollte ..

    Code:
    <?
    include "config.inc.php";
    
    $abfrage = "SELECT plz FROM geo";
    $ergebnis = mysql_query($abfrage);
    
    //Variable $row == NULL
    while($row = mysql_fetch_object($ergebnis))
    {
     //echo $row->plz;
     //Variable $row == entsprechendes DB Object (Daten aus DB)
    }
    //Variable $row == NULL/Letzes DB Object
     
    /* Code zur generierung des Bildes
    * Wird nur EINMAL ausgeführt, da nicht in der While Schleife!
    * Manche Funktionen sollen aber auch nur EINMAL aufgerufen werden.
    */
    Header("Content-Type: image/jpg");
    $img = ImageCreateFromJPEG('geobar.jpg'); 
    $black = ImageColorAllocate($img, 0, 0, 0); 
    $font_height = ImageFontHeight(3); 
    $font_width = ImageFontWidth(1); 
    $image_height = ImageSY($img); 
    $image_width = ImageSX($img); 
    // GENAU HIER SCHEITERTS - das aus der Datenbank kommt dort nicht an :(( bild bleibt leer :((
    //Vll. stimmt der Pfad zur "geobar.jpg" nicht?
    $text = $row->plz;
    $length = $font_width*strlen($text);
    $image_center_x = ($image_width/2)-($length/2);
    $image_center_y = ($image_height/2)-($font_height/2);
    ImagePNG($img); 
    ImageDestroy($img)
    
     
  7. 12. November 2012
    AW: auslesen + img GD funkt nicht wie es sollte ..

    Was für einen Text möchtest du auf dem Bild ausgeben? Eine einzige PLZ? Oder alle PLZ aus der Datenbank, oder ...

    Das Problem wurde schon genannt. Wenn du das Ergebnis mehrere Schleifendurchläufe haben willst, musst du die Information aus der Datenbank innerhalb der Schleife zB in ein Array speichern, damit du nach Abbruch immer noch alle wichtigen Datensätze hast
     
  8. 13. November 2012
    Zuletzt bearbeitet: 13. November 2012
    AW: auslesen + img GD funkt nicht wie es sollte ..

    Möchte immer nur ein ergebniss anzeigen , und zwar das letzte also ORDER BY ID nur das script funkt nicht

    tada is mein pfusch script das nicht funken will , soll immer das LETZT ergebnis anzeigen.

    PHP:
    <? php
    // EINSTELLUNGEN - BEGINN
    include ( "config.inc.php" );
    $abfrage  "SELECT plz FROM geol" ;
    $ergebnis  mysql_query ( $abfrage );

    //Variable $row == NULL
    while( $row  mysql_fetch_object ( $ergebnis ))
    {
        
    //echo $row-&gt;plz;
        //Variable $row == entsprechendes DB Object (Daten aus DB)
    }
    //Variable $row == NULL/Letzes DB Object
    // EINSTELLUNGEN - ENDE

    Header ( "Content-Type: image/jpg" );
    $img  ImageCreateFromJPEG ( 'geobar.jpg' ); 

    $black  ImageColorAllocate ( $img 0 0 0 ); 
    $font_height  ImageFontHeight ( 3 ); 
    $font_width  ImageFontWidth ( 1 );
    $image_height  ImageSY ( $img ); 
    $image_width  ImageSX ( $img ); 

    $text  $textvar ;
    $textvar  "1234, City - Berlin / Berlin" ;

    $length  $font_width * strlen ( $text ); 
    $image_center_x  = ( $image_width / 2 )-( $length / 2 );
    $image_center_y  = ( $image_height / 2 )-( $font_height / 2 );


    ImagePNG ( $img ); 
    ImageDestroy ( $img ?>
     
  9. 13. November 2012
    AW: auslesen + img GD funkt nicht wie es sollte ..

    Das sollte so funktionieren.

    PHP:
    <? php
    include  'config.inc.php' ;

    $fontFile  'arial.ttf' ;
    $fontSize  14 ;

    // Ergebnis nach ID (9 8 7 ..) sortiert und auf ein Ergebnis reduziert
    $query  "SELECT `plz` FROM `geol` ORDER BY `id` DESC LIMIT 1" ;
    $result  mysql_query $query  );

    // Was machst du wenn es kein Ergebnis gibt?
    if(  mysql_num_rows $result  ) ==  ) {
        exit;
    }

    // Ergebnis holen
    $row  mysql_fetch_object $result  );

    // Spalte als Text festlegen
    $text  $row -> plz ;


    $img  ImageCreateFromJPEG 'geobar.jpg'  );

    // Größe des textes holen
    $textBox  imagettfbbox $fontSize 0 $fontFile $text  );

    // Breite und Höhe Berechnen
    $textWidth  $textBox [ 6 ] +  $textBox [ 4 ];
    $textHeight  $textBox [ 6 ] +  $textBox [ 1 ];

    // Farbe bestimmen
    $fontColor  ImageColorAllocate $img 0 0 ); 

    // Breite und Höhe des Bildes
    $imgWidth  ImageSY ( $img );
    $imgHeight  ImageSX ( $img );

    // Text Position ermitteln
    $textX  = ( $imgWidth / 2 ) - ( $textWidth / 2 );
    $textY  = ( $imgHeight / 2 ) - ( $textHeight / 2 );

    // Text zeichnen
    ImageFtText $img $fontSize 0 $textX $textY $fontColor $fontFile $text  );

    // Wenn du das Bild als ImagePNG ausgibst, dann bitte auch mit image/png Header ...
    Header 'Content-Type: image/png'  );

    // Bild an den Client senden
    ImagePNG $img  ); 

    // Speicher Freigeben
    ImageDestroy $img  );

    // PHP-End-Tag ist nicht nötig
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.