soyyo
Grünschnabel
Hallo....
ich denke mir mal daß meine Überschrift nicht ganz das Problem beschreibt.
Ich möchte vorab bemerken daß ich keine Person bin welche eine Benotung durch Uni oder sonstiges zum Weiterkommen hier sich erschleichen möchte. Bin 46, und tuhe dieses hier rein privat.
1. Ich habe eine db bestelldatenbank mit 5 Tabellen: artikel, bestellungen, kunden, gruppen und positionen. Wobei es in meinem Vorhaben nur um das Zusammenspiel der Tabellen artikel und gruppen geht. Mein Select zum löschen von Artikel möchte nicht richtig. Ich habe dazu eine Funktion function einfuegenSelect(); welche im html code funktioniert wie sie soll, aber ich möchte sie in die class artikel einfügen. Tuhe ich dieses erhalte ich eine Fehlermeldung: Fatal error: Call to undefined function einfuegenSelect() in C:\xampp\htdocs\ysql\7\e3_artikel_loeschen.php on line 40. Also einfuegenSelect in form.
Ich kann der Funktion keinen Zugriffsmodifizierer public oder sonstiges voranfügen, nicht in der html, und in der class geht ja eh nix.
Das ist die e3_artikel_loeschen.php
Anhang anzeigen 64969 Anhang anzeigen 64970
Es gibt in der artikel.class.php ganz unten eine alternative funktion für eine Select Variante. Hab ich auch probiert....aber nada.
Das tut sie eingebettet im html der e3_artikel_loeschen.php
hier das Select mit php in html

hier die tabelle artikel sql:

hier die db bestelldatenbank:
Vielen Dank für eure Aufmerksamkeit und Hilfe
ich denke mir mal daß meine Überschrift nicht ganz das Problem beschreibt.
Ich möchte vorab bemerken daß ich keine Person bin welche eine Benotung durch Uni oder sonstiges zum Weiterkommen hier sich erschleichen möchte. Bin 46, und tuhe dieses hier rein privat.
1. Ich habe eine db bestelldatenbank mit 5 Tabellen: artikel, bestellungen, kunden, gruppen und positionen. Wobei es in meinem Vorhaben nur um das Zusammenspiel der Tabellen artikel und gruppen geht. Mein Select zum löschen von Artikel möchte nicht richtig. Ich habe dazu eine Funktion function einfuegenSelect(); welche im html code funktioniert wie sie soll, aber ich möchte sie in die class artikel einfügen. Tuhe ich dieses erhalte ich eine Fehlermeldung: Fatal error: Call to undefined function einfuegenSelect() in C:\xampp\htdocs\ysql\7\e3_artikel_loeschen.php on line 40. Also einfuegenSelect in form.
Code:
<form action="e3_artikel_loeschen.php" method="POST">
<label for="artikel">Artikel: </label>
<?php echo einfuegenSelect(); ?> <input type="submit" value="Datensatz löschen" />
</form>
Ich kann der Funktion keinen Zugriffsmodifizierer public oder sonstiges voranfügen, nicht in der html, und in der class geht ja eh nix.
Das ist die e3_artikel_loeschen.php
HTML:
<head>
<meta http-equiv="content-type" content="text/html" />
<meta charset="utf-8" />
<title>Artikel löschen</title>
<?php
require_once("artikel.class.php");
?>
<link rel="stylesheet" type="text/css" href="styles.css" />
<?php
function einfuegenSelect() {
require_once("db.inc.php");
$sql = "SELECT anr,
name
FROM artikel";
if ($stmt = $mysqli -> prepare($sql)) {
$stmt -> execute();
$stmt -> bind_result($anr, $name);
$s = "<select name=\"artikel\" id=\"artikel\"\>";
while ($stmt -> fetch()) {
$s = $s ."<option value=\"". $anr ."\"";
$s = $s .">" .$anr ." | " .$name ."</option>";
}
$s = $s ."</select>";
return $s;
$stmt->close();
}
$mysqli->close();
}
?>
</head>
<body>
<div class="ausgabe">
<?php
require_once("navigation.inc.php");
?>
<?php
if (isset($_POST["artikel"])) {
$artikel = new artikel();
$artikel -> loeschen($_POST["artikel"]);
echo "<h1>Artikel gelöscht!</h>";
header("refresh:3;url=e3_artikel_loeschen.php");
}
else {
?>
<form action="e3_artikel_loeschen.php" method="POST">
<label for="artikel">Artikel: </label>
<?php echo einfuegenSelect(); ?> <input type="submit" value="Datensatz löschen" />
</form>
<?php
}
?>
</div>
</body>
Es gibt in der artikel.class.php ganz unten eine alternative funktion für eine Select Variante. Hab ich auch probiert....aber nada.
PHP:
class artikel {
private $tabelle = "artikel";
public function baueArtikelTabelle($sql) {
require_once("db.inc.php");
if($stmt = $mysqli -> prepare($sql)) {
$stmt -> execute();
$stmt -> bind_result($anr,
$gnr,
$name,
$preis);
echo "<table id=\"zebra\">\n\t";
echo "<caption>Tabelle Artikel</caption>\n\t";
echo "<thead>
<tr>
<th>Artikelnummer</th><th>Artikelgruppe</th><th>Artikelbezeichnung</th><th>Preis</th><th>Bearbeiten</th>
</tr>
</thead>";
echo "<tbody>\n\t";
$count = 0;
while ($stmt -> fetch()) {
$count += 1;
$zebratyp = "ungerade";
echo "<tr ";
if($count % 2 == 0) {
$zebratyp = "gerade";
}
echo "class=\"" .$zebratyp
."\">\n\t<td>"
. htmlspecialchars($anr)
."</td>\n\t<td>"
. htmlspecialchars($gnr)
."</td>\n\t<td>"
. htmlspecialchars($name)
."</td>\n\t<td>"
. htmlspecialchars($preis)
."</td>\n\t<td>"
."<a href=\"e3_artikel_loeschen.php?anr=" .htmlspecialchars($anr) ."\">bearbeiten</<a>"
."</td>\n</tr>";
}
echo "</table>";
$stmt->close();
}
$mysqli->close();
}
public function lesenAlleDaten() {
$sql = "SELECT anr,
gnr,
name,
preis
FROM " .$this->tabelle ."
ORDER BY anr";
$this->baueArtikelTabelle($sql);
}
public function lesenDatensatz($id) {
$data = array();
require("db.inc.php");
if($stmt = $mysqli->prepare("SELECT anr,
gnr,
name,
preis,
FROM " .$this->tabelle ."
WHERE anr=?")) {
$stmt -> bind_param('i',$id);
$stmt -> execute();
$ergebnis = $stmt -> get_result();
$data = $ergebnis -> fetch_assoc();
$ergebnis -> close();
$stmt -> close();
$mysqli -> close();
}
return($data);
}
public function joinArtikelUndGruppen() {
$sql = "SELECT artikel.anr,
gruppen.gruppe,
artikel.name,
artikel.preis
FROM artikel
JOIN gruppen ON artikel.gnr= gruppen.gnr
ORDER BY artikel.anr" ;
$this->gruppiereArtikel($sql);
}
public function gruppiereArtikel($sql) {
require_once("db.inc.php");
if ($stmt = $mysqli -> prepare($sql)) {
$stmt -> execute();
$stmt -> bind_result($anr,
$gruppe,
$name,
$preis);
echo "<table id=\"zebra\">\n\t";
echo "<caption>Tabelle Artikel Sortiert nach Gruppen</caption>\n\t";
echo "<thead>
<tr>
<th>Artikelnummer</th><th>Artikelgruppe</th><th>Artikelbezeichnung</th><th>Preis</th><th>Bearbeiten</th>
</tr>
</thead>";
echo "<tbody>\n\t";
$count = 0;
while ($stmt -> fetch()) {
$count += 1;
$zebratyp = "ungerade";
echo "<tr ";
if($count % 2 == 0) {
$zebratyp = "gerade";
}
echo "class=\"" .$zebratyp
."\">\n\t<td>"
. htmlspecialchars($anr)
."</td>\n\t<td>"
. htmlspecialchars($gruppe)
."</td>\n\t<td>"
. htmlspecialchars($name)
."</td>\n\t<td>"
. htmlspecialchars($preis)
."</td>\n\t<td>"
."<a href=\"e3_artikel_loeschen.php?anr=" .htmlspecialchars($anr) ."\">bearbeiten</<a>"
."</td>\n</tr>";
}
echo "</table>";
$stmt->close();
}
$mysqli->close();
}
/*******************************************für e3_artikel_loeschen.php****************************************************************/
/*public function einfuegenSelect() { An dieser Stelle geht es nicht!!!
require_once("db.inc.php");
$sql = "SELECT anr,
name
FROM artikel";
if ($stmt = $mysqli -> prepare($sql)) {
$stmt -> execute();
$stmt -> bind_result($anr, $name);
$s = "<select name=\"artikel\" id=\"artikel\"\>";
while ($stmt -> fetch()) {
$s = $s ."<option value=\"". $anr ."\"";
$s = $s .">" .$anr ." | " .$name ."</option>";
}
$s = $s ."</select>";
return $s;
$stmt->close();
}
$mysqli->close();
}*/
public function loeschen() {
require("db.inc.php");
$sql = "DELETE FROM " .$this -> tabelle ." WHERE anr=?";
if($stmt = $mysqli -> prepare($sql)) {
$stmt -> bind_param('i', $_POST["artikel"]);
$stmt -> execute();
}
$stmt -> close();
$mysqli -> close();
}
}
/********************************************Alternative Funktion mit der ich auch nicht klar komme**********************/
/*public function einfuegenSelect($tab, $val, $text, $def) // die 1. variable für tabelle, 2. für Wert in option-element, 3. für Text in option-element und 4. für den Vorgabewert(bei einer Aktualisierung, sonst NULL)
{
$s = "<select name=\"" .$val ."\" id=\"" .$val ."\">";
require("db.inc.php");
$sql = "SELECT " .$val .", " .$text ." FROM " .$tab;
if ($stmt = $mysqli -> prepare($sql)) {
$stmt -> execute();
$stmt -> bind_result($val, $text);
while ($stmt -> fetch()) {
$s = $s ."<option value=\"". $val ."\"";
if($val == $def){
$s = $s ." selected";
}
$s = $s .">" .$val ." | " .$text ."</option>";
}
$s = $s ."</select>";
return $s;
}
else {
return false;
}
}*/
Das tut sie eingebettet im html der e3_artikel_loeschen.php
hier das Select mit php in html

hier die tabelle artikel sql:

hier die db bestelldatenbank:

Vielen Dank für eure Aufmerksamkeit und Hilfe
Zuletzt bearbeitet: