Radio-Button Auswahl überprüfen.

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

merzi86

Erfahrenes Mitglied
Du müsstest deine bearbeiten.php mal noch anpassen, da du dort noch auf das $_POST-Feld "Tag" wird.

Das dürfte das Problem mit dem nicht richtig ausgewählten Datensatz beheben.

Es gibt in dieser Datei 1x die Zeile (dürften die Zeilen 13 sein):
PHP:
$Tag = $_POST["Tag"];

Die müsste so geändert werden:
PHP:
$Tag = $_POST["auswahl"];

Für das Problem mit dem SQL-Error:
Ändere mal bitte die Zeile 72 zu:

PHP:
if(!mysqli_query($con, $update))
{
   printf("Error: %s\n", mysqli_error($con)); 
   printf("Statement: %s\n", $update);
}

Und poste mal bitte die Ausgabe.
 

DerTrojaner

Mitglied
Du müsstest deine bearbeiten.php mal noch anpassen, da du dort noch auf das $_POST-Feld "Tag" wird.

Das dürfte das Problem mit dem nicht richtig ausgewählten Datensatz beheben.

Es gibt in dieser Datei 1x die Zeile (dürften die Zeilen 13 sein):
PHP:
$Tag = $_POST["Tag"];

Die müsste so geändert werden:
PHP:
$Tag = $_POST["auswahl"];

Für das Problem mit dem SQL-Error:
Ändere mal bitte die Zeile 72 zu:

PHP:
if(!mysqli_query($con, $update))
{
   printf("Error: %s\n", mysqli_error($con));
   printf("Statement: %s\n", $update);
}

Und poste mal bitte die Ausgabe.

Warning: mysqli_query(): Couldn't fetch mysqli in C:\xampp\htdocs\Webseite\bearbeiten.php on line 70

Warning: mysqli_error(): Couldn't fetch mysqli in C:\xampp\htdocs\Webseite\bearbeiten.php on line 72
Error: Statement: UPDATE zulauf SET Wochentag = 'Sonntag', Uhrzeit = '8:00', Wert ='8', Lufttemperatur='8', Abwassertemperatur='8', pH_Wert='8', Flotation='8', Zulauf='8 WHERE Tag = 2019-09-09
 

DerTrojaner

Mitglied
Bearbeiten. php
PHP:
<title>Betriebstagebuch</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="SlideButton.js"></script>
<?php
    require_once("index.php");

    if( isset( $_POST['auswahl']))

 {
      $db_con = mysqli_connect($servername, $username, $password, $dbname);

    // 3. Datenbankabfrage starten
        $Tag = $_POST["auswahl"];
        $abfrage = "SELECT * FROM zulauf WHERE Tag = $Tag";
        $result = mysqli_query($db_con, $abfrage);

        // 4. Datensatz in Variablen speichern
        $dsatz = mysqli_fetch_assoc($result);
        $Wochentag = $dsatz["Wochentag"];
        $Uhrzeit = $dsatz["Uhrzeit"];
        $Wert = $dsatz["Wert"];
        $Lufttemperatur = $dsatz["Lufttemperatur"];
        $Abwassertemperatur = $dsatz["Abwassertemperatur"];
        $pH_Wert = $dsatz["pH_Wert"];
        $Flotation = $dsatz["Flotation"];
        $Zulauf = $dsatz["Zulauf"];

        // 5. Das Bearbeiten-Formular anzeigen
        echo "<form action='bearbeiten.php' method='post'>";
          echo "<input name='Tag' type='hidden' value='$Tag'>";
          echo "<p><input name='Wochentag' value='$Wochentag'> Wochentag</p>";
          echo "<p><input name='Uhrzeit' value='$Uhrzeit'> Uhrzeit</p>";
          echo "<p><input name='Wert' value='$Wert'> Wert</p>";
          echo "<p><input name='Lufttemperatur' value='$Lufttemperatur'> Lufttemperatur</p>";
          echo "<p><input name='Abwassertemperatur' value='$Abwassertemperatur'> Abwassertemperatur</p>";
          echo "<p><input name='pH_Wert' value='$pH_Wert'> pH_Wert</p>";
          echo "<p><input name='Flotation' value='$Flotation'> Flotation</p>";
          echo "<p><input name='Zulauf' value='$Zulauf'> Zulauf</p>";
        echo "<input name='bearbeitungAbschicken' value='Bearbeitung abschließen' type='submit'>";
        echo "</form>";
        echo "<a href='zulauf.php'>zurück zur Übersicht</a>";
    }

//6. Datensatz aktualisieren mit UPDATE
if(isset($_POST["bearbeitungAbschicken"])){
  $Tag = $_POST["Tag"];
  $Wochentag = $_POST["Wochentag"];
  $Uhrzeit = $_POST["Uhrzeit"];
  $Wert = $_POST["Wert"];
  $Lufttemperatur = $_POST["Lufttemperatur"];
  $Abwassertemperatur = $_POST["Abwassertemperatur"];
  $pH_Wert = $_POST["pH_Wert"];
  $Flotation = $_POST["Flotation"];
  $Zulauf = $_POST["Zulauf"];

//String für Update-Anweisung erstellen
  $update = "UPDATE zulauf SET
  Wochentag = '$Wochentag',
  Uhrzeit = '$Uhrzeit',
  Wert ='$Wert',
  Lufttemperatur='$Lufttemperatur',
  Abwassertemperatur='$Abwassertemperatur',
  pH_Wert='$pH_Wert',
  Flotation='$Flotation',
  Zulauf='$Zulauf
  WHERE Tag = $Tag";

//MySQL-Anweisung ausführen
if(!mysqli_query($db_con, $update))
{
   printf("Error: %s\n", mysqli_error($db_con));
   printf("Statement: %s\n", $update);
}
}

//Wenn der Nutzer in buecher.php keine Auswahl getroffen hat:
if(!isset($_POST["auswahl"]) && !isset($_POST["bearbeitungAbschicken"])){
    echo "Es wurde kein Datensatz ausgewählt.<br>";
    echo "<a href='zulauf.php'>zurück zur Übersicht</a>";
}

?>
 

DerTrojaner

Mitglied
Neuer Fehler :D
PHP:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''9 WHERE Tag = 2019-09-09' at line 9 Statement: UPDATE zulauf SET Wochentag = 'Samstag', Uhrzeit = '9:00', Wert ='9', Lufttemperatur='9', Abwassertemperatur='9', pH_Wert='9', Flotation='9', Zulauf='9 WHERE Tag = 2019-09-09
 

merzi86

Erfahrenes Mitglied
Nicht neuer Fehler, es ist die Ausgabe, die ich wollte. :)

Jetzt fällt mir auch der Fehler auf.
In Zeile 66 Fehlt das 2. '.

Du müsstest diese also so ändern:
PHP:
Zulauf='$Zulauf'
 

merzi86

Erfahrenes Mitglied
Du hast als du diesen Teil reinkopiert hast die Erfolgsmeldung überschrieben:
PHP:
if(!mysqli_query($db_con, $update))
{
   printf("Error: %s\n", mysqli_error($db_con));
   printf("Statement: %s\n", $update);
}

Ändere das mal zu diesen, dann bekommst du die Erfolgsmeldung auch.
PHP:
if(!mysqli_query($db_con, $update))
{
   printf("Error: %s\n", mysqli_error($db_con));
   printf("Statement: %s\n", $update);
} else {
    echo "Datensatz bearbeitet.<br>";
    echo "<a href='zulauf.php'>zurück zur Übersicht</a>";
}

Die Änderung müsste aber in der Übersicht auf der ersten Seite sichtbar sein.
 

DerTrojaner

Mitglied
Er zeigt aber die Änderung nicht an das ist leider das Problem der Datensatz bleibt gleich
Du hast als du diesen Teil reinkopiert hast die Erfolgsmeldung überschrieben:
PHP:
if(!mysqli_query($db_con, $update))
{
   printf("Error: %s\n", mysqli_error($db_con));
   printf("Statement: %s\n", $update);
}

Ändere das mal zu diesen, dann bekommst du die Erfolgsmeldung auch.
PHP:
if(!mysqli_query($db_con, $update))
{
   printf("Error: %s\n", mysqli_error($db_con));
   printf("Statement: %s\n", $update);
} else {
    echo "Datensatz bearbeitet.<br>";
    echo "<a href='zulauf.php'>zurück zur Übersicht</a>";
}

Die Änderung müsste aber in der Übersicht auf der ersten Seite sichtbar sein.
 

merzi86

Erfahrenes Mitglied
Es dürfte zwar keine Rolle spielen da hoffentlich der Tag als Date formatiert ist aber du könntest das Update Query mal so abändern:

PHP:
$update = "UPDATE zulauf SET
  Wochentag = '$Wochentag',
  Uhrzeit = '$Uhrzeit',
  Wert ='$Wert',
  Lufttemperatur='$Lufttemperatur',
  Abwassertemperatur='$Abwassertemperatur',
  pH_Wert='$pH_Wert',
  Flotation='$Flotation',
  Zulauf='$Zulauf'
  WHERE Tag = '$Tag'";

Ansonsten sehe ich keinen Grund, dass das Update nicht durchgeführt wird.

Mal abgesehen davon das deine Skripts scheinbar schön zusammengestückelt sind, ist der Aufbau der Tabelle auch ... sagen wir mal nicht Optimal.

Beschäftige dich mal wirklich mit PHP, denn sonst wirst du nicht wirklich auf einen grünen Nenner kommen.
 

DerTrojaner

Mitglied
Es dürfte zwar keine Rolle spielen da hoffentlich der Tag als Date formatiert ist aber du könntest das Update Query mal so abändern:

PHP:
$update = "UPDATE zulauf SET
  Wochentag = '$Wochentag',
  Uhrzeit = '$Uhrzeit',
  Wert ='$Wert',
  Lufttemperatur='$Lufttemperatur',
  Abwassertemperatur='$Abwassertemperatur',
  pH_Wert='$pH_Wert',
  Flotation='$Flotation',
  Zulauf='$Zulauf'
  WHERE Tag = '$Tag'";

Ansonsten sehe ich keinen Grund, dass das Update nicht durchgeführt wird.

Mal abgesehen davon das deine Skripts scheinbar schön zusammengestückelt sind, ist der Aufbau der Tabelle auch ... sagen wir mal nicht Optimal.

Beschäftige dich mal wirklich mit PHP, denn sonst wirst du nicht wirklich auf einen grünen Nenner kommen.

Danke es geht endlich, ich werde mich noch mit PHP beschäftige es ist das erste "Projekt" wo ich viel PhP brauche vielen vielen Dank
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…