Hi erstmal!
Ich bin zwar auch noch richtig am Anfang, was PHP + MySQL angeht, aber ich versuche mich mal an Deiner Aufgabe.
- Code: Select all
<?php
Ist wohl richtig so, bedarf keiner weiteren Erklärung. *g*
- Code: Select all
Datenbank: `add2_php`
CREATE TABLE kaugummisorten (
id int(11) NOT NULL auto_increment,
name text NOT NULL,
geschmack int(11) NOT NULL default '0',
farbe text NOT NULL,
preis varchar(15) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
Das ist der SQL-Query zur Erstellung einer Tabelle mit dem Namen
kaugummisorten. Voraussetzung ist, dass Du eine Datenbank mit dem Namen
add2_php angelegt hast. Diese Datenbank, ebenso wie die Tabelle erstellst Du am einfachsten über PHPMyAdmin. Nachdem Du die Datenbank erstellt hast, fügst Du einfach obigen Query in die SQL-Konsole ein.
- Code: Select all
$conn = mysql_connect("localhost", "root", "") or die("mySQL-Fehler0: " . mysql_error());
mysql_select_db("add2_php") or die("Auswahl der Datenbank fehlgeschlagen");
if ($mode == "edit") {
if ($id) {
$res = mysql_query("SELECT * FROM kaugummisorten WHERE id = ".$id);
$d = mysql_fetch_array($res);
}
?>
In diesen Zeilen kann ich soweit keine Fehler entdecken.
- Code: Select all
<form method="post" action="./">
<input type="hidden" name="mode" value="save">
<input type="hidden" name="id" value="">
<table border="0" cellpadding="2" cellspacing="1" width="300">
<tr>
<td>Bearbeiten</td>
</tr>
<tr>
<td>
name:
</td>
<td>
<input type="text" name="name" value="">
</td>
</tr>
<tr>
<td>
geschmack:
</td>
<td>
<select name=geschmack>
<option value=0>Bitte wählen!</option>
Auch hier erkenne ich keine Fehler.
- Code: Select all
<?php
if ($d[geschmack] == 1)
echo "<opton value="1" selected>Süß</option>";
if ($d[geschmack] == 2)
echo "<opton value="2" selected>Sauer</option>";
if ($d[geschmack] != 1 && $d[geschmack] != 2)
echo "<opton value="3" selected>Anders</option>";
?>
Korrigiert mich, wenn ich falsch liege, aber diese Zeilen müssten m.E. wiefolgt heißen:
- Code: Select all
<?php
if ($d[geschmack] == 1)
echo "<option value='1' selected>Süß</option>";
if ($d[geschmack] == 2)
echo "<option value='2' selected>Sauer</option>";
if ($d[geschmack] != 1 && $d[geschmack] != 2)
echo "<option value='3' selected>Anders</option>";
?>
option statt
opton und einfache Anführungszeichen (
'...')statt Doppelten(
"...").
- Code: Select all
</td></tr>
<tr><td>farbe:</td><td><input type="text" name="farbe" value=""></td></tr>
<tr><td>preis:</td><td><input type="text" name="preis" value=""></td></tr>
<tr><td><input type="submit"></td></tr>
</table>
</form>
Das ist soweit ich es beurteilen kann auch alles richtig.
- Code: Select all
<?php
} elseif ($mode == "save") {
mysql_query("UPDATE kaugummisorten SET
name = \"$name\", geschmack=\"$geschmack\", farbe=\"$farbe\",
preis=\"preis\"
WHERE id = $id");
echo "gespeichert!";
} else {
$res = mysql_query("SELECT * FROM kaugummisorten");
$sorten = array();
while ($d = mysql_fetch_array($res))
$sorten = array_merge($sorten, array($d));
$i = 0;
?>
Bei diesem Teil bin ich mir an einigen Stellen unsicher. Persönlich würde es mich auch interessieren, wie hier z.B. die Anführungszeichen zu setzen sind.
- Code: Select all
<table border="0" cellpadding="2" cellspacing="1" width="300">
<?php
foreach($sorten AS $v) {
$preis = str_replace(".", ",", $v[preis]);
echo "<tr><td>$i</td><td>$v[id]</td><td>$v[name]</td><td>";
if ($v[geschmack] == 1) echo "Süß";
elseif ($v[geschmack] == 2) echo "Sauer";
else echo "Anders";
}
?>
</td><td>$v[farbe]</td><td>$preis</td><td><a href=\"./?id=$v[id]&mode=edit\">Bearbeiten</a></tr>
</table><a href="?mode=edit">hinzufügen</a>
In diesem Abschnitt kann ich ebenfalls nicht 100%ig folgen. Wiederum bitte ich um weitere Unterstützung von den erfahreneren Programmierern.
- Code: Select all
<?php
}
mysql_close($conn);
?>
Bei diesem Teil bin ich mir aber wieder sicher, dass er in Ordnung ist. ;D
Zur besseren Übersicht poste ich mal meine teilweise korrigierte und eingerückte Version.
- Code: Select all
<?php
/*
* Datenbank: `add2_php`
*
* CREATE TABLE kaugummisorten (
* id int(11) NOT NULL auto_increment,
* name text NOT NULL,
* geschmack int(11) NOT NULL default '0',
* farbe text NOT NULL,
* preis varchar(15) NOT NULL default '',
* PRIMARY KEY (id)
* ) TYPE=MyISAM;
*
*/
$conn = mysql_connect("localhost", "root", "mismatch") or die("mySQL-Fehler0: " . mysql_error());
mysql_select_db("add2_php") or die("Auswahl der Datenbank fehlgeschlagen");
if ($mode == "edit") {
if ($id) {
$res = mysql_query("SELECT * FROM kaugummisorten WHERE id = ".$id);
$d = mysql_fetch_array($res);
}
?>
<form method="post" action="./">
<input type="hidden" name="mode" value="save">
<input type="hidden" name="id" value="">
<table border="0" cellpadding="2" cellspacing="1" width="300">
<tr>
<td>Bearbeiten</td>
</tr>
<tr>
<td>
name:
</td>
<td>
<input type="text" name="name" value="">
</td>
</tr>
<tr>
<td>
geschmack:
</td>
<td>
<select name=geschmack>
<option value=0>Bitte wählen!</option>
<?php
if ($d[geschmack] == 1)
echo "<option value='1' selected>Süß</option>";
if ($d[geschmack] == 2)
echo "<option value='2' selected>Sauer</option>";
if ($d[geschmack] != 1 && $d[geschmack] != 2)
echo "<option value='3' selected>Anders</option>";
?>
</td>
</tr>
<tr>
<td>
farbe:
</td>
<td>
<input type="text" name="farbe" value="">
</td>
</tr>
<tr>
<td>
preis:
</td>
<td>
<input type="text" name="preis" value="">
</td>
</tr>
<tr>
<td>
<input type="submit">
</td>
</tr>
</table>
</form>
<?php
} elseif ($mode == "save") {
mysql_query("
UPDATE kaugummisorten SET
name = \"$name\",
geschmack=\"$geschmack\",
farbe=\"$farbe\",
preis=\"preis\"
WHERE id = $id
");
echo "gespeichert!";
} else {
$res = mysql_query("SELECT * FROM kaugummisorten");
$sorten = array();
while ($d = mysql_fetch_array($res))
$sorten = array_merge($sorten, array($d));
$i = 0;
?>
<table border="0" cellpadding="2" cellspacing="1" width="300">
<?php
foreach($sorten AS $v) {
$preis = str_replace(".", ",", $v[preis]);
echo "
<tr>
<td>
$i
</td>
<td>
$v[id]
</td>
<td>
$v[name]
</td>
<td>
";
if ($v[geschmack] == 1)
echo "Süß";
elseif ($v[geschmack] == 2)
echo "Sauer";
else
echo "Anders";
}
?>
</td>
<td>
$v[farbe]
</td>
<td>
$preis
</td>
<td>
<a href=\"./?id=$v[id]&mode=edit\">
Bearbeiten
</a>
</tr>
</table>
<a href="?mode=edit">hinzufügen</a>
<?php
}
mysql_close($conn);
?>
Wie bereits erwähnt bin ich mir an einigen Stellen nicht sicher, was verbessert werden muss, damit es funktioniert. Außerdem macht mir die starke Verschachtelung von HTML- und PHP-Abschnitten noch zu schaffen. Befasse mich damit erst seit einigen Tagen. Deshalb würde es mich freuen, wenn jemand mir und
fallin' angel anhand dieser Aufgabe etwas mehr Einblick in die PHP-Programmierung verschaffen könnte.
LG
~W