PHP Projekt - Formulardaten zur Datenbank übergeben (Xampp)

Joined
Dec 30, 2002
Messages
1,459
Points
280
Haudi!

Ich habe ein Problem mit meinem PHP Projekt. Ich sitze hier nun mehr den ganzen Tag auf der Arbeit und habe noch rein gar nichts zu stande gebracht, weil ich einfach nicht weiss wie.
Bitte keine Links auf Tutorials oder dergleichen. Ich brauche etwas "handfestes".
Falls jemand eine Idee oder dergleichen hat... bitte den Code modifizieres bzw. posten.

Das Hauptproblem stellt die Verbindung mit der Datenbank dar. Im PHP Code soll über ein Formularfeld Eingaben getätigt und an die Datenbank übergeben werden.
Wie bereits erwähnt fehlt mir einfach das Wissen wie ich vorgehen muss, da ich völlig Talentfrei in Sachen Anwendungsentwicklung bin. :kotz

Als Datenbank/Webserver dient Xampp in einer lokalen Umgebung.
Ich habe die Datenbank (Zusätzlich alle Tabellen einzeln als Bild), alle PHP Dateien sowie eine Projektbeschreibung im Anhang dazugelegt.
Die Beschreibung hier direkt zum einsehen:

_____________________________________________________________________

----Artikeldatenbank mit Frontend--- (Warenkorb)

-Die Datenbank wird mit SQL gestaltet.
-Das Frontend wird per Quelltext im Browser realisiert. (.htm / .php Dateien)

Das Programm soll die Möglichkeit bieten, einen Preisvergleich - unterschiedlicher Hersteller - durchzuführen.

Datenbank:
artikeldb

Gelistete Tabellen:
adresse, haupttab, lieferant

Gelistete Objekte in Tabelle "adresse":
Hersteller, Sitz, Ansprechpartner, Telefonnummer, Email, Strasse, Hausnummer, Ort, Plz, HerstellerID

Gelistete Objekte in Tabelle "haupttab":
ID, Warenart, Produkt, HerstellerID, Preis, Artikelnummer, Verfuegbarkeit, Herstellungsdatum, Lieferkosten, Lieferant, Gesamtpreis

Gelistete Objekte in Tabelle "lieferant":
Name, strasse, ort, plz, lieferantID

Beschreibung des Ablaufs:

Startseite wird aufgerufen.
Die Buttons (Neuen Händler hinzufügen), (Neue Ware hinzufügen), (Günstigstes Angebot ermitteln),
(Session speichern) und (Session abrufen) stehen zu Beginn zur Verfügung.
Über (Neuen Händler hinzufügen) können über Eingabefelder Händler in die SQL Datenbank hinzugefügt werden.
Über (Günstigstes Angebot ermitteln) wird die Berechnung des günstigsten Artikels der Händler durchgeführt und ausgegeben.

Über (Session speichern) werden alle Sessions gelistet mit den dazu gehörigen Objekten.
Über (Session abrufen) können alle bereits abgespeicherten Session eingesehen werden.


Jede Session ist einzeln anwählbar und gibt Auskunft über die Objektdaten.
Mit Auswahl der Session wird der Gesamtpreis der jeweiligen Hersteller deutlich vorgehoben und der günstigste Anbieter
unterstrichen.

*Mit Sessions sind abgeschlossene Preisvergleiche mit Hersteller und Preisangaben Datensätze gemeint.*


Möglichkeiten des Anwenders:

Der Anwender soll in der Lage sein, sämtliche Daten anzulegen, zu verändern oder zu löschen.
Alles mithilfe von Schaltflächen.
____________________________________________________________________

Danke für alle Hilfen und Bemühungen!
 

Attachments

Hi,

ich hab nur mal ganz kurz drüber geschaut.

Also:

Bei deiner eingabe.php
Warum machst du um jedes input in seperates form tag, welches noch nichtmal wieder geschlossen wird?

Es reicht doch eine form in die du dann deine ganzen inputs packst
Bsp.:
Code:
<form action="verarbeitung.php">
    <input type="text" name="feldname1" />
    <input type="text" name="feldname2" />
    <input type="text" name="feldname3" />
    <input type="submit" name="speichern" value="Speichern" />
</form>


Nachdem du in der verarbeitung.php die db-connection offen und und die db selektiert hast kannst du du über mysql_query den sql-insert schicken.

Zugriff auf deine übergebenen input-werte erhälst du entweder übert $_GET wenn du "gettest" über $_POST wenn du "postest" oder unabhängig von der methode über $_REQUEST.

Um z.b. an den eingabewert von feldname2 zu kommen $_REQUEST['feldname2']

und ein insert sieht dann z.b. so aus:

Code:
$query = "INSERT INTO meinetabelle ('tbl_feld_name', 'tbl_feld_name2', 'tbl_feld_name3') VALUES ('".mysql_escape_string($_REQUESt['feldname'])."', '".mysql_escape_string($_REQUESt['feldname2'])."', '".mysql_escape_string($_REQUESt['feldname3'])."', )";

mysql_query($query) or die('insert failed: '.mysql_error().' | '.$query);
 
Oha, da müssen wir wohl einige Punkte durchgehen. Da ich jedoch schon sehr müde bin werde ich es einmal nur grob erklären.




Bei fast jedem PHP Projekt bietet es sich an eine Datei zu erzeugen, welche von jeder weiteren Datei eingebunden wird und grundlegende Definitionen und Funktionen stellt.

Um eine gute Projektstruktur zu bewahren legen wir dazu zunächst einen neuen Ordner namens include an.
Code:
mkdir include
Des Weiteren werden wir einen Ordner für unsere Templates und ggf. vorhandene Bilder benötigen
Code:
mkdir image
mkdir template
Sofern später noch die Nutzung von Javascript, CSS, externen Systemen oder eine Sprachverwaltung geplant ist würde ich folgende weitere Ordner hinzufügen (ggf. auch nur eine Auswahl davon)
Code:
mkdir css
mkdir external
mkdir javascript
mkdir translation
Im Hauptverzeichnis sollten sich nur diejenigen Dateien befinden, welche man später auch direkt aufrufen soll.


Danach erzeugen wir eine neue PHP-Datei namens global.php
Code:
notepad include/global.php

Falls ihr einen Editor wie notepad++ oder eine IDE bevorzugt könnt ihr natürlich auch diese nutzen.
Sofern es in eurem Editor möglich ist würde ich empfehlen die Formatierung auf "UTF-8 ohne BOM" einzustellen.

In dieser Datei werden wir zunächst den Pfad zum Hauptverzeichnis und unsere Verbindung zur Datenbank erzeugen.

Wir werden die Datenbankverbindung im Zeichen der Zeit mit PDO realisieren.
PDO stellt im Rahmen von PHP derzeit die Erweiterung dar, welche im Umgang mit gängigen Datenbank genutzt werden sollte.

PHP:
<?php
define('DIR', dirname(__FILE__) . '/..');

$Database = new PDO('mysql:host=localhost;dbname=database', 'user', 'password');
Dieder Quelltext sorgt dafür, dass eine Verbindung zur Datenbank "database" mit dem Nutzer "user" und Kennwort "password" hergestellt wird, auf welche wir über "$Database" zugreifen können.

Der eine oder andere wird sich nun vllt. fragen, warum diese Datei nicht mit "?>" endet. Dies liegt daran, dass sämtlicher Inhalt einer PHP Datei der nicht von "<?php ?>" (oder Abkürzungen wie "<? ?>", "<% %>") eingeschlossen wird direkt ausgegeben wird.
Da man jedoch versehentlich sehr schnell ein Leerzeichen an das Ende seiner Datei platziert ohne dies zu bemerken würde dies zu einer ungewollten Ausgabe führen, was nicht nur das Layout unkorrekt oder unschön machen könnte, sondern auch eine spätere Änderung des Headers unterbindet, was z.B. zum erzeugen von Cookies / Sessions wichtig ist.
Wenn man nun also "?>" weglässt bedeutet dies für den PHP-Interpreter, dass der gesamte Rest als PHP zu verstehen ist.

Um nun die erste Ausgabe zu erzeugen werden wir zunächst ein Template erstellen und danach eine PHP-Datei, welche dieses Template ausgibt.
Zusätzlich werden wir das aktuelle Datum eintragen lassen.
Code:
notepad template/index.html

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<title>Mein eigenes Webprojekt</title>
</head>
<body>
	Es ist der <?=date('d.m.y') ?>.
	Heute habe ich meine erste eigenen HTML-Seite erzeugt.
</body>
</html>

Es ist herbei zu beachten, dass der gängige W3C Standard vorschreibt, dass wir zunächst einen DTD definieren.
Des Weiteren sollte man nicht nur in PHP-Dateien, sondern auch hier auf einen guten Einrückstil achten.

Nähere Informationen zu HTMl gibt es übrigens bei SELFHTML.

Wie man leicht erkennt haben wir direkt HTML mit PHP gemischt. Dies war sehr lange ein Unding, was jedoch dazu geführt hat, dass man PHP nie selbst als sehr mächtige Template-Engine verstanden hat. Diese Technik ist unteranderem durch Artikel wie "Beyond the Template-Engine" abermals bekannt geworden.

Kommen wir nun zu unserer PHP-Datei.

Code:
notepad index.php

PHP:
<?php
require DIR . '/template/index.html';
Ein Aufruf dieser Datei sollte nun unser zuvor erstelltes Template ausgeben.

Da es nun des Öfteren dazu kommen wird, das wir obiges Gerüst benötigen macht es Sinn dies als Komponente zu definieren.
Dazu werden wir nun innerhalb unsere Template-Ordners einen weiteren Unterordner erstellen.

Code:
cd template
mkdir include

Als Konvention werden würde ich festlegen, dass nur diejenigen Dateien Templates innerhalb von /template/include aufrufen dürfen, welche sich in /include befinden.


Wir zerlegen nun unsere index.html in zwei einzelnen Dateien, einer global.html in /templates/include und unserer bestehenden index.html in /template.

Code:
notepad template/index.html

Code:
Es ist der <?=date('d.m.y') ?>.
Heute habe ich meine erste eigenen HTML-Seite erzeugt.

Code:
notepad template/include/global.html

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<title>Mein eigenes Webprojekt</title>
</head>
<body>
	<?=$body ?>
</body>
</html>

Damit wir nun aber überhaupt ein Template in die Variable "$body" zu speichern werden wir zunächst eine kleine Template-Funktion schreiben. Generell würde ich an dieser Stelle eine Klasse vorziehen, aber OOP sparen wir uns lieber für das nächste mal auf.

Wir werden der Funktion sowohl den Namen der zu verarbeitenden Template, als auch die verwendeten Variablen übergeben.

Code:
notepad include/template.php

PHP:
function fetch_template($filename, array $vars = array())
{
	$filepath = DIR . '/template/' . $filename;
	
	if(!file_exists($filepath))
	{
		throw new Exception(sprintf('could not find %s'), $filepath);
		return null;
	}

	extract($vars);
	ob_start();
		require $filepath;
		$template = ob_get_contents();
	ob_end_clean();
	return $template;
}

Die ob_*-Funktionen steuern die Ausgabe und sorgen dafür, dass der Inhalt unseres Templates nicht gesendet, sondern in "$template" gespeichert wird.

Nachdem wir nun eine Template-Funktion erzeugt haben müssen wir sie auch einbinden.
Dies tun wir in der global.php

Code:
notepad include/global.php


PHP:
define('DIR', dirname(__FILE__) . '/..');

require 'template.php';

$Database = new PDO('mysql:host=localhost;dbname=database', 'user', 'password');

Nachdem wir nun sichergestellt haben, dass wir auf unsere Template-Funktion zugreifen können sollten wir auch die index.php anpassen.

Code:
notepad index.php

PHP:
define('DIR', dirname(__FILE__) . '/..');

$body = fetch_template('eingabe.html',array(
	'success' => $success
));
require DIR . '/template/include/global.html';

Nachdem wir dies nun geklärt haben wenden wir uns nun einer komplizierteren Aufgabe zu, einem Formular.

Bevor wir damit jedoch anfangen können müssen wir wohl ein paar grundsätzliche Sachen klären.

Ein Formular (bzgl. das gesamte Formular) wird von einem "<form>"-Tag umschlossen

Code:
<form action="" method="post">
	Hallo, ich bin ein _noch_ nutzlose Formular
</form>

Mit "action" gibt man an, an welche Datei die Formulardaten geschickt werden. Lässt man dieses Feld frei, so werden diese Daten an die gleiche Datei zurück geschickt, welche das Formular erstellt hat (dies will man meistens).
Mit "method" gibt man an, ob die Daten über die URL ("get") oder versteckt über das HTTP-Protokoll ("post") geschickt werden sollen. Es ist dabei zu beachten, dass man über "get" nur eine begrenzte Anzahl an Daten verschicken kann.
Ich würde mich für in diesem Fall für "post" entscheiden.

Code:
<form action="" method="post">
	<input type="text" name="id" />
	Juh, man kann schon etwas eingeben
</form>

Durch den "<input>"-Tag wird ein Eingabefeld definiert.
Der Parameter "type" kann die Werte "text" (einfaches Eingabefeld), "password" (geschütztes Eingabefeld), "hiddden" (verstecktes Feld), "file" (Erweitertes Eingabe Feld zum hinzufügen von Daten - dafür muss zusätzlich "enctype="multipart/form-data"" im "<form>"-Tag gesetzt sein), ...
Dieser Parameter steht jedoch nicht für den Datentyp der Eingabe ("int", "float", "char", "date", ..).
Der Parameter "size" steht für die rein optische Länge des Eingabefeldes.

Code:
notepad template/eingabe.html

Code:
Willkommen!
<br />
Hier können Lieferantendaten eingeben und in/über eine SQL Datenbank eingegeben/abgefragt werden.
<br />
Die Datensätze sind in einzelnen Sessions organisiert. Daher..
<br />
Jede Session beinhaltet eine komplette Übersicht aller relevanten Informationen zu dem Objekt.
<br /><br />

<? if($success) { ?>
Ihre Eingabe wurden gespeichert!
<? } ?>

<form action="" method="post">
	ID:
	<input type="text" name="id" />
	<br />
	Warenart:
	<input type="text" name="Warenart" />
	<br />
	Produkt:
	<input type="text" name="Produkt" />
	<br />
	HerstellerID:
	<input type="text" name="HerstellerID" />
	<br />
	Preis:
	<input type="text" name="Preis" />
	<br />
	Artikelnummer:
	<input type="text" name="Artikelnummer" />
	<br />
	Verfuegbarkeit:
	<input type="text" name="Verfuegbarkeit" />
	<br />
	Herstellungsdatum:
	<input type="text" name="Herstellungsdatum" />
	<br />
	Lieferkosten:
	<input type="text" name="Lieferkosten" />
	<br />
	Lieferant:
	<input type="text" name="Lieferant" />
	<br />
	Gesamtpreis:
	<input type="text" name="Gesamtpreis" />
	<br />
	<input type="submit" name="send" value="Abschicken" />
</form>

Nun müssen wir noch unsere zugehörigen PHP-Datei erstellen

Code:
notepad eingabe.php

PHP:
<?php
$success = false;
if(isset($_POST['send']))
{
	$id = 					(isset($_POST['id'])) 					? $_POST['id'] 					: 0;
	$warenart = 			(isset($_POST['Warenart'])) 			? $_POST['Warenart'] 			: 0;
	$produkt = 				(isset($_POST['Produkt'])) 				? $_POST['Produkt'] 			: 0;
	$herstellerId = 		(isset($_POST['HerstellerID'])) 		? $_POST['HerstellerID'] 		: 0;
	$preis = 				(isset($_POST['Preis'])) 				? $_POST['Preis'] 				: 0;
	$artikelnummer = 		(isset($_POST['Artikelnummer'])) 		? $_POST['Artikelnummer'] 		: 0;
	$verfuegbarkeit = 		(isset($_POST['Verfuegbarkeit'])) 		? $_POST['Verfuegbarkeit'] 		: 0;
	$herstellungsdatum = 	(isset($_POST['Herstellungsdatum'])) 	? $_POST['Herstellungsdatum'] 	: 0;
	$lieferkosten = 		(isset($_POST['Lieferkosten'])) 		? $_POST['Lieferkosten'] 		: 0;
	$lieferant = 			(isset($_POST['Lieferant'])) 			? $_POST['Lieferant'] 			: 0;
	$gesamtpreis = 			(isset($_POST['Gesamtpreis'])) 			? $_POST['Gesamtpreis'] 		: 0;

	$DatabaseStatement = $Database->prepare('
		INSERT INTO
			`haupttab`
		SET
			`ID` = :id,
			`Warenart` = :warenart,
			`Produkt` = :produkt,
			`HerstellerID` = :herstellerId,
			`Preis` = :preis,
			`Artikelnummer` = :artikelnummer,
			`Verfuegbarkeit` = :verfuegbarkeit,
			`Herstellungsdatum` = :herstellungsdatum,
			`Lieferkosten` = :lieferkosten,
			`Lieferant` = :lieferant,
			`Gesamtpreis` = :gesamtpreis
	');
	
	$DatabaseStatement->bindValue(':id', $id);
	$DatabaseStatement->bindValue(':warenart', $warenart);
	$DatabaseStatement->bindValue(':produkt', $produkt);
	$DatabaseStatement->bindValue(':herstellerId', $herstellerId);
	$DatabaseStatement->bindValue(':preis', $preis);
	$DatabaseStatement->bindValue(':artikelnummer', $artikelnummer);
	$DatabaseStatement->bindValue(':verfuegbarkeit', $verfuegbarkeit);
	$DatabaseStatement->bindValue(':herstellungsdatum', $herstellungsdatum);
	$DatabaseStatement->bindValue(':lieferkosten', $lieferkosten);
	$DatabaseStatement->bindValue(':lieferant', $lieferant);
	$DatabaseStatement->bindValue(':gesamtpreis', $gesamtpreis);
	$success = $DatabaseStatement->execute();
}

$body = fetch_template('eingabe.html',array(
	'success' => $success
));
require DIR . '/template/include/global.html';
 
Danke für die Antworten und Anmerkungen. Ich nehme mich, sobald Luft da ist, der Sache an.
Mir sind am gestrigen tag selbst noch viele Unstimmigkeiten aufgefallen. Mal schauen was ich davon in den Antworten so wiederfinde :)
 
Haudi!

Nachdem ich mich mit der Thematik gründlicher auseinander gesetzt habe, bin ich leider immer noch nicht weitergekommen, was das einfügen der übergebenen Formulardaten, an die Datenbank anbelangt. :(
Mehr als nach Vorgabe eines Buches zu programmieren ist bei mir nicht drin.
Von Abstraktionen und freier Programmierung ganz zu schweigen.
Möchte euch beiden trotzdem danken für die Mühe! Und ganz vergeben wars ja doch nicht.


@ d4rkkenny

Die Sache mit der "form" Geschichte hat so weit geklappt.
Aber den 2. Teil mit dem Code verstehe ich nicht. In das Feld 'tbl_feld_name3' gehört ja offensichtlich der Name meiner mit "Post" bzw. "Get" übergebenen Variablen. Aber das spätere "VALUES" und der darauffolgende Code ist mir ein Rätsel.


@ Osbes

Leider ist mir das einfach viel zu kompliziert. Ich kann mit dem Code einfach nichts anfangen.
Mein Verständnis dafür ist gerade zu mikroskopisch.
Die beiden 49 Zeiler Code am Ende deines Textes, habe ich versucht an meine Situation anzupassen,
ohne die zusätzlichen Dateien zu erstellen, welche du oben genannt hast.
Eine Fehlermeldung habe ich zwar nicht bekommen. Allerdings auch keinen Eintrag in die Datenbank.
Mal schauen was ich daraus noch machen kann.
 
Wie sieht denn dein aktueller Quelltext aus?
 
Oha, das ist jetzt alles doch sehr "gemixt".

Ich beziehe mich jetzt erstmal nur auf die Datei "verarbeitung.php".

Du hast hier sowohl HTML eingebunden, als auch
PHP:
$body = fetch_template(DIR . '/template/global.html');
require('include/global.html');
was schon mal semantisch falsch ist, da die Templates dazu dienen sollen die Logik von der Darstellung zu trennen, was zu einer besseren Wartbarkeit und Erweiterbarkeit führt.

Ich würd daher die Datei zunächst zu
PHP:
<?php
$db_server='localhost';
$db_user='root';
$db_passwort='';
$db_name='sb';

$verbindung=mysql_connect($db_server,$db_user,$db_passwort);
if(!$verbindung)
die("der Server kann nicht erreicht werden.");
if(!mysql_select_db($db_name,$verbindung))
die("Die Datenbank kann nicht angesprochen werden.");


$success = false;
if(isset($_POST['send']))
{
	$id = (isset($_POST['id'])) 					? $_POST['id'] : 0;
	$warenart = (isset($_POST['Warenart'])) 			? $_POST['Warenart'] : 0;
	$produkt = (isset($_POST['Produkt'])) 				? $_POST['Produkt'] : 0;
	$herstellerId = (isset($_POST['HerstellerID'])) 		? $_POST['HerstellerID'] : 0;
	$preis = (isset($_POST['Preis'])) 				? $_POST['Preis'] : 0;
	$artikelnummer = (isset($_POST['Artikelnummer'])) 		? $_POST['Artikelnummer'] : 0;
	$verfuegbarkeit = (isset($_POST['Verfuegbarkeit'])) 		? $_POST['Verfuegbarkeit'] : 0;
	$herstellungsdatum = (isset($_POST['Herstellungsdatum'])) 	? $_POST['Herstellungsdatum'] : 0;
	$lieferkosten = (isset($_POST['Lieferkosten'])) 		? $_POST['Lieferkosten'] : 0;
	$lieferant = (isset($_POST['Lieferant'])) 			? $_POST['Lieferant'] : 0;
	$gesamtpreis = (isset($_POST['Gesamtpreis'])) 			? $_POST['Gesamtpreis'] : 0;

	$DatabaseStatement = $Database->prepare('
		INSERT INTO
			`haupttab`
		SET
			`ID` = :id
			`Warenart` = :warenart
			`Produkt` = :produkt
			`HerstellerID` = :herstellerId
			`Preis` = :preis
			`Artikelnummer` = :artikelnummer
			`Verfuegbarkeit` = :verfuegbarkeit
			`Herstellungsdatum` = :herstellungsdatum
			`Lieferkosten` = :lieferkosten
			`Lieferant` = :lieferant
			`Gesamtpreis` = :gesamtpreis
	');

	$DatabaseStatement->bindValue(':id', $id);
	$DatabaseStatement->bindValue(':warenart', $warenart);
	$DatabaseStatement->bindValue(':produkt', $produkt);
	$DatabaseStatement->bindValue(':herstellerId', $herstellerId);
	$DatabaseStatement->bindValue(':preis', $preis);
	$DatabaseStatement->bindValue(':artikelnummer', $artikelnummer);
	$DatabaseStatement->bindValue(':verfuegbarkeit', $verfuegbarkeit);
	$DatabaseStatement->bindValue(':herstellungsdatum', $herstellungsdatum);
	$DatabaseStatement->bindValue(':lieferkosten', $lieferkosten);
	$DatabaseStatement->bindValue(':lieferant', $lieferant);
	$DatabaseStatement->bindValue(':gesamtpreis', $gesamtpreis);
	$success = $DatabaseStatement->execute();
}

$body = fetch_template(DIR . '/template/global.html');
require 'include/global.html';
?>
umschreiben.
Achtung, hier sind immernoch Fehler drin, ich will nur alles Stück für Stück dokumentieren.

Danach sollten wir noch wie angesprochen das "?>" entfernen, da es in einer reinen PHP-Datei eher zu unbeabsichtigten Fehler führen kann.

Als nächstes fällt auf, dass die Funktion "fetch_template" nicht definiert wurde (es handelt sich hierbei um keine Funktion welche PHP sozusagen mitliefert).
Dies folgt sehr stark darauf, die die von mir konzipierte Ordner-Struktur mit den zugehörigen Dateien nicht existiert.
Ich würde dir empfehlen dies erstmal einfach hinzunehmen und die Datein anzulegen, auch wenn dir deren exakte Funktionsweise noch nicht klar ist.
Es ist viel besser am Anfang eine ordentliche Projektstruktur aufzubauen, als dies später zu realisieren (viele Projekte sterben daran auch, da es dann meist schon viel zu aufwendig ist).

Daher solltest du zunächst folgende Ordner anlegen
Code:
mkdir include
mkdir template

in dem "include"-Ordner solltest du des Weiteren folgende Dateien einfügen:

template.php
PHP:
<?php
function fetch_template($filename, array $vars = array())
{
	$filepath = DIR . '/template/' . $filename;
 
	if(!file_exists($filepath))
	{
		throw new Exception(sprintf('could not find %s'), $filepath);
		return null;
	}
 
	extract($vars);
	ob_start();
		require($filepath);
		$template = ob_get_contents();
	ob_end_clean();
	return $template;
}

global.php
PHP:
<?php
define('DIR', dirname(__FILE__) . '/..');
 
require 'template.php';
 
$Database = new PDO('mysql:host=localhost;dbname=database', 'user', 'password');

Wie man sieht habe ich in der global.php auch direkt die Datenbank eingebunden, aber dazu komme ich gleich nochmal.

Damit nun die "verarbeitung.php" auch mit der "global.php" und somit auch der "template.php" arbeiten kann müssen wir diese noch einbinden und zwar über
PHP:
require './include/global.php'

Unsere "verarbeitung.php" sollte nun wie folgt aussehen:
PHP:
<?php
require './include/global.php';

$db_server='localhost';
$db_user='root';
$db_passwort='';
$db_name='sb';

$verbindung=mysql_connect($db_server,$db_user,$db_passwort);
if(!$verbindung)
die("der Server kann nicht erreicht werden.");
if(!mysql_select_db($db_name,$verbindung))
die("Die Datenbank kann nicht angesprochen werden.");

$success = false;
if(isset($_POST['send']))
{
	$id = (isset($_POST['id'])) 					? $_POST['id'] : 0;
	$warenart = (isset($_POST['Warenart'])) 			? $_POST['Warenart'] : 0;
	$produkt = (isset($_POST['Produkt'])) 				? $_POST['Produkt'] : 0;
	$herstellerId = (isset($_POST['HerstellerID'])) 		? $_POST['HerstellerID'] : 0;
	$preis = (isset($_POST['Preis'])) 				? $_POST['Preis'] : 0;
	$artikelnummer = (isset($_POST['Artikelnummer'])) 		? $_POST['Artikelnummer'] : 0;
	$verfuegbarkeit = (isset($_POST['Verfuegbarkeit'])) 		? $_POST['Verfuegbarkeit'] : 0;
	$herstellungsdatum = (isset($_POST['Herstellungsdatum'])) 	? $_POST['Herstellungsdatum'] : 0;
	$lieferkosten = (isset($_POST['Lieferkosten'])) 		? $_POST['Lieferkosten'] : 0;
	$lieferant = (isset($_POST['Lieferant'])) 			? $_POST['Lieferant'] : 0;
	$gesamtpreis = (isset($_POST['Gesamtpreis'])) 			? $_POST['Gesamtpreis'] : 0;

	$DatabaseStatement = $Database->prepare('
		INSERT INTO
			`haupttab`
		SET
			`ID` = :id
			`Warenart` = :warenart
			`Produkt` = :produkt
			`HerstellerID` = :herstellerId
			`Preis` = :preis
			`Artikelnummer` = :artikelnummer
			`Verfuegbarkeit` = :verfuegbarkeit
			`Herstellungsdatum` = :herstellungsdatum
			`Lieferkosten` = :lieferkosten
			`Lieferant` = :lieferant
			`Gesamtpreis` = :gesamtpreis
	');

	$DatabaseStatement->bindValue(':id', $id);
	$DatabaseStatement->bindValue(':warenart', $warenart);
	$DatabaseStatement->bindValue(':produkt', $produkt);
	$DatabaseStatement->bindValue(':herstellerId', $herstellerId);
	$DatabaseStatement->bindValue(':preis', $preis);
	$DatabaseStatement->bindValue(':artikelnummer', $artikelnummer);
	$DatabaseStatement->bindValue(':verfuegbarkeit', $verfuegbarkeit);
	$DatabaseStatement->bindValue(':herstellungsdatum', $herstellungsdatum);
	$DatabaseStatement->bindValue(':lieferkosten', $lieferkosten);
	$DatabaseStatement->bindValue(':lieferant', $lieferant);
	$DatabaseStatement->bindValue(':gesamtpreis', $gesamtpreis);
	$success = $DatabaseStatement->execute();
}

$body = fetch_template('eingabe.html',array(
	'success' => $success
));
require DIR . '/template/include/global.html';

Ich habe noch einen kleinen Fehler beseitigt den ich wohl in meiner Müdigkeit eingebaut habe und zwar sollte es
PHP:
require DIR . '/template/include/global.html';
und nicht
PHP:
require 'include/global.html';
lauten, da der Pfad zur Datei sonst nicht stimmt.
Außerdem sollte es
PHP:
$body = fetch_template(eingabe.html');
und nicht
PHP:
$body = fetch_template(DIR . '/template/global.html');
lauten, da er für den Inhalt ja die eingabe.html laden soll und die "fetch_template"-Funktion den zugehörigen Dateipfad schon hinzufügt.


Nun hast du hier sowohl die sehr alte Funktion "mysql_connect" genutzt um eine Verbindung zur Datenbank aufzubauen, beziehst dich jedoch auf die Variable "$Database", welche nicht definiert war.

Diese Variable habe ich jetzt in der global.php definiert und dort auch die Verbindung zur Datenbank hergestellt (somit können die alten "mysql_*"-Funktionen gelöscht werden).
Dies ist auch der Punkt, auf den ich nochmal zurückkommen wollte.
Hinzu kommt ein Fehler von mir, den ich wohl nicht mehr rechtzeitig korregiert habe, denn die einzelnen Eingaben im SQL-Befehl müssen mit einem Komma verbinden sein, also

SQL:
			`ID` = :id,
			`Warenart` = :warenart,
			`Produkt` = :produkt,
			`HerstellerID` = :herstellerId,
			`Preis` = :preis,
			`Artikelnummer` = :artikelnummer,
			`Verfuegbarkeit` = :verfuegbarkeit,
			`Herstellungsdatum` = :herstellungsdatum,
			`Lieferkosten` = :lieferkosten,
			`Lieferant` = :lieferant,
			`Gesamtpreis` = :gesamtpreis
und nicht
SQL:
			`ID` = :id
			`Warenart` = :warenart
			`Produkt` = :produkt
			`HerstellerID` = :herstellerId
			`Preis` = :preis
			`Artikelnummer` = :artikelnummer
			`Verfuegbarkeit` = :verfuegbarkeit
			`Herstellungsdatum` = :herstellungsdatum
			`Lieferkosten` = :lieferkosten
			`Lieferant` = :lieferant
			`Gesamtpreis` = :gesamtpreis

Somit sollte die Datei nun so aussehen:
PHP:
<?php
require './include/global.php';

$success = false;
if(isset($_POST['send']))
{
	$id = (isset($_POST['id'])) 					? $_POST['id'] : 0;
	$warenart = (isset($_POST['Warenart'])) 			? $_POST['Warenart'] : 0;
	$produkt = (isset($_POST['Produkt'])) 				? $_POST['Produkt'] : 0;
	$herstellerId = (isset($_POST['HerstellerID'])) 		? $_POST['HerstellerID'] : 0;
	$preis = (isset($_POST['Preis'])) 				? $_POST['Preis'] : 0;
	$artikelnummer = (isset($_POST['Artikelnummer'])) 		? $_POST['Artikelnummer'] : 0;
	$verfuegbarkeit = (isset($_POST['Verfuegbarkeit'])) 		? $_POST['Verfuegbarkeit'] : 0;
	$herstellungsdatum = (isset($_POST['Herstellungsdatum'])) 	? $_POST['Herstellungsdatum'] : 0;
	$lieferkosten = (isset($_POST['Lieferkosten'])) 		? $_POST['Lieferkosten'] : 0;
	$lieferant = (isset($_POST['Lieferant'])) 			? $_POST['Lieferant'] : 0;
	$gesamtpreis = (isset($_POST['Gesamtpreis'])) 			? $_POST['Gesamtpreis'] : 0;

	$DatabaseStatement = $Database->prepare('
		INSERT INTO
			`haupttab`
		SET
			`ID` = :id,
			`Warenart` = :warenart,
			`Produkt` = :produkt,
			`HerstellerID` = :herstellerId,
			`Preis` = :preis,
			`Artikelnummer` = :artikelnummer,
			`Verfuegbarkeit` = :verfuegbarkeit,
			`Herstellungsdatum` = :herstellungsdatum,
			`Lieferkosten` = :lieferkosten,
			`Lieferant` = :lieferant,
			`Gesamtpreis` = :gesamtpreis
	');

	$DatabaseStatement->bindValue(':id', $id);
	$DatabaseStatement->bindValue(':warenart', $warenart);
	$DatabaseStatement->bindValue(':produkt', $produkt);
	$DatabaseStatement->bindValue(':herstellerId', $herstellerId);
	$DatabaseStatement->bindValue(':preis', $preis);
	$DatabaseStatement->bindValue(':artikelnummer', $artikelnummer);
	$DatabaseStatement->bindValue(':verfuegbarkeit', $verfuegbarkeit);
	$DatabaseStatement->bindValue(':herstellungsdatum', $herstellungsdatum);
	$DatabaseStatement->bindValue(':lieferkosten', $lieferkosten);
	$DatabaseStatement->bindValue(':lieferant', $lieferant);
	$DatabaseStatement->bindValue(':gesamtpreis', $gesamtpreis);
	$success = $DatabaseStatement->execute();
}

$body = fetch_template('eingabe.html',array(
	'success' => $success
));
require DIR . '/template/include/global.html';

Kommen wir nun zu den HTML-Dateien.

Zunächst solltest du einen DTD definieren, sonst schalten einige Browser in den Quirks-Modus oder interpretieren die Seite gänzlich falsch.

Wenn ich mir deinen Quelltext so anschaue, ist für dich wohl HTML 4.01 Transitional geeignet.

Daher solltes du vor dem "<html>"-Tag folgendes hinzufügen:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Wie schon angesprochen machen wir dies in der /template/include/global.html

Diese sollte wie folgt aussehen:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<title>Artikel DB</title>
</head>
<body>
	<?=$body ?>
</body>
</html>

Die /template/eingabe.html sieht dann wie folgt aus:
Code:
Willkommen!
<br>
Hier können Lieferantendaten eingeben und in/über eine SQL Datenbank eingegeben/abgefragt werden.
<br>
Die Datensätze sind in einzelnen Sessions organisiert. Daher..
<br>
Jede Session beinhaltet eine komplette Übersicht aller relevanten Informationen zu dem Objekt.
<br><br>

<? if($success) { ?>
Ihre Eingabe wurden gespeichert!
<? } ?>

<form action="" method="post">
	ID:
	<input type="text" name="id">
	<br>
	Warenart:
	<input type="text" name="Warenart">
	<br>
	Produkt:
	<input type="text" name="Produkt">
	<br>
	HerstellerID:
	<input type="text" name="HerstellerID">
	<br>
	Preis:
	<input type="text" name="Preis">
	<br>
	Artikelnummer:
	<input type="text" name="Artikelnummer">
	<br>
	Verfuegbarkeit:
	<input type="text" name="Verfuegbarkeit">
	<br>
	Herstellungsdatum:
	<input type="text" name="Herstellungsdatum" >
	<br>
	Lieferkosten:
	<input type="text" name="Lieferkosten">
	<br>
	Lieferant:
	<input type="text" name="Lieferant">
	<br>
	Gesamtpreis:
	<input type="text" name="Gesamtpreis">
	<br>
	<input type="submit" name="send" value="Abschicken">
</form>

Zu guter letzt müssen wir jetzt noch die "verarbeitung.php" in "eingabe.php" umbennen.

Ich habe dies jetzt bei mir auch getestet und es als Anhang hinzugefügt.

Es heißt im übrigen PHP und nicht PhP ;)
 

Attachments

Auch auf die Gefahr hin zum Teufel gejagt zu werden ...
Deiner Ausdauer und Bereitschaft hier zu helfen gebührt Huldigung!
Leider gibt es immer noch Schwierigkeiten.

Ich hab mich genau an deine Beschreibung gehalten und die Order + Code erstellt.
Trotzdem konnte ich kein zufriedenstellendes Ergebnis verbuchen.
Nachfolgend stelle ich nochmal alle Files zur Verfügung, nebst Erklärung der Sachlage.

______________________________________
"b00223_b_uf_version"
Das war meine erste Version die ich nach deiner Anleitung erstellt habe. Gab ein kleines Verständnisproblem mit den Unterordnern. Und in der "eingabe.php" habe ich noch zu beginn "<?php" eingefügt zwecks test.
Sollte sich ja um eine PHP Datei handeln und deshalb erforderlich oder ?!

Beim ausfüllen und absenden des Formulars über "eingabe.php" erscheint folgende Fehlermeldung:
Code:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'user'@'localhost' (using password: YES)' in C:\xampp\htdocs\include\global.php:6 Stack trace: #0 C:\xampp\htdocs\include\global.php(6): PDO->__construct('mysql:host=loca...', 'user', 'password') #1 C:\xampp\htdocs\eingabe.php(2): require('C:\xampp\htdocs...') #2 {main} thrown in C:\xampp\htdocs\include\global.php on line 6

______________________________________
b00223c_uf_version
Hierbei handelt es sich im grunde fast um die gleichen Dateien, wie in "b00223b_uf_version".
Ein unterschied ist das ich hier komplett den Code übernommen habe.

Fehlermeldung hier:
Code:
require './include/global.php'; $success = false; if(isset($_POST['send'])) { $id = (isset($_POST['id'])) ? $_POST['id'] : 0; $warenart = (isset($_POST['Warenart'])) ? $_POST['Warenart'] : 0; $produkt = (isset($_POST['Produkt'])) ? $_POST['Produkt'] : 0; $herstellerId = (isset($_POST['HerstellerID'])) ? $_POST['HerstellerID'] : 0; $preis = (isset($_POST['Preis'])) ? $_POST['Preis'] : 0; $artikelnummer = (isset($_POST['Artikelnummer'])) ? $_POST['Artikelnummer'] : 0; $verfuegbarkeit = (isset($_POST['Verfuegbarkeit'])) ? $_POST['Verfuegbarkeit'] : 0; $herstellungsdatum = (isset($_POST['Herstellungsdatum'])) ? $_POST['Herstellungsdatum'] : 0; $lieferkosten = (isset($_POST['Lieferkosten'])) ? $_POST['Lieferkosten'] : 0; $lieferant = (isset($_POST['Lieferant'])) ? $_POST['Lieferant'] : 0; $gesamtpreis = (isset($_POST['Gesamtpreis'])) ? $_POST['Gesamtpreis'] : 0; $DatabaseStatement = $Database->prepare(' INSERT INTO `haupttab` SET `ID` = :id, `Warenart` = :warenart, `Produkt` = :produkt, `HerstellerID` = :herstellerId, `Preis` = :preis, `Artikelnummer` = :artikelnummer, `Verfuegbarkeit` = :verfuegbarkeit, `Herstellungsdatum` = :herstellungsdatum, `Lieferkosten` = :lieferkosten, `Lieferant` = :lieferant, `Gesamtpreis` = :gesamtpreis '); $DatabaseStatement->bindValue(':id', $id); $DatabaseStatement->bindValue(':warenart', $warenart); $DatabaseStatement->bindValue(':produkt', $produkt); $DatabaseStatement->bindValue(':herstellerId', $herstellerId); $DatabaseStatement->bindValue(':preis', $preis); $DatabaseStatement->bindValue(':artikelnummer', $artikelnummer); $DatabaseStatement->bindValue(':verfuegbarkeit', $verfuegbarkeit); $DatabaseStatement->bindValue(':herstellungsdatum', $herstellungsdatum); $DatabaseStatement->bindValue(':lieferkosten', $lieferkosten); $DatabaseStatement->bindValue(':lieferant', $lieferant); $DatabaseStatement->bindValue(':gesamtpreis', $gesamtpreis); $success = $DatabaseStatement->execute(); } $body = fetch_template('eingabe.html',array( 'success' => $success )); require DIR . '/template/include/global.html';

______________________________________
<Osbes_uf_version>
Hier müsste ich jetzt irgendwie meine "Startseite.php" mit allem drum und dran einbringen. Das wäre wieder ein eigenes Kapitel ^^ ..
Aber auch wenn ich direkt die "eingabe.html" unter "\template" aufrufe, habe ich zwar mein Formularfeld zur Verfügung und es gibt auch keinen direkten fehler nach dem abschicken. Aber die Daten werden auch hier nicht in die Datenbank geschrieben :(

...
Damit über die ganze Prozedur das Hauptziel nicht aus den Augen gerät:
Mein Ziel ist es, Über die "Startseite.php" ein Link zu "Eingabe.php" aufzurufen in ein Formular Eingaben entgegen nimmt und diese über die "Verarbeitung.php" an die SQL-Datenbank (Xampp) weiterschickt und einträgt.
Andere/bessere Vorgehensweise natürlich auch gern. Aber es soll zu diesem Ziel führen.

Datenbankname: artikeldb
User: root
Passwort:



...
Konkrete Fragen fallen mir ggf. später noch ein. Erstmal den Kopf freikriegen.
Danke schonmal für die Hilfe!
 

Attachments

Ok, also die Fehlermeldung bei der 1. Version ("b00223_b_uf_version") weißt schon auf das Entscheidene Problem hin:

Access denied for user 'user'@'localhost' (using password: YES)

Dies bedetet, dass PDO keine Verbindung zur MySQL-Datenbank herstellen konnte.
Dies liegt wohl daran, dass du keinen Benutzer "user" hast (oder das Passwort nicht stimmt, aber ich gehe schwer davon aus, dass erstes schon der Fall ist).

Die Definition für den Nutzer steht in der /include/global.php, derzeit ist es:
PHP:
$Database = new PDO('mysql:host=localhost;dbname=database', 'user', 'password');

Nach deinen Angaben müsste es
PHP:
$Database = new PDO('mysql:host=localhost;dbname=artikeldb', 'root');
lauten.

Die Allg. Definition ist findest du im Handbuch unter folgendem Punkt:
http://www.php.net/manual/de/ref.pdo-mysql.connection.php




Bei der 2. Version, der "b00223c_uf_version" sehe ich leider bei deiem Beitrag keine Fehlermeldung, sondern ein Teil des Quellcodes.

Ich habe es mal bei mir eingebunden und der Fehler ist das fehlende "<?php", was du bei der 1. Version hinzugefügt hattest (muss ich wohl vergessen haben :( )
Damit der Interpreter weiß, dass nun Quelltext der Skriptsprache PHP kommt, muss "<?php" gesetzt werden.
Nur ein "?>" muss nicht gesetzt werden, sofern man nicht explizit den "PHP-Bereich" beenden will und darunter etwas anderes (z.B. HTML) einbinden will.

Wenn man dies setzt erhält man jedoch eine weitere Fehlermeldung und zwar:
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\b00223c_uf_version\include\global.php on line 6

Dies liegt daran, dass in der /include/global.php etwas fehlt.
Dort steht zum Schluss:
PHP:
$Database = new PDO('mysql:host=localhost;dbname=database', 'user', 'password'
hier müsste noch die schließende Klammer und ein Semikolon hin, also
PHP:
$Database = new PDO('mysql:host=localhost;dbname=database', 'user', 'password');

Danach kommst du wieder zum gleichen Fehler wie bei der 1. Version ("b00223_b_uf_version").




Templates sind nur "Teile" einer HTML Seite, welche man bei Bedarf zur gesamten Seite zusammen setzt. Der Grund dass man dies tut ist, dass z.B. jede Seite den gleichen Grundaufbau hat (das steht in unserer /template/include/global.html), oder etwas das gleiche Menu usw.
Damit man dies nicht immer neu tippen muss oder jede Datei bei einer Änderungen umschreiben muss, definiert man dies einmal in einem Template und bindes es dann bei Bedarf in die anderen Templates ein.

Aus diesem Grund ruft man ein Template auch nicht direkt auf, da es selbst nicht die Fähigkeit besitzt andere Templates einzubinden.
Das ist auch der gleiche Grund, warum das Formular nichts speichern konnte, da nur die PHP-Datei die dazu nötige Logik hat.
Korrekt wäre hier ein Verweis auf die eingabe.php

Es sollte außerdem nicht
Code:
<a href=". ./eingabe.php">Neuen Händler hinzufügen</a>
sondern
Code:
<a href="./eingabe.php">Neuen Händler hinzufügen</a>
lauten, denn "../" verweist auf den übergeordneten Ordner, während "./" auf den gleichen Ordner zeigt.
Und da beide Dateien im gleichen Ordner liegen ist "./" angebracht.

Entsprechend der eingabe.php legen wir dann zunächst wieder ein Template an und zwar /template/index.html

mit folgendem Inhalt:
Code:
Willkommen!<br>
Hier können Lieferantendaten eingeben und in/über eine SQL Datenbank eingegeben/abgefragt werden.<br>
Die Datensätze sind in einzelnen Sessions organisiert. Daher..<br>
Jede Session beinhaltet eine komplette Übersicht aller relevanten Informationen zu dem Objekt.<br><br>

<a href="./eingabe.php">Neuen Händler hinzufügen</a>
<br><br>
<a href="./ware.php">Neue Ware hinzufügen</a>
<br><br>
<a href="./angebot.php">Günstigstes Angebot ermitteln</a>
<br><br><br><br><br>
<a href="./auslesen.php">Datenbank auslesen</a>
<br><br><br><br><br>

Nach einem durchgeführten Preisvergleich kann das Ergebniss des Vergleichs abgespeichert und später erneut aufgerufen werden.<br>
<ul>
	<li>Mit "Session speichern" wird ein Vergleich mehrerer Hersteller und dessen Ergebniss
unter einer fortlaufenden ID nebst Datum abgespeichert.</li>
	<li>Mit "Session abrufen" kann ein früher erstellter Vergleich erneut aufgerufen werden.</li>
</ul>
<br><br>
<a href="./sessions.php">Session speichern</a>
<br><br>
<a href="./sessiona.php">Session abrufen</a>
<br><br>

und in das Hauptverzeichnis die Datei index.php mit dem Inhalt:
PHP:
<?php
require './include/global.php';

$body = fetch_template('index.html');
require DIR . '/template/include/global.html';

Des Weiteren habe ich index.php und nicht startseite.php verwendet, da der Apache Server standardmäßig so eingestellt ist, dass er bei einem reinen Aufruf des Ordner - also ohne Angabe der Datei - versucht Dateien wie (index.html, index.php, ...) zu laden.

D.h. wen du auf http://www.united-forum.de/ gehst, lädt Apache in Wirklichkeit http://www.united-forum.de/index.php

Ich habe es in meinem Beispiel vom letzten Beitrag einmal hinugefügt und die PDO Daten deinen Angaben nach angepasst.
 

Attachments

Grüß dich!

Ich habe jetzt die von dir vorgeschlagenen Veränderungen übernommen und auch mit deinerm Upload verglichen. Von dem Standpunkt siehts gut aus, aber funktionieren tut es nach wie vor nicht.
Ich habe zwar keine Fehlermeldungen mehr, aber dafür auch sonst keine Anzeige außer einem weißen Bildschirm.
Über die "index.php" im Hauptverzeichnis sollte doch über die ganzen Templates Verlinkungen die Funktion meiner "Startseite.php" übernommen und angezeigt werden oder nicht ?
Ich schätze, dass die ganze Verlinkung probleme macht.

Zwecks test habe ich die Ordnerstruktur mit meinen bereits erstellen Dateien vervollständig. Aber sowohl mit als auch ohne, habe ich das gleiche Problem. Woran liegt das ?

Ein ungleichmäßigkeit ist mir aufgefallen unter "template\include\global.html." Den Code habe ich aus deinem Exemplar übernommen und eingefügt. Den ursprünglichen Code dafür ausgeklammert. Hat aber natürlich auch keinen Effekt gebracht.
 

Attachments

Also ich habe deine Version gerade runtergeladen und meine MySQL Daten angegeben und damit geht es problemlos.

Hast du auch die Tabelle 'haupttab' entsprechend angelegt ?

Kommentare in HTML werden mit

Code:
<!--
Dies ist ein Kommentar
-->

gemacht, nicht mit
Code:
/*
Dies ist ein Kommentar in PHP und anderen Sprachen (aber nicht HTML)
*/

Füge einmal in der eingabe.php unter
PHP:
$success = $DatabaseStatement->execute();

noch folgendes hinzu:
PHP:
print_r($DatabaseStatement->errorInfo());

Damit werden Fehler während der Verarbeitung der SQL-Anweisung angezeigt.
 
hehe ... meine Fehlerhafte Kommentarfunktion hatte was gutes ;)

In der besagten Datei "template\include\global.html" wurde mir
Code:
/* */
angezeigt. Nachdem ich das Kommentar nebst Code gänzlich gelöscht habe, wurde es auch nicht besser.
 
Hast du
PHP:
print_r($DatabaseStatement->errorInfo());
schon hinzugefügt ?

Wir können gerne auch per Skype darüber reden.
 
Jo habe ich. Deswegen konnte ich die Meldung erst jetzt sehen.

...
Hast du alternativ Ts2/Ts3 ?!

Würde dir die Daten bei Bestätigung zukommen lassen.
 
Ja, TS habe ich auch (bevorzuge aber Mumble, aber ist ok ^^)
 
Erfolg!

Haudi!

Nach einigen Problemen ist das Problem gelöst!
Nochmal vielen Dank an Osbes für die kompetente Hilfe. Gibt Orden :respekt

Ps: * Du musst erst andere Beiträge von anderen Usern bewerten bevor du Osbes erneut bewerten kannst*
....werde das dann beizeiten nachholen :)
 
Back
Top Bottom