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

  • Ventus
    hat ein Thema erstellt [Erledigt] Datensatz ändern.

    [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);
    ?>

  • hausl
    antwortet
    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

    Einen Kommentar schreiben:


  • Ventus
    antwortet
    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.

    Einen Kommentar schreiben:


  • hausl
    antwortet
    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'

    Einen Kommentar schreiben:


  • Ventus
    antwortet
    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"); 

    Einen Kommentar schreiben:


  • hausl
    antwortet
    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.

    Einen Kommentar schreiben:


  • Ventus
    antwortet
    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?

    Einen Kommentar schreiben:


  • hausl
    antwortet
    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"); 

    Einen Kommentar schreiben:


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

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

    Einen Kommentar schreiben:


  • hausl
    antwortet
    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

    Einen Kommentar schreiben:


  • Ventus
    antwortet
    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"); 

    Einen Kommentar schreiben:


  • hausl
    antwortet
    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.

    Einen Kommentar schreiben:


  • Ventus
    antwortet
    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,.

    Einen Kommentar schreiben:


  • hausl
    antwortet
    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/

    Einen Kommentar schreiben:

Lädt...
X