WebSite X5Help Center

 
Klaus W.
Klaus W.
User

Datenbankpflege duch den Eigentümer der WebSite  de

Autor: Klaus W.
Besucht 772, Followers 1, Geteilt 0  

Hallo ihr da draußen,

ich möchte dem Eigentümer der WebSite die Möglichkeit geben, Datensätze in einer Datenbank zu pflegen und je Datensatz mehrere Bilder anhängen zu können.

Zur Datenpflege eignet sich ja hervorragend das Objekt 'Database Viewer'. Nun hab ich da aber (mind. 3 Probleme):

1. Wie kann ich Bilder an den Datensatz hängen

2. Welches Objekt ist in der Lage, die Daten aus der Datenbank zu lesen und anzuzeigen.

3. Welches Objekt ist in der Lage, die Bilder aus der Datenbank zu lesen und anzuzeigen.

Ich vermute mal, WSX5 stellt solche Möglichkeiten erst einmal nicht bereit ... richtig ?

Vielleicht hat aber jemand von euch schon mal soetwas über WSX5 in Verbindung mit php-Programmierung gelöst und könnte mir den Weg aufzeigen, wie er das gelöst hat.

Besten Dank, Klaus.

Gepostet am
7 ANTWORTEN - 1 NüTZLICH
Franz-Josef H.
Franz-Josef H.
Moderator

Hallo Klaus,
wie Du vermutest, gibt es dafür kein Objekt bei WebsiteX5. Ich habe vor längerem schon mal selbst Scripts für das Füllen und Auslesen einer einfachen Datenbank benutzt (geht aber auch mit dem Kontaktformular und über den DatabaseViewer. Allerdings nicht die Bilder. Mir haben damals folgende Infos weiter geholfen:

https://www.php-kurs.com/mysql-datenbank-verbindung-herstellen.htm
https://www.php-kurs.com/mysql-datenbank-mit-inhalt-fuellen.htm
https://www.php-kurs.com/mysql-datenbank-auslesen.htm
Für das EInbinden der Bilder in die Datenbank ist folgender Artikel interessant: http://www.php-faq.de/q-db-blob.html

Ich hoffe, Dir hilft das weiter.

Mehr lesen
Gepostet am von Franz-Josef H.
Klaus W.
Klaus W.
User
Autor

Hallo F-J,

ich möchte meine Zeit nicht in einer Sackgasse verplempern. Mir hilft alles weiter, aus dem ich sinnvoll etwas lernen kann und nicht von vorne herein zum Scheitern verurteilt ist. Auch wenn das nicht zum Ziel führt, hilft es mir weiter, wenn es einen 'sinnvollen Lehrgang' darstellt.

Daher vielen Dank.

Grüße, Klaus.

Mehr lesen
Gepostet am von Klaus W.
Andreas S.
Andreas S.
Moderator

Scheitern wird es wahrscheinlich schon bei den Bildern, denn Bilder kann man nicht in einer Datenbank speichern. Höchstens als LINK auf auf dem Server.

Mehr lesen
Gepostet am von Andreas S.
Andreas L.
Andreas L.
User

Also man kann schon Bilder in einer Datenbank speichern das ist nicht das Problem. Nur macht man es aus Perfomance und Platz Gründen kaum. Dafür gibt es bessere alternativen wie Cloude Lösungen.

Mehr lesen
Gepostet am von Andreas L.
Andreas L.
Andreas L.
User

Also bei phpMyAdmin muss eine Tabelle für die Bilder erzeugt werden, so z.B.

CREATE TABLE images(

id INT( 11 ) AUTO_INCREMENT ,

imgdata LONGBLOB,

imgtype VARCHAR( 20 ) ,

PRIMARY KEY ( id )

);

Nun benötigt man einen Uploader:

Müsste man evtl. mit dem Formular oder Standalone einbauen:

<?php

// img_up.php: Ein Bild hochladen

require_once 'connect.inc.php';

if (array_key_exists('img',$_FILES)) {

$tmpname = $_FILES['img']['tmp_name'];

$type = $_FILES['img']['type'];

$hndFile = fopen($tmpname, "r");

$data = addslashes(fread($hndFile, filesize($tmpname)));

$strQuery = "INSERT INTO images

(imgdata,imgtype) VALUES

('$data','$type')" ;

if (!mysql_query( $strQuery))

die(mysql_error());

}

?>

<html><body>

<h1>Bild hochladen</font></h1>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"

enctype="multipart/form-data">

Bilddatei:<br />

<input type="file" name="img" size="40"><p>

<input type="submit" name="submit" value="Abschicken">

</form></body></html>

Und jetzt noch quasi ein Bildlieferant:

<?php

// img_get.php: Bild abrufen

require_once 'connect.inc.php';

$id = intval($_GET['id']);

$strQuery= "select imgdata,imgtype

from images where id=$id";

$result=mysql_query($strQuery);

$row=mysql_fetch_assoc($result);

header("Content-type: {$row['imgtype']}");

echo $row['imgdata'];

?>

Jetzt noch zum Knackpunkt dieser Geschichte!

Was ist wenn ein Datenbankfehler auftritt und der Abruf der Bilder nicht funktioniert? Das sieht dann echt blöd aus und ist ja nicht soooo selten.

Daher muss noch eine Fehlermeldung eingebaut werden.

<?php

$err=mysql_error();

$im = ImageCreate (250,50);

$color = ImageColorAllocate ($im, 0, 0, 0);

$bgcolor = ImageColorAllocate ($im, 255, 255, 255);

ImageString ($im, 2, 5, 5, $err, $color);

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

ImagePNG($im);

?>

Gruß

Andreas

Mehr lesen
Gepostet am von Andreas L.
Klaus W.
Klaus W.
User
Autor

Andreas L., echt klasse. Vielen Dank dafür. Auf deiner Basis werde ich mal weiter machen.

Der Gedanke, dass der Eigentümer der Seite seine Daten selbst pflegen möchte, ist ja nicht exotisch. Somit ist das Thema ja prinzipiell für (alle) Seitenersteller interessant.

Wäre eine große Sache, wenn Incomedia mit entsprechenden Objekten unterstützen würde.

Mehr lesen
Gepostet am von Klaus W.
Andreas L.
Andreas L.
User

Gerne Klaus,

ich bin auch dafür zumal es ja schon diesen DatabaseViewer gibt. Wäre eine toller Erweiterung für das X5 Konzept.

Mehr lesen
Gepostet am von Andreas L.