Kann ich images mit Werten aus DB generieren?

rernanded

Erfahrenes Mitglied
Hi, habe mal rumprobiert ob ich es schaffe Werte aus der DB in images zu wandeln und direkt anzeigen zu lassen.
Ergab bisher nur Sonderzeichen-Salat mit nur einem image.
Brauche Idee.
Moni
PHP:
<?php
$servername = "localhost:3306";
$username = "";
$password = "";
$dbname = "";

$connection = new mysqli($servername, $username, $password, $dbname);

if ($connection->connect_error) {
     die("Connection failed: " . $connection->connect_error);
}

$sql = "SELECT spalte1,spalte2 FROM soundso ORDER BY id DESC";

$result = $connection->query($sql);

if ($result->num_rows > 0) {
   
     while($row = $result->fetch_assoc()) {

$img = imagecreate(900, 300);

$green = imagecolorallocate($img, 0, 255, 0);
$black = imagecolorallocate($img, 0, 0, 0);

imagefilledrectangle($img, 0, 0, 10, 10, $green);

imagestringup($img, 30, 100, 300, $row["spalte1"], $black);

//header('Content-type: image/png');
imagepng($img);

$wau = array("imagepng($img)");
foreach($wau as $key => $wauwau) {

???

}

echo "Kontrolle:<br />":

echo $row["spalte1"];
echo "<br />";
echo $row["spalte2"];

}
} else {
     echo "Kein/e Ergebnis/se.";
}

$connection->close();
?>
 

rernanded

Erfahrenes Mitglied
Den Beitrag gibt es zweimal. Keine Ahnung wieso. Bei einem Klick auf Bearbeitung des ersten Beitrags erschien ein leeres Feld, ..., dann gab es alles zweimal.

Ich kriege ja bereits ein Bild angezeigt, selbst mit meinem Code und einem Wert größer als 5 an 2. Stelle bei imagestringup() und wenn der header bleibt. Deine Ideen sind also nicht zielführend. Ich will mehrere Bilder angezeigt bekommen.

Die Browswerausgabe ist also unbrauchbar, ich versuche es mal mit der Dateiausgabe. Dazu muss jedes erzeugte Bild einen anderen Namen bekommen, ev. fortlaufend: bild1.png, bild2.png, bild3.png.

Yeap, Lösung gefunden - danke und tschüss:
PHP:
imagepng($img, "imgs/img".$row["id"].".png");

echo "<img src=\" usw. usf.

Moni.
 
Zuletzt bearbeitet:

m.scatello

Erfahrenes Mitglied
Yeap, Lösung gefunden
Warum auch einfach, wenn es kompliziert geht:
PHP:
<?php
  // imgtest.php

  if (isset($_GET['text']))
  {
    $img = imagecreate(900, 300);

    $green = imagecolorallocate($img, 0, 255, 0);

    $black = imagecolorallocate($img, 0, 0, 0);

    imagefilledrectangle($img, 0, 0, 10, 10, $green);

    imagestringup($img, 5, 100, 200, $_GET['text'], $black);

    header('Content-type: image/png');

    imagepng($img);
}
?>
HTML:
<html>
<body>
<img src="./imgtest.php?text=Hallo">
<br>
<br>
<img src="./imgtest.php?text=Welt">
</body>
</html>