Hallo zusammen,
ich habe mich nun auch mal an mein erstes php Projekt gewagt.
Nun stagniert mein Fortschritt seit ein paar Tagen und ich glaube, dass ich ein bisschen Hilfe benötige.
Ich habe mir eine SQL Datenbank für Toner-Inventar erstellt mit folgenden Spalten: Modell (Primarykey), Schwarzweiß, Farbe, Cyan, Magenta, Yellow, Black, Wartungskit, Transportband, Heizung.
Farbe und Schwarzweiß kann momentan 0 oder 1 enthalten, ich muss diese später noch auf typ boolean ändern. Dies ist nur dazu da, um zu hinterlegen, ob der Drucker ein Schwarzweiß- oder Farbdrucker ist.
Ziel ist eine Dropdown-Liste am Anfang der Seite, die alle Drucker enthält. Wählt man Einen aus, dann sollen alle Verbrauchsmaterialien des Druckers als Tabelle aufgeführt werden.
Vorab Prüfung, ob Farbe = 1 => Tabelle enthält Modell, Cyan, Magenta, Yellow, Black, Wartungskit, Transportband, Heizung
Prüfung Schwarz-weiß = 1 => Tabelle enthält Modell, Black, Wartungskit, Transportband, Heizung.
in der untersten der 3 Zeilen befinden sich je 2 Button (+ und -) für jedes Verbrauchsmaterial.
Mit diesen Buttons möchte ich die bisherige Anzahl des jeweiligen Verbrauchsmaterial +1 oder -1 rechnen.
Bei meiner bisherigen Lösung funktioniert alles, aber die Anzahl in der Tabelle verändert sich nicht live. Drücke ich den + Button wird die Anzahl in der Datenbank erhöht, aber in der Tabelle ist es erst ab dem nächsten Refresh sichtbar.
Bisher habe ich mich um die Funktion des Button ganz links gekümmert, also für Cyan + bei Farbdruckern und bei schwarz-weiß Druckern für Black +.
1. Möglichkeit:
Hier der Code index.php:
2 Möglichkeit:
Ich habe die Lösung etwas modifiziert, vielleicht komme ich dem Problem damit näher ? Nun weiß ich leider überhaupt nicht, wie ich mit den Buttons fortfahren muss. Hinterlege ich eine Funktion, passiert einfach nichts.
index.php:
Table_inventory.php:
Ich wäre über jegliche Hilfe sehr dankbar.
Bitte seid nicht zu streng mit mir, ich bin ein absoluter Anfänger.
Liebe Grüße
ich habe mich nun auch mal an mein erstes php Projekt gewagt.
Nun stagniert mein Fortschritt seit ein paar Tagen und ich glaube, dass ich ein bisschen Hilfe benötige.
Ich habe mir eine SQL Datenbank für Toner-Inventar erstellt mit folgenden Spalten: Modell (Primarykey), Schwarzweiß, Farbe, Cyan, Magenta, Yellow, Black, Wartungskit, Transportband, Heizung.
Farbe und Schwarzweiß kann momentan 0 oder 1 enthalten, ich muss diese später noch auf typ boolean ändern. Dies ist nur dazu da, um zu hinterlegen, ob der Drucker ein Schwarzweiß- oder Farbdrucker ist.
Ziel ist eine Dropdown-Liste am Anfang der Seite, die alle Drucker enthält. Wählt man Einen aus, dann sollen alle Verbrauchsmaterialien des Druckers als Tabelle aufgeführt werden.
Vorab Prüfung, ob Farbe = 1 => Tabelle enthält Modell, Cyan, Magenta, Yellow, Black, Wartungskit, Transportband, Heizung
Prüfung Schwarz-weiß = 1 => Tabelle enthält Modell, Black, Wartungskit, Transportband, Heizung.
in der untersten der 3 Zeilen befinden sich je 2 Button (+ und -) für jedes Verbrauchsmaterial.
Mit diesen Buttons möchte ich die bisherige Anzahl des jeweiligen Verbrauchsmaterial +1 oder -1 rechnen.
Bei meiner bisherigen Lösung funktioniert alles, aber die Anzahl in der Tabelle verändert sich nicht live. Drücke ich den + Button wird die Anzahl in der Datenbank erhöht, aber in der Tabelle ist es erst ab dem nächsten Refresh sichtbar.
Bisher habe ich mich um die Funktion des Button ganz links gekümmert, also für Cyan + bei Farbdruckern und bei schwarz-weiß Druckern für Black +.
1. Möglichkeit:
Hier der Code index.php:
PHP-Code:
<?php
session_start();
require 'inc/db.php';
?>
<style><?php include 'inc/css/main.css'; ?></style>
<?php
$daten = array();
if ($erg = $db->query("SELECT * FROM Printer")) {
if ($erg->num_rows){
while($datensatz = $erg->fetch_object()) {
$daten[] = $datensatz;
}
$erg->free();
}
}
if (!count($daten)) {
echo "<p>Es liegen keine Daten vor :(</p>";
} else {
?>
<form method="post">
<section class="container">
<div class="dropdown dropdown-dark">
<select name="printer" class="dropdown-select">
<option value="">Select…</option>
<?php
foreach ($daten as $inhalt) {
?>
<option><?php echo $inhalt->Modell; ?></option>
<?php
}
?>
</select>
</div>
<button class="submit-dark" onclick="<?php
//Drucker aus Dropdownliste
$selected_printer = $_POST["printer"];
// SQL Abfrage mit selektiertem Drucker
$erg = $db->query("SELECT * FROM `Printer` WHERE `Modell` = '$selected_printer' ")
or die ($db->error);
$tonerbestand = $erg->fetch_assoc();
?>">
Toner Abfragen
</button>
</section>
</form>
<?php
}
if (isset($tonerbestand)){
$_SESSION["modell"] = $tonerbestand['Modell'];
$_SESSION["sw"] = $tonerbestand['Schwarzweiß'];
$_SESSION["color"] = $tonerbestand['Farbe'];
$_SESSION["cyan"] = $tonerbestand['Cyan'];
$_SESSION["magenta"] = $tonerbestand['Magenta'];
$_SESSION["yellow"] = $tonerbestand['Yellow'];
$_SESSION["black"] = $tonerbestand['Black'];
$_SESSION["wartungskit"] = $tonerbestand['Wartungskit'];
$_SESSION["transportband"] = $tonerbestand['Transportband'];
$_SESSION["heizung"] = $tonerbestand['Heizung'];
}
// Prüfung ob Farbdrucker
if($_SESSION["color"] == 1){
?>
<!--
Tabelle Tonerbestand Farbe
-->
<body>
<div class="table-title">
<h3>Tonerbestand</h3>
</div>
<table class="table-fill">
<thead>
<tr>
<th class="text-left" colspan="2">Modell</th>
<th class="text-left" colspan="2">Cyan</th>
<th class="text-left" colspan="2">Magenta</th>
<th class="text-left" colspan="2">Yellow</th>
<th class="text-left" colspan="2">Black</th>
<th class="text-left" colspan="2">Wartungskit</th>
<th class="text-left" colspan="2">Transportband</th>
<th class="text-left" colspan="2">Heizung</th>
</tr>
</thead>
<tbody class="table-hover">
<tr>
<td colspan="2"><?php print_r ($_SESSION["modell"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["cyan"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["magenta"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["yellow"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["black"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["wartungskit"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["transportband"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["heizung"]) ?></td>
</tr>
<form method="post">
<tr>
<!--Spalte Modell -->
<td colspan="2"></td>
<!--Spalte Cyan -->
<td>
<input type="submit" name="cyan+" class="btn" value="+" />
<?php
if(isset($_POST['cyan+'])){
$modell = $_SESSION["modell"];
$cyan = $_SESSION["cyan"] + 1;
$sql = "Update Printer Set Cyan = '$cyan' Where Modell = '$modell'";
if (mysqli_query($db, $sql)) {
//bei erfolgreichem Update nichts machen
header("Refresh:0");
}
else {
echo "Error: " . $sql . "<br>" . mysqli_error($db);
}
}
?>
</td>
<td><button class="btn">-</button></td>
<!--Spalte Magenta -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Yellow -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Black -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Wartungskit -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Transportband -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Heizung -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
</tr>
</form>
</tbody>
</table>
</body>
<?php
}
else {
?>
<!--
Tabelle Tonerbestand Schwarz-weiß
-->
<body>
<div class="table-title">
<h3>Tonerbestand</h3>
</div>
<table class="table-fill">
<thead>
<tr>
<th class="text-left" colspan="2">Modell</th>
<th class="text-left" colspan="2">Black</th>
<th class="text-left" colspan="2">Wartungskit</th>
<th class="text-left" colspan="2">Transportband</th>
<th class="text-left" colspan="2">Heizung</th>
</tr>
</thead>
<tbody class="table-hover">
<tr>
<td colspan="2"><?php print_r ($_SESSION["modell"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["black"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["wartungskit"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["transportband"]) ?></td>
<td colspan="2"><?php print_r ($_SESSION["heizung"]) ?></td>
</tr>
<form method="post">
<tr>
<!--Spalte Modell -->
<td colspan="2"></td>
<!--Spalte Black -->
<td>
<input type="submit" name="black+" class="btn" value="+" />
<?php
if(isset($_POST['black+'])){
$modell = $_SESSION["modell"];
$black = $_SESSION["black"] + 1;
$sql = "Update Printer Set Black = '$black' Where Modell = '$modell'";
if (mysqli_query($db, $sql)) {
//bei erfolgreichem Update nichts machen
header("Refresh:0");
}
else {
echo "Error: " . $sql . "<br>" . mysqli_error($db);
}
}
?>
</td>
<td><button class="btn">-</button></td>
<!--Spalte Wartungskit -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Transportband -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Heizung -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
</tr>
</form>
</tbody>
</table>
</body>
<?php
}
/* Alle Variablen löschen*/
$vars = array_keys(get_defined_vars());
for ($i = 0; $i < sizeOf($vars); $i++) {
unset($$vars[$i]);
}
unset($vars,$i);
// DB Verbindung schließen
mysql_close($db);
?>
2 Möglichkeit:
Ich habe die Lösung etwas modifiziert, vielleicht komme ich dem Problem damit näher ? Nun weiß ich leider überhaupt nicht, wie ich mit den Buttons fortfahren muss. Hinterlege ich eine Funktion, passiert einfach nichts.
index.php:
PHP-Code:
<?php
session_start();
require 'inc/db.php';
?>
<style><?php include 'inc/css/main.css'; ?></style>
<?php
$daten = array();
if ($erg = $db->query("SELECT * FROM Printer")) {
if ($erg->num_rows){
while($datensatz = $erg->fetch_object()) {
$daten[] = $datensatz;
}
$erg->free();
}
}
if (!count($daten)) {
echo "<p>Es liegen keine Daten vor :(</p>";
} else {
?>
<html>
<script>
function inventory_table(str) {
if (str == "") {
document.getElementById("inventory_table").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("inventory_table").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","inc/inventory_table.php?printer=" + str, true);
xmlhttp.send();
}
}
</script>
<form method="post">
<section class="container">
<div class="dropdown dropdown-dark">
<select name="printer" class="dropdown-select" onchange="inventory_table(this.value)">
<option value="">Select…</option>
<?php
foreach ($daten as $inhalt) {
?>
<option><?php echo $inhalt->Modell; ?></option>
<?php
}
?>
</select>
</div>
</section>
</form>
<div id="inventory_table"></div>
</html>
<?php
}
/* Alle Variablen löschen*/
$vars = array_keys(get_defined_vars());
for ($i = 0; $i < sizeOf($vars); $i++) {
unset($$vars[$i]);
}
unset($vars,$i);
// DB Verbindung schließen
mysql_close($db);
?>
Table_inventory.php:
PHP-Code:
<?php
require 'db.php';
// get the q parameter from URL
//Drucker aus Dropdownliste
$selected_printer = $_REQUEST["printer"];
// SQL Abfrage mit selektiertem Drucker
$erg = $db->query("SELECT * FROM `Printer` WHERE `Modell` = '$selected_printer' ")
or die ($db->error);
$tonerbestand = $erg->fetch_assoc();
// Prüfung ob Farbdrucker
if($tonerbestand["Farbe"] == 1){
?>
<!--
Tabelle Tonerbestand Farbe
-->
<body>
<div class="table-title">
<h3>Tonerbestand</h3>
</div>
<table class="table-fill">
<thead>
<tr>
<th class="text-left" colspan="2">Modell</th>
<th class="text-left" colspan="2">Cyan</th>
<th class="text-left" colspan="2">Magenta</th>
<th class="text-left" colspan="2">Yellow</th>
<th class="text-left" colspan="2">Black</th>
<th class="text-left" colspan="2">Wartungskit</th>
<th class="text-left" colspan="2">Transportband</th>
<th class="text-left" colspan="2">Heizung</th>
</tr>
</thead>
<tbody class="table-hover">
<tr>
<td colspan="2"><?php print_r ($tonerbestand["Modell"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Cyan"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Magenta"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Yellow"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Black"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Wartungskit"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Transportband"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Heizung"]) ?></td>
</tr>
<tr>
<!--Spalte Modell -->
<td colspan="2"></td>
<!--Spalte Cyan -->
<form method="post">
<td><input type="submit" class="btn" name="cyan+" value="+"/></td>
</form>
<?php
if(isset($_POST['cyan+'])){
$modell = $tonerbestand["Modell"];
$cyan = $tonerbestand["Cyan"] + 1;
$sql = "Update Printer Set Cyan = '$cyan' Where Modell = '$modell'";
if (mysqli_query($db, $sql)) {
//bei erfolgreichem Update nichts machen
header("Refresh:0");
}
else {
echo"Error: ".$sql."<br>".mysqli_error($db);
}
}
?>
<td><button class="btn">-</button></td>
<!--Spalte Magenta -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Yellow -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Black -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Wartungskit -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Transportband -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Heizung -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
</tr>
</tbody>
</table>
</body>
<?php
}
if($tonerbestand['Black'] == 1){
?>
<!--
Tabelle Tonerbestand Schwarz-weiß
-->
<body>
<div class="table-title">
<h3>Tonerbestand</h3>
</div>
<table class="table-fill">
<thead>
<tr>
<th class="text-left" colspan="2">Modell</th>
<th class="text-left" colspan="2">Black</th>
<th class="text-left" colspan="2">Wartungskit</th>
<th class="text-left" colspan="2">Transportband</th>
<th class="text-left" colspan="2">Heizung</th>
</tr>
</thead>
<tbody class="table-hover">
<tr>
<td colspan="2"><?php print_r ($tonerbestand["Modell"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Black"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Wartungskit"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Transportband"]) ?></td>
<td colspan="2"><?php print_r ($tonerbestand["Heizung"]) ?></td>
</tr>
<tr>
<!--Spalte Modell -->
<td colspan="2"></td>
<!--Spalte Black -->
<form method="post">
<td><input type="submit" class="btn" name="black+" value="+"/></td>
</form>
<?php
if(isset($_POST['black+'])){
$modell = $tonerbestand["Modell"];
$black = $tonerbestand["Black"] + 1;
$sql = "Update Printer Set Black = '$black' Where Modell = '$modell'";
if (mysqli_query($db, $sql)) {
//bei erfolgreichem Update nichts machen
header("Refresh:0");
}
else {
echo"Error: ".$sql."<br>".mysqli_error($db);
}
}
?>
<td><button class="btn">-</button></td>
<!--Spalte Wartungskit -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Transportband -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
<!--Spalte Heizung -->
<td><button class="btn">+</button></td>
<td><button class="btn">-</button></td>
</tr>
</tbody>
</table>
</body>
<?php
}
?>
Ich wäre über jegliche Hilfe sehr dankbar.
Bitte seid nicht zu streng mit mir, ich bin ein absoluter Anfänger.
Liebe Grüße
Kommentar