Hallo PHPler,
versuche mich gerade im Rahmen eines Lernprojekt an einer "Palettenliste", mit welcher die eingegebenen Daten zu den Paletten in einer Tabelle gespeichert werden sollen.
Da es vorkommen kann, dass pro Kunde mehrere Paletten unterschiedlicher Größen und Gewichte gespeichert werden sollen, kann man direkt mehrere eingeben.
Das Erzeugen mehrerer Zeilen funktioniert, das Speichern auch nur: nach dem ersten Buchstaben oder nach der ersten Zahl wird der Rest abgeschnitten.
In der Tabelle der Datenbank habe ich keine Fehler feststellen können, also für Zeichen ist genug Platz gegeben.
ergebniss mit fehler.png
Wenn einer von Euch mir zeigen könnte, was das Problem ist, wäre ich sehr dankbar.
Scheinbar habe ich etwas wichtiges nicht verstanden und daher sehe ich es nicht.
Diese 6 Werte sollen sein: customer, order_id_pl, palletsize, height, weight, worker
Hier die php, welche die Werte übergeben soll:
Und dieser Teil soll das ganze speichern:
versuche mich gerade im Rahmen eines Lernprojekt an einer "Palettenliste", mit welcher die eingegebenen Daten zu den Paletten in einer Tabelle gespeichert werden sollen.
Da es vorkommen kann, dass pro Kunde mehrere Paletten unterschiedlicher Größen und Gewichte gespeichert werden sollen, kann man direkt mehrere eingeben.
Das Erzeugen mehrerer Zeilen funktioniert, das Speichern auch nur: nach dem ersten Buchstaben oder nach der ersten Zahl wird der Rest abgeschnitten.
In der Tabelle der Datenbank habe ich keine Fehler feststellen können, also für Zeichen ist genug Platz gegeben.
ergebniss mit fehler.png
Wenn einer von Euch mir zeigen könnte, was das Problem ist, wäre ich sehr dankbar.
Scheinbar habe ich etwas wichtiges nicht verstanden und daher sehe ich es nicht.
Diese 6 Werte sollen sein: customer, order_id_pl, palletsize, height, weight, worker
Hier die php, welche die Werte übergeben soll:
PHP-Code:
<!-- Der Abschnitt prüft, ob ein Benutzer eingeloggt ist bzw. ob es eine Session gibt -->
<?php
ob_start();
session_start();
require_once 'dbconnect.php';
if (!isset($_SESSION['user'])) {
header("Location: login.php");
exit;
}
// Der eingeloggte Nutzer wird ausgelesen, damit die Daten in der Navigation angezeigt werden können
$res = $conn->query("SELECT * FROM users WHERE id=" . $_SESSION['user']);
$userRow = mysqli_fetch_array($res, MYSQLI_ASSOC);
// Prüfung der eingegebenen Daten und Übergabe an die Datenbank
?>
<!-- Beginn von html / Aufbau der Seite -->
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Hallo,<?php echo $userRow['email']; ?></title>
<link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css"/>
<link rel="stylesheet" href="assets/css/index.css" type="text/css"/>
</head>
<body>
<!-- Navigation Bar, hier bitte nichts verändern -->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand">Palettenliste</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="index.php">Auflistung von heute</a></li>
<li class="active"><a href="neuereintrag_start.php">Neuer Eintrag</a></li>
<li><a href="archiv.php">Archiv</a></li>
<li><a><b>Datum: <?php echo date('d.m.Y');?></b></a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">
<span
class="glyphicon glyphicon-user"></span> Aktueller Benutzer: <?php echo $userRow['email']; ?>
<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="logout.php?logout"><span class="glyphicon glyphicon-log-out"></span> Ausloggen</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<!-- Hier gehts unter der Navigation weiter -->
<div class="container">
<form method="post" action="neuereintrag_bestaetigung.php">
<div class="row clearfix">
<div class="col-md-12 column">
<table class="table table-bordered table-hover" id="tab_logic">
<tr >
<th class="text" width="300">
Name
</th>
<th class="text">
Auftrag
</th>
<th class="text">
Größe
</th>
<th class="text">
Höhe
</th>
<th class="text">
Gewicht
</th>
<th class="text">
Mitarbeiter
</th>
</tr>
<!-- Dieser php Teil (weiter unten ist der Endteil der Schleife) erweitert die Zeilen (rows) in einer Schleife solange, bis die vorher angegebene
Anzahl an Zeilen erreicht ist. -->
<?php
$numbers=$_POST['num'];
for($i=1;$i<$numbers;$i++)
{
?>
<tr>
<th colspan='2'>Palette <?php echo $i;?></th>
<input type="hidden" value="<?php echo $numbers; ?>" name="numbers" />
</tr>
<td><input type="text" name="customer" placeholder="Kunde" class="form-control" required /></td>
<td><input type="text" name="order_id_pl" placeholder="Auftrag" class="form-control" required /></td>
<td><input list="sizes" type="text" name="palletsize" placeholder="Größe" class="form-control" required />
<datalist id="sizes">
<option value="1EP1">
<option value="1EP2">
<option value="1EP3">
<option value="1EP4">
<option value="2EP1">
<option value="2EP2">
<option value="2EP3">
<option value="2EP4">
<option value="3EP1">
<option value="3EP2">
<option value="3EP3">
<option value="3EP4">
</datalist>
</td>
<td><input list="heights" type="text" name="height" placeholder="Höhe" class="form-control" required />
<datalist id="heights">
<option value="30">
<option value="40">
<option value="75">
<option value="110">
<option value="130">
<option value="160">
<option value="200">
<option value="250">
<option value="300">
<option value="350">
</datalist>
</td>
<td>
<input list="weights" type="text" name="weight" placeholder="Gewicht" class="form-control" required />
<datalist id="weights">
<option value="10">
<option value="20">
<option value="30">
<option value="40">
<option value="50">
<option value="75">
<option value="100">
<option value="110">
<option value="120">
<option value="130">
<option value="140">
<option value="150">
<option value="160">
<option value="170">
<option value="180">
<option value="190">
<option value="200">
<option value="220">
<option value="240">
<option value="260">
<option value="280">
<option value="300">
<option value="350">
<option value="400">
</datalist>
</td>
<td>
<input type="text" name="worker" placeholder="MA" class="form-control" required />
</td>
</tr>
<!-- Hier ist der Endteil zu der Schleife, welche oben erläutert wurde -->
<?php } ?>
<tr>
<td></br><input type="submit" value="Absenden" name="submit" /></td>
</tr>
</table>
</div>
</div>
</div>
<!-- Ende der Tabelle -->
<!-- Es ist Zeit für Javascript -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
</body>
</html>
PHP-Code:
<?php
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("testdb_001");
$s = "INSERT INTO pallets (customer, order_id_pl, palletsize, height, weight, worker) VALUES ");
for($i=0; $i<$_POST['numbers']; $i++)
{
$s .="('".$_POST['customer'][$i]."','".$_POST['order_id_pl'][$i]."','".$_POST['palletsize'][$i]."','".$_POST['height'][$i]."','".$_POST['weight'][$i]."','".$_POST['worker'][$i]."'),";
}
$s = rtrim($s,",");
if(!$mysqli->query($s))
echo $mysqli->error;
else
echo "Die Daten wurden gespeichert <br />";
?>
Kommentar