Announcement

Collapse
No announcement yet.

Problem mit Update Abfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit Update Abfrage

    Hallo Liebe Community,
    ich habe ein Problem mit der Update Ubfrage einer MYSQL Datenbank via PHP Skript. Folgende Situation:
    Ich möchte in einer bestehenden Tabelle (MYSql DB) Werte in dieser Datenbank verändern. Dies mache ich mit der Update Abfrage. D.h. ich habe eine leere Tabelle (PHP Skript) und eine Tabelle, die dann die Werte bekommen soll. habe so etwas auch schon halbwegs entwickelt, nur stimmt irgendwie was nicht mit der Übernahme von den Werten. Könnte sich das jemand angucken? Ich danke euch

    HTML Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
    <html>
      <head>
        <title>Auswahl von SQL Abfragen</title>
      </head>
      <body>
      <table border>
      <form action="<?php $_SERVER['PHP_SELF']?>" method="POST">
      <tr><td><input type="radio" name="gruppe" value="1"> Geben sie bitte all ihre Werte ein</td></td></tr>
      <tr><td><input type="radio" name="gruppe" value="2"> Gibt die komplette Tabelle aus</td></tr>
      <tr><td><input type="submit"></td></tr>
      </table>  
     <?php
     $server="localhost";
     $database="grosshandlung";
     $user="root";
     $password="";
     $db=new mysqli($server,$user,$password,$database) or die ("Falsche Verbindung");
     $_wahl=$_POST['gruppe'];
     switch($_wahl)
     {
        case 1:
        {
        echo"<table border>
        <tr>
        <th>Information</th>
        <th>Warengruppe 1</th>
        <th>Warengruppe 2</th>
        <th>Warengruppe 3</th>  
        </tr>
        <tr>
        <td>Jahresanfang</td>
        <td><input type='text' name='s1z1'</td>
        <td><input type='text' name='s2z1'</td>
        <td><input type='text' name='s3z1'</td>
        </tr>
        <tr>
        <td>Jahresmitte</td>
        <td><input type='text' name='s1z2'</td>
        <td><input type='text' name='s2z2'</td>
        <td><input type='text' name='s3z2'</td>
        </tr>
        <tr>
        <td>Jahresende</td>
        <td><input type='text' name='s1z3'</td>
        <td><input type='text' name='s2z3'</td>
        <td><input type='text' name='s3z3'</td>
        </tr>
        <tr>
        <td>Eink&auml;ufe</td>
        <td><input type='text' name='s1z4'</td>
        <td><input type='text' name='s2z4'</td>
        <td><input type='text' name='s3z4'</td>
        </tr>
        </table>
        <input type='submit'>";
      
        $s1z1=$_POST['s1z1'];
        $s2z1=$_POST['s2z1'];
        $s3z1=$_POST['s3z1'];
        $s1z2=$_POST['s1z2'];
        $s2z2=$_POST['s2z2'];
        $s3z2=$_POST['s3z2'];
        $s1z3=$_POST['s1z3'];
        $s2z3=$_POST['s2z3'];
        $s3z3=$_POST['s3z3'];
        $s1z4=$_POST['s1z4'];
        $s2z4=$_POST['s2z4'];
        $s3z4=$_POST['s3z4'];
            
        $abfrage2 = "UPDATE bestände SET warengruppe1 = $s1z1 WHERE Info = 'Jahresanfang';";
        $_ergebnis=$db->query($abfrage2);
      }break;
        
        case 2:
        {
            $_abfrage1="SELECT * FROM bestände;";
            $_ergebnis=$db->query($_abfrage1);
          
            echo"<table border>
            <tr>
            <th>Information</th>
            <th>Warengruppe 1</th>
            <th>Warengruppe 2</th>
            <th>Warengruppe 3</th>
            <th>Summe</th>
            </tr>";
            
            while($zeile=$_ergebnis->fetch_array())
            {
              $summe=$zeile["warengruppe1"]+$zeile["warengruppe2"]+$zeile["warengruppe3"];
              echo"<tr>
              <td>$zeile[Info]</td>
              <td>$zeile[warengruppe1]</td>
              <td>$zeile[warengruppe2]</td>
              <td>$zeile[warengruppe3]</td>
              <td>$summe</td>
              </tr>";
            }
            echo"</table>";
            $_ergebnis->free();
        }break;
      }
      ?>
     </form>
     </body>
     </html>
    Und hier die Datenbank zum importieren:

    Code:
    CREATE DATABASE grosshandlung;
    USE grosshandlung;
    
    CREATE TABLE IF NOT EXISTS `bestände` (
      `Info` text COLLATE latin1_general_ci NOT NULL,
      `warengruppe1` int(11) NOT NULL,
      `warengruppe2` int(11) NOT NULL,
      `warengruppe3` int(11) NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
    
    INSERT INTO `bestände` (`Info`, `warengruppe1`, `warengruppe2`, `warengruppe3`) VALUES
    ('Jahresanfang', 2, 95, 70),
    ('Jahresmitte', 99, 80, 65),
    ('Jahresende', 99, 110, 90),
    ('Einkäufe', 99, 600, 450);

  • #2
    Was "stimmt nicht"?

    Fehlermeldung?

    Mal eine Fehlerbehandlung berücksichtigt?

    http://php.net/manual/de/function.mysql-error.php
    Christian

    Comment


    • #3
      Das ist es ja, es kommt keine Fehlermeldung. Die Update Abfrage funktioniert schlicht und einfach nicht. Deswegen habe ich das hier rein gepostet.

      Comment


      • #4
        Und was ergibt mysql_error?
        Christian

        Comment


        • #5
          Kein ergebnis. Quasi er findet keinen Fehler, die Veränderung der Werte in der DB bzw. Tabelle funtzt trotzdem nicht

          Comment


          • #6
            Schon mal

            case "1"

            probiert?
            Christian

            Comment


            • #7
              Hallo,
              Originally posted by Exilim View Post
              ...Könnte sich das jemand angucken?
              BEVOR sich das jemand anguckt solltest du vlt. erstmal selbst auf Fehlersuche gehen und die Fehlerquelle etwas eingrenzen. Und ... schonmal was vom EVA-Prinzip gehört? Das hilft ungemein um zu sondieren in welchem Bereich - Eingabe, Verarbeitung oder Ausgabe - der Fehler auftritt.

              Gruß Falk
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment


              • #8
                Den fehler habe ich eingegerenzt, und zwar klappt irgendwas nicht mit der POST Übergabe, denn wenn ich den variablem feste werte gebe, funtzt die ganze sache.

                Comment


                • #9
                  Originally posted by Exilim View Post
                  Den fehler habe ich eingegerenzt, und zwar klappt irgendwas nicht mit der POST Übergabe, denn wenn ich den variablem feste werte gebe, funtzt die ganze sache.
                  "irgendwas" ist natürlich wieder sehr präzise ... Dann solltest du dir mal per Debugging ansehen, was denn in deinen Post-Daten drin steht und versuchen rauszukriegen warum es nicht das ist was es sollte und was genau das "irgendwas" ist.

                  Anmerkung: Dein Code ist anfällig für SQL-Injections! Auch solltest du SQL-Statements nicht mit einem Semikolon abschliessen. Das ist nur auf der MySQL-Kommandozeile notwendig, nicht aber bei einem Aufruf von mysql_query oder mysqli::query.

                  Gruß Falk
                  Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                  Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                  Comment

                  Working...
                  X