Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Datensatz ändern

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Datensatz ändern

    Moin Leute.
    Bin gerade dabei Datensätze zu ändern aber er gibt mir immer "Nicht geändert" aus. Hoffe jmd findet den fehler.

    PHP-Code:
    <?php
    $con 
    mysqli_connect("localhost""web1044""pw");
    mysqli_select_db($con"");

    $tour $_POST["tour"];
    $abfahrt $_POST["abfahrt"];
    $ankunft $_POST["ankunft"];
    $km $_POST["km"];
    $schaden $_POST["schaden"];
    $pschaden $_POST["pschaden"];
    $verbrauchl $_POST["verbrauchl"];
    $schiff $_POST["schiff"];
    $fracht $_POST["fracht"];
    $tonnen $_POST["tonnen"];
    $ertrag $_POST["ertrag"];

    $sql mysqli_query($con"UPDATE touren SET"
        
    .    " Tour = " "$tour", "
        
    .    "abfahrt = " "$abfahrt", "
        
    .    "ankunft = " "$ankunft", "
        
    .    "km = " "$km", "
        
    .    "schaden = " "$schaden", "
        
    .    "pschaden = " "$pschaden", "
        
    .    "verbrauchl = " "$verbrauchl", "
        
    .    "schiff = " "$schiff", "
        
    .    "fracht = " "$fracht", "
        
    .    "tonnen = " "$tonnen", "
        
    .    "ertrag = " "$ertrag");
        
    $num mysqli_affected_rows($con);
    if(
    $num>0){
        echo 
    "<p>Tour geändert!</p>";
        }
        else
        {
        echo 
    "<p>Tour nicht geändert!</p>";
        }
        
    mysqli_close($con);
    ?>

  • #2
    Schonmal versucht ev. Fehler ausgeben lassen? http://php.net/manual/en/mysqli.error.php

    Hoffe jmd findet den fehler
    Du?! http://php-de.github.io/jumpto/sql/
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Wenn ich mit or die oder sonstigem teste komme ich auf das gleiche ergebnis wie vorher das ich nicht Updaten kann.
      Die Verbindung funktioniert.

      Aber trotzdem weiß ich jetzt immernoch nicht warum der nicht updatet. Ich hab zwar schon paarmal drübergeschaut finde aber nichts wo ich ein punkt, komma oder sonstiges vergessen habe. Alle werte sind befüllt & existieren in der db.

      Aber wenn ich als Anfänger nichtmal meine PhP frage in einem php Forum stellen darf ohne das jmd. ankommt und sagt gebe deine fehler aus und finde den fehler selber dann geh ich nächstes mal woanders hin.
      Hätte ich es nicht schon probiert mit or die und die verbindung getestet dann würde ich nicht meine frage stellen,.

      Kommentar


      • #4
        Aber trotzdem weiß ich jetzt immernoch nicht warum der nicht updatet
        Genau das meinte ich. Wenn es eine Fehler gibt, dann kann dir den PHP sagen, aber du musst es dir ausgeben lassen musst es nur tun.

        Schonmal versucht ev. Fehler ausgeben lassen? http://php.net/manual/en/mysqli.error.php
        Das meinte ich damit.. Du gibts aktuell PHP nicht die Chance dir zu sagen was nicht passt. Du fragst nirgends ev. Fehler ab.

        Du kannst noch versuchen vor(!) dem mysqli_connect das hier zu setzen, dann werden etwaige Fehler zu dir durchgeprügelt ohne Abfrage. Versuch mal.

        PHP-Code:
        mysqli_report(MYSQLI_REPORT_ERROR);
        $con mysqli_connect("localhost""web1044""pw"); // dein connect 
        // ... 
        Und auch wenn es dir nicht passt, es ist deine Aufgabe deine Fehler zu finden. Dazu gibt es das Debuggen, das gehört zum programmieren dazu.
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Ok.
          Danke dir mal hausl.
          Fehler gibt php jetzt aus doch mit solchen wo ich nicht wirklich etwas anfangen kann.


          Warning: mysqli_query(): (42S22/1054): Unknown column 'Mehl' in 'field list' in /var/www/web1044/html/domain1/toureinzeln2.php on line 61

          line 61 ist dabei die letzte
          PHP-Code:
          ."ertrag = '$ertrag' WHERE Nummer = '$nummer'") or die ("Der Eintrag ist Fehlgeschlagen"); 
          Das Mehl ist die Fracht wo zuvor in der anderen angegeben ist
          PHP-Code:
              echo "<p><input type = 'number' name = 'nummer' value = '" $dsatz["Nummer"] . "' />Nummer (NICHT ÄNDERN!)</p>";
              echo 
          "<p><input type = 'number' name = 'tour' value = '" $dsatz["Tour"] . "' />Tour</p>";
              echo 
          "<p><input type = 'number' name = 'km' value = '" $dsatz["km"] . "' />Kilometer</p>";
              echo 
          "<p><input type = 'number' name = 'schaden' value = '" $dsatz["schaden"] . "' />€ Schaden</p>";
              echo 
          "<p><input type = 'number' name = 'pschaden' value = '" $dsatz["pschaden"] . "' />% Schaden</p>";
              echo 
          "<p><input type = 'number' name = 'verbrauchl' value = '" $dsatz["verbrauchl"] . "' />Verbrauch in L</p>";
              echo 
          "<p><input type = 'number' name = 'schiff' value = '" $dsatz["schiff"] . "' />Schiff-Kosten</p>";
              echo 
          "<p><input type = 'text' name = 'fracht' value = '" $dsatz["fracht"] . "' />fracht</p>";
              echo 
          "<p><input type = 'number' name = 'tonnen' value = '" $dsatz["tonnen"] . "' />Tonnen</p>";
              echo 
          "<p><input type = 'number' name = 'ertrag' value = '" $dsatz["ertrag"] . "' />€ Eingenommen</p>"
          oben wird es bei Fracht benutzt.

          hab die andere noch ein wenig gechanged
          PHP-Code:
          $sql mysqli_query($con"UPDATE touren SET"
              
          .    " Nummer = " "$nummer", "
              
          .    " Tour = " "$tour", "
              
          .    "km = " "$km", "
              
          .    "schaden = " "$schaden", "
              
          .    "pschaden = " "$pschaden", "
              
          .    "verbrauchl = " "$verbrauchl", "
              
          .    "schiff = " "$schiff", "
              
          .    "fracht = " "$fracht", "
              
          .    "tonnen = " "$tonnen", "
              
          .    "ertrag = '$ertrag' WHERE Nummer = '$nummer'") or die ("Der Eintrag ist Fehlgeschlagen"); 

          Kommentar


          • #6
            Warning: mysqli_query(): (42S22/1054): Unknown column 'Mehl' in 'field list' in /var/www/web1044/html/domain1/toureinzeln2.php on line 61
            Was ist Zeile 61? Es scheint als ob du etwas in die DB in die Spalte "Mehl" schreiben willst und es die aber nicht gibt.

            LG
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Aber laut oben will ich doch in die Spalte fracht schreiben mit der variable $fracht.
              oder nicht?

              PHP-Code:
               .    "fracht = " "$fracht", " 

              Kommentar


              • #8
                Irgendwo ist was mit Mehl, das stört die DB..

                Lass dir mal die fertig von PHP geparste Query (um Zeile 61) ausgeben und prüfe die mal, da muss was mit Mehl sein Dazu deine query in eine Variable geben, dann kann man die mit echo ausgeben und zB direkt im phpMyAdmin laufen lassen etc. also so .. hier mal schnell getippt:

                PHP-Code:
                $query "UPDATE touren SET"
                    
                .    " Nummer = " "$nummer", "
                    
                .    " Tour = " "$tour", "
                    
                .    "km = " "$km", "
                    
                .    "schaden = " "$schaden", "
                    
                .    "pschaden = " "$pschaden", "
                    
                .    "verbrauchl = " "$verbrauchl", "
                    
                .    "schiff = " "$schiff", "
                    
                .    "fracht = " "$fracht", "
                    
                .    "tonnen = " "$tonnen", "
                    
                .    "ertrag = '$ertrag' WHERE Nummer = '$nummer'"

                echo $query// DEBUG
                $sql mysqli_query($con$query) or die ("Der Eintrag ist Fehlgeschlagen"); 
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  UPDATE touren SET Nummer = 20, Tour = 34, km = 803, schaden = 0, pschaden = 0, verbrauchl = 237, schiff = 0, fracht = Mehl, tonnen = 20, ertrag = '25510' WHERE Nummer = '20'

                  Mehl ist drinne. Das ist die Fracht der Fahrer.
                  Kurze frage. Muss jede Spalte angegeben sein bei dem Update? Wenn ja, wie macht man es das dieser Wert einfach der alte bleibt also nicht verändert wird?

                  Kommentar


                  • #10
                    sollte vermutlich 'Mehl' sein , mit Hochkomma da ein String?

                    Im Gegenzug dazu hast du bei diesen Zahlen auch Strings, kann ja gewollt sein je nach möglichen Inhalten.

                    Code:
                    ertrag = '25510' WHERE Nummer = '20'
                    in MySQL werden Zahlen als solche dargestellt, ohne Begrenzer und Strings mit 'Hochkommas' als Stringbegrenzer. Schau dir das nochmals an.
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #11
                      Jetzt hab ich mal das Mehl in Hochkommas gesetzt und die Zahlen ohne. Aber jetzt kommt das

                      UPDATE touren SET Nummer = 20, Tour = 34, km = 803, schaden = 0, pschaden = 0, verbrauchl = 237, schiff = 0, fracht = 'Mehl', tonnen = 20, ertrag =25510WHERE Nummer =20
                      Warning: mysqli_query(): (42000/1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Nummer =20' at line 1 in /var/www/web1044/html/domain1/toureinzeln2.php on line 64
                      Der Eintrag ist Fehlgeschlagen

                      PHP-Code:
                      $query "UPDATE touren SET"
                          
                      .    " Nummer = " "$nummer", "
                          
                      .    " Tour = " "$tour", "
                          
                      .    "km = " "$km", "
                          
                      .    "schaden = " "$schaden", "
                          
                      .    "pschaden = " "$pschaden", "
                          
                      .    "verbrauchl = " "$verbrauchl", "
                          
                      .    "schiff = " "$schiff", "
                          
                      .    "fracht = '$fracht'" ", "
                          
                      .    "tonnen = " "$tonnen", "
                          
                      .    "ertrag =" "$ertrag"WHERE Nummer =" "$nummer";

                      echo 
                      "$query"// DEBUG
                      $sql mysqli_query($con$query) or die ("Der Eintrag ist Fehlgeschlagen"); 

                      Kommentar


                      • #12
                        Code:
                        ertrag =25510WHERE Nummer =20
                        Leerzeichen fehlt das ist aber nicht schwer zu erkenen... bekommst sogar guten Hinweis

                        Code:
                         ... for the right syntax to use near 'Nummer =20'
                        The string "()()" is not palindrom but the String "())(" is.

                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar


                        • #13
                          Joa. schon gemerkt als ich genauer hingeschaut habe. Jetzt klappt alles.

                          Vielen Vielen Vielen Vielen Dank. Jetzt muss ich nur noch das löschen machen. Das ist aber halb so schwierig.

                          Kommentar


                          • #14
                            Sei beim Löschen nur vorsichtig, wenn du die zu löschende ID via URL übergibst, das die URL nicht "einfach so" öffentlich erreichbar ist, sonst kann dir jeder nach belieben über die URL deine DB leer machen. Nur so als Hinweis.

                            LG
                            The string "()()" is not palindrom but the String "())(" is.

                            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                            PHP.de Wissenssammlung | Kein Support per PN

                            Kommentar

                            Lädt...
                            X