Auswahl von tabellen

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

  • Auswahl von tabellen

    Folgendes Problem:

    Ich habe ein ganz normales Formular über welches ich Daten in eine Tabelle eingebe. Das Problem ist das Auswählen der Tabelle. Die Tabelle befindet sich in der gleichen DB, wo ich über eine session_id den Kunden ausgewählt habe. Der Kundenname ist gleich dem Tabellennamen.

    Das ganze liegt in einem Frameset wobei ich session_start() im Frameset ausgeführt habe.

    Der Code:
    PHP-Code:
    <?php


    include ("../login/sessionhelpers.inc.php");
        
    $sql="SELECT UserName
        FROM kundendaten 
        WHERE UserSession='"
    .session_id()."' 
        LIMIT 1"

        
    $result=mysql_query(sql);
    mysql_error();  
    $table="SELECT TABLE
        FROM buchhalt_ea
        WHERE 
    $table = $result
        LIMIT 1"
    ;
        
    $table_result=mysql_query($table);
    mysql_error();
    $eintrag "INSERT INTO $table (id, datum, buchkonto, buchungstext, geldkonto,
     waehrung, mwst_prozente, mwst, brutto, netto) 
    VALUES ('
    $id', '$datum', '$buchkonto', '$buchungstext', '$geldkonto',
     '
    $waehrung', '$mwst_prozente', '$mwst', '$netto', '$brutto')";
    mysql_query ($eintrag);
    mysql_error();
    mysql_close ();
        
    ?>

    Folgendes Problem tritt jetzt auf:

    Notice: Use of undefined constant sql - assumed 'sql' in C:\apachefriends\xampp\htdocs\buchhalt_einfach\buchungen\buchung.php on line 19

    Notice: Undefined variable: table in C:\apachefriends\xampp\htdocs\buchhalt_einfach\buchungen\buchung.php on line 24



    Kann mir bitte jemand helfen!
    Zuletzt geändert von grizzly37; 11.04.2005, 10:15.

  • #2
    geh mal hier die Checkliste durch: http://www.php-resource.de/forum/sho...threadid=47906

    Kommentar


    • #3
      Vorerst einmal sorry für das erste posten vom Beitrag, habe es jetztgeändert und hoffe, es ist jetzt in Ordnung.

      Das erste Problem war eigentlich gar keines, habe das $-Zeichen vor sql vergessen. Das zweite Problem besteht aber noch immer.

      Kommentar


      • #4
        Habe das Ganze umgeschrieben.

        PHP-Code:
        <?php


        include ("../login/sessionhelpers.inc.php");
         
        error_reporting(E_ALL);   
        $sql="SELECT UserName
            FROM kundendaten 
            WHERE UserSession='"
        .session_id()."' 
            LIMIT 1"

            
        $result=mysql_query($sql);

        $table=$result;

        $eintrag "INSERT INTO $table(id, datum, buchkonto, buchungstext, geldkonto,
         waehrung, mwst_prozente, mwst, netto, brutto)
        VALUES ('
        $id', '$datum', '$buchkonto', '$buchungstext', '$geldkonto',
         '
        $waehrung', '$mwst_prozente', '$mwst', '$netto', '$brutto')";
            
        mysql_query($eintrag);
        mysql_close ();
            
        ?>
        Es kommt keine Fehlermeldung mehr, aber leider auch kein Eintrag in die Datenbank.

        Kommentar


        • #5
          Hallo,

          dann lass dir mal mit

          echo mysql_error(); nach dem mysql_query($eintrag); die Fehlermeldung des Mysql-Servers ausgeben.
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Habe alles noch einmal umgeschrieben.

            PHP-Code:
            <?php


            include ("../login/sessionhelpers.inc.php");
             
            error_reporting(E_ALL);   
            $sql="SELECT UserName
                FROM kundendaten 
                WHERE UserSession='"
            .session_id()."' 
                LIMIT 1"

                
            $result=mysql_query($sql);
                
            $mengemysql_num_rows($result); while($row mysql_fetch_row($result)){    echo $row[0] ;}
            $table=$row[0];
            echo 
            mysql_error(); 
            $eintrag "INSERT INTO $table(id, datum, buchkonto, buchungstext, geldkonto,
             waehrung, mwst_prozente, mwst, netto, brutto) 
            VALUES ('
            $id', '$datum', '$buchkonto', '$buchungstext', '$geldkonto',
             '
            $waehrung', '$mwst_prozente', '$mwst', '$netto', '$brutto')";
                
            mysql_query$eintrag);
            echo 
            mysql_error(); 
            mysql_close();

                
            ?>

            Meldung:

            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 '(id, datum, buchkonto, buchungstext, geldkonto, waehrung, mwst_p

            Kommentar


            • #7
              vlt. nen leerzeichen nach $table ?

              Kommentar


              • #8
                schön - und jetzt bitte noch kontrollausgabe von $eintrag (um zu merken, dass da bei $table vermutlich nichts vernünftiges steht) ...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  PHP-Code:
                  $eintrag "INSERT INTO $table(id, datum, buchkonto, buchungstext, geldkonto,
                   waehrung, mwst_prozente, mwst, netto, brutto) 
                  VALUES ('
                  $id', '$datum', '$buchkonto', '$buchungstext', '$geldkonto',
                   '
                  $waehrung', '$mwst_prozente', '$mwst', '$netto', '$brutto')"
                  anstelle von ('$id',.... muss es auch höchstwahrscheinlich einfach nur ($id,.... heißen (keine Anführungszeichen bei numerischen Spalten)
                  Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                  Schön - etwas Geschichte kann ja nicht schaden.
                  Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                  Kommentar


                  • #10
                    Habe alles probiert!

                    Wenn ich das $table durch den Namen einer Tabelle ersetze, kommt auch der Eintrag.

                    Könnte vielleicht der Grund der sein, das bei Username der Eintrag mit Grossbuchstaben steht und der Tabellenname aber nur in Kleinbuchstaben ausgegeben wird.

                    Ich habe auch bei einer anderen Datei denselben Code.
                    PHP-Code:
                    <?php 
                        $sql
                    ="SELECT UserName
                        FROM kundendaten 
                        WHERE UserSession='"
                    .session_id()."' 
                        LIMIT 1"

                        
                    $resultmysql_query($sql); 
                        
                    $mengemysql_num_rows($result); while($row mysql_fetch_row($result)){    echo $row[0] ;}
                    ?>
                    Die Ausgabe ist genau der Name, welcher auch gleichzeitig der Tabellenname ist.
                    Zuletzt geändert von grizzly37; 11.04.2005, 14:21.

                    Kommentar


                    • #11
                      Original geschrieben von grizzly37
                      Wenn ich das $table durch den Namen einer Tabelle ersetze, kommt auch der Eintrag.
                      na, dann zieh daraus jetzt mal deine schlüsse ...


                      btw: dass du für jeden user eine eigene tabelle verwendest, wollen wir doch jetzt aber nicht hoffen.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar

                      Lädt...
                      X