Ankündigung

Einklappen
Keine Ankündigung bisher.

[GELÖST] lediglich Anfänge von Werte werden in MYSQL geschrieben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [GELÖST] lediglich Anfänge von Werte werden in MYSQL geschrieben

    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:
    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($resMYSQLI_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:&nbsp;<?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>&nbsp;Aktueller Benutzer: <?php echo $userRow['email']; ?>
                            &nbsp;<span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li><a href="logout.php?logout"><span class="glyphicon glyphicon-log-out"></span>&nbsp;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>
    Und dieser Teil soll das ganze speichern:
    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 />";
    ?>

  • #2
    Zitat von devando Beitrag anzeigen
    PHP-Code:
    $s .="('".$_POST['customer'][$i]."',[…],'".$_POST['worker'][$i]."'),"
    Hast du dir mal ausgeben lassen was in $_POST nach dem Abschicken des Formulars eigentlich drinsteht? In den Namen der Formularfelder fehlen eckige Klammern (bzw. ein [$i]) damit da ein Array-Ebene mehr daraus wird.

    Kommentar


    • #3
      Vielen Dank !!
      Ich habe es tatsächlich übersehen, bei den Formulardaten bei z.B. name="customer" die eckigen Klammern [ ] dahinter zu machen.
      Es gab noch mehr Fehler (gebe ich offen zu), welche ich aber durch Recherche ausradieren konnte.

      Vielen Dank und einen schönenn Sonntag !

      Kommentar

      Lädt...
      X