[PHP] Problem bei Änderung von MySQL Daten

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von FinnSoft.

    [PHP] Problem bei Änderung von MySQL Daten

    Hallo,
    ich hoffe das ist die letzte Frage zu PHP von mir ich habe hier diesen Code:

    PHP-Quellcode

    1. $update = mysql_query("UPDATE sig SET ypos = '$ypos' WHERE id = '5'");
    und normal sollte er doch der Tabelle sig und dem Datenwert ypos die Variable $ypos zuweisen. Ich habe nicht ganz verstanden für was id = 5 ist jedenfalls kann ich sagen das

    PHP-Quellcode

    1. $mysql_query = mysql_query("SELECT ypos FROM sig");
    irgendwas mit 5 erbit also stimmt das mit der ID. Aber in der MySQL Tabelle wird einfach nix geändert ich hoffe es sitzt jetzt jmd vor seinem Bildschirm und schüttelt den Kopf weil es so leicht ist. Ich wäre euch sehr dankbar wenn ihr mir helfen könntet.

    LG
    Juup, den Kopp schüttel ich gerade ... irgendwie geht das aber in Richtung Tischplatte. :D

    Die Update-Anweisung veranlasst das bei ALLEN Datensätzen die in der Column ID den Wert 5 enthalten das Feld ypos geändert wird. Ob die Übergabe der Variable $ypos richtig übergeben wird kann ich Dir mangels PHP Kenntnissen nicht sagen.

    Das heisst wenn überhaupt würden nur die Datensätze mit der Id 5 geändert werden. Wenn es davon keine gibt, dann wird auch nix geändert ... ganz logisch. ;)

    Beschreib doch mal was Du, bzw. welche Datensätze die ändern willst?

    Gruß

    Rainer
    Also ich habe eine Tabelle, die heißt sig. Und dann gibt es ein Feld welches ypos heißt wenn ich dann auf Anzeigen in PhpMyAdmin klicke wird der Datensatz ypos angezeigt mit dem Wert 87 und den möchte ich verändern.

    lG

    edit: Mittlerweile sieht mein script so aus:

    PHP-Quellcode

    1. $update = mysql_query("UPDATE sig Set ypos = '$ypos' WHERE id = 5");
    2. if (!$result) {
    3. die('Failed: ' . mysql_error());
    4. }

    Und wenn ich es aufrufe bekomme ich vom Browser zu hören Failed: Unknown column 'id' in 'where clause' was ist das schief geelaufenn?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FinnSoft“ ()

    Nunja, das habe ich mir gedacht, aber was genau willst du mit dem SQL Befehl bezwecken? Ich nehme nämlich an dass du einen neuen Datensatz in deine Tabelle einfügen willst und keinen bestehenden ändern. In diesem Fall musst du nämlich "INSERT INTO" benutzen und nicht "UPDATE", aber schau dir meinen Link in meinem vorigen Post an. Da lernst du MySQL gut.
    Hehe bei diesem Tutorial bin ich grad und habe es durchgemacht. Also ich habe eine Variable $ypos die den aktuellen Text ganz unten links am Bild erscheinen lässt. Nachdem der Text dorthin geschrieben wurde, ziehe ich von $ypos 12 ab sodass der nächste Text über dem anderen erscheint. Diese Zahl möchte ich dann in der MySQL Datenbank wo vorher der Wert $ypos stand eben so abändern das $ypos - 12 dort steht. Also wenn $ypos 90 ist dann soll da statt 90 eben 70 stehen.
    Und wozu machst du das?? Ich glaube du gehst da völlig falsch ran. Du willst eine SigChat, dabei sollen sagen wir mal die letzten 5 Zeilen aus der DB in ein Bild geschrieben werden ja?

    Also du machst EINEN SQLQuery wo dir die letzten 5 Datensätze ausgegeben werden, in der While-Schleife gehst du die Datensätze durch, mit einer globalen Variablen zählst du die Zeilen um die YPosition des Textes zu ändern.

    Also PseudoCode

    PHP-Quellcode

    1. $ypos = 0;
    2. $img = neuesBild(höhe, breite);
    3. mysqlquery("select 5 letzte Datensätze")
    4. while($row = fetch_vom_query) {
    5. ImageTtfText($img, x=0, y = $ypos, $farbe, $font, $row->text);
    6. $ypos += 12; // 12px addieren damit die nächste Zeile auch unter der anderen dargestellt wird
    7. }
    8. ImagePNG($img);


    So würde ich das machen.
    Okey, :whistling: stimmt da muss ich dir recht geben ich mache es seehr kompliziert. Du bist da um einiges dynamischer. Ich werde jetzt auf deinem Prinzip aufbauen. :D Es könnte sein das ich in 5 min nochmal was frage deswegen markiere ich noch nicht als erledigt.

    Aber viiiiiielen dank dodo. ^^
    Naja, einfach bischel überlegen, wie würdest es in VB mit GDI+ machen z.B. da würdest es ja vom Prinzip her genauso machen wie hier, ebenso kann man das auf PHP anwenden, is ja bloß der Syntax anders, aber die Grammatik is fast die selbe.
    Stimmt du hast recht. Ich hab jetzt noch eine Anfängerfrage aber da ich das noch nie angewendet habe weiß ich auch nicht wies geht. Also ich hab eine index.htm mit nem Formular und ich möchte das während der Eingabe schon berechnet wird wie viele Zeichen schon eingegeben wurden. Da auf mein Bild nur 39 Zeichen passen und 2 davon für ':' und ' ' verbraucht sind möchte ich dem Benutzer genau anzeigen wie viele Zeichen er also bei der Nachricht noch verwenden darf wenn sein Benutzername 20 Zeichen lang ist.

    Quellcode

    1. <script language="javascript" type="javascript">
    2. <!--
    3. function charCount(obj) {
    4. document.getElementById('divBox').innerHTML = "Noch " + (20 - obj.value.length) + " Zeichen &uuml;brig";
    5. }
    6. //-->
    7. </script>


    HTML-Quellcode

    1. <input type="text" onkeypress="charCount(this);" /><br />
    2. <div id="divBox">Noch 20 Zeichen &uuml;brig</div>


    Obs funktioniert weiß ich nicht, habs ma schnell ausm Kopf geschrieben.
    Danke, leider geht es nicht da steht dann immer 20 zeichen übrig. Aber ich hab mal Google angeschmissen,

    HTML-Quellcode

    1. <script language="javascript">
    2. function updateStatus(elem) {
    3. var form = elem.form;
    4. form.status.value = elem.value.length;
    5. }
    6. </script>
    7. <form name="ding";">
    8. Nachricht: <input type="text" size="40" name="nachricht onkeydown="updateStatus(this);">
    9. länge: <input type="text" name="status" value="0">
    10. </form>

    Das ist dabei rausgekommen habe es noch etwas beschnitten und abgeändert aber es funktioniert. Nur ist jetzt eben das Problem wenn ich 1nen Buchstaben eingeb zeigt es null an bei zwei 1 usw. Das würde ich ja auch beheben können aber ich versteh ja nichtmal wie die Funktion updateStatus die aktuelle länge an an die textbox status übergibt. Kannst du mir das erklären?

    Danke

    edit: FAIL habs doch gefunden bin ich blöd xD aber das nächste Problem mti einer text area gehts mit dem input type text nicht warum?
    Habe es jetzt:

    HTML-Quellcode

    1. <script language="javascript">
    2. function updateStatus(elem) {
    3. var form = elem.form;
    4. form.status.value = elem.value.length + 1;
    5. }
    6. </script>
    7. <form name="ding";">
    8. <input type="text" size="40" name="dong" onkeydown="updateStatus(this);">
    9. länge: <input type="text" name="status" value="0">
    10. </form>

    ABER wenn ich die löschen Taste (mist mir fällt der Name nicht ein :D) drücke dann funktioniert das nicht so richtig dann wird erst noch dazu gezählt und dann beim zweiten drücken erst herab. kanns stu mir sagen woher das kommt ? danke

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FinnSoft“ ()

    HTML-Quellcode

    1. <html>
    2. <head>
    3. <title>Formulareingaben &uuml;berpr&uuml;fen</title>
    4. <script type="text/javascript">
    5. function chkFormular () {
    6. if (document.Formular.nickname.value == "") {
    7. alert("Bitte gebe einen Nicknamen ein!");
    8. document.Formular.nickname.focus();
    9. return false;
    10. }
    11. if (document.Formular.nachricht.value == "") {
    12. alert("Bitte gib eine Nachricht ein!");
    13. document.Formular.nachricht.focus();
    14. return false;
    15. }
    16. function updateStatus(elem) {
    17. var form = elem.form;
    18. form.status.value = elem.value.length + 1;
    19. }
    20. </script>
    21. </head>
    22. <body>
    23. <h1>Chat</h1>
    24. <form name="Formular" onsubmit="return chkFormular()">
    25. <pre>
    26. Nickname: <input type="text" maxlength="15" name="nickname" onkeyup="updateStatus(this);">
    27. Nachricht: <input type="text" maxlength="30" name="nachricht">
    28. <input type="text" name="status" value="0">
    29. Formular: <input type="submit" value="Absenden"><input type="reset" value="Abbrechen">
    30. </pre>
    31. </form>
    32. </body>
    33. </html>
    34. <?php
    35. include ("dbconnect.php");
    36. $nickname = document.Formular.nickname.value;
    37. $nachricht = document.Formular.nickname.value;
    38. echo $nickname;
    39. ?>

    Das ist der Code der zu dieser Website gehört: juvy.de/sig/ Wenn ich jetzt auf meine Webstie gehe etwas eintippe und auf Absenden klicke passiert was was ich überhaupt nicht nachvollziehen kann. Kannst du dir das mal anschauen. Geh einfach auf die Website und gib in beide Felder was ein dann klick absenden und guck in die url.

    LG
    Naja, das Formular wird abgeschickt, zwar über GET aber du hast ja auch keine andere Methode angegeben =)

    Aber dein PHP Code ist ja auch geil lol PHP und JS gemischt ^^

    An die Daten des Formulars kommst du über $_GET['nickname'] oder $_GET['nachricht'] =)

    Ich würde dir jedoch zu POST raten, dann steht nichts in der URL oben.