Ankündigung

Einklappen
Keine Ankündigung bisher.

Sessions und SQL

Einklappen

Neue Werbung 2019

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

  • Sessions und SQL

    Hallihallo, liebe Kenner des PHP

    ich arbeite nun schon ein ganzes Wochenende an einem Problem und komme zu keiner Lösung und hoffe Ihr könnt mir helfen.

    Wir müssen als Schulprojekt eine Lottomaschien alla win2day.at basteln. so weit so gut.
    Dafür haben wir eine Tabelle bei MYSQL (über phpmyadmin erstellt) für die User_authorisierung (ID, username, passwort, letzter_login) und eine Tabelle mit dem Lottoschein(ID, ID_user, zahl1-zahl6 und zusatzzahl).

    Hier nun das Problem.
    Ein eingeloggter Spieler kann unzählige viele Tipps spielen. Und ich möchte dass die ID des Users aus User_authorisierung immer bei ID_User von lottoschein angezeigt wird. Das heißt, wenn der User 10mal einen Tipp spielt, dann soll auch zehnmal bei ID_User die ID drin stehen.
    Bisher bleibt da einfach immer nur eine Null stehn, obwohl ich schon mit einem INSERT INTO, einem mysql_insert_Id und sogar mit einem Left Join bzw INNER Join probiert habe daran etwas zu ändern.

    Wie mach ich das also, dass ich immer sehe, welcher User, welche Tipps gespielt hat. Weil es solln ja auch nur jene gespielten Tipps angezeigt werden, die der User auch tatsächlich gespielt hat.

    Ich hoffe auf die Erleuchtung durch euch!
    Grüße,
    mozartinius

  • #2
    Zeige doch mal, was du bisher gemacht hast.
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Code:
      DROP TABLE IF EXISTS `scheine`;
      CREATE TABLE `scheine` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `user_id` int(11) NOT NULL,
        `zahl1` int(11) NOT NULL,
        `zahl2` int(11) NOT NULL,
        `zahl3` int(11) NOT NULL,
        `zahl4` int(11) NOT NULL,
        `zahl5` int(11) NOT NULL,
        `zahl6` int(11) NOT NULL,
        `zahl7` int(11) NOT NULL,
        `zusatzzahhl` int(11) NOT NULL,
        PRIMARY KEY (`id`),
        KEY `user_id` (`user_id`),
        CONSTRAINT `scheine_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
      
      
      DROP TABLE IF EXISTS `user`;
      CREATE TABLE `user` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `username` varchar(255) NOT NULL,
        `password` varchar(255) NOT NULL,
        `last_login` datetime NOT NULL,
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
      So in etwa müssten deine SQL-Befehle aussehen. Dann musst du bei user_id nur noch die ID des Users reinschreiben der den Schein gerade ausfüllt.
      - Laravel

      Kommentar


      • #4
        Mein Code sieht derzeit so aus.. ich habe es zumindest auf diese Weise probiert.

        $user_abfrage = "SELECT user_auth.ID FROM user_auth WHERE lottoschein.ID_user = user_auth.ID";



        if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "lottoschein")) {
        $insertSQL = sprintf("INSERT INTO lottoschein (ID_user, zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zusatzzahl) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
        GetSQLValueString($user_abfrage, "int"),
        GetSQLValueString($_POST['zahl1'], "int"),
        GetSQLValueString($_POST['zahl2'], "int"),
        GetSQLValueString($_POST['zahl3'], "int"),
        GetSQLValueString($_POST['zahl4'], "int"),
        GetSQLValueString($_POST['zahl5'], "int"),
        GetSQLValueString($_POST['zahl6'], "int"),
        GetSQLValueString($_POST['zzahl'], "int"));


        mysql_select_db($database_lotto, $lotto);
        $Result1 = mysql_query($insertSQL, $lotto) or die(mysql_error());

        Kommentar


        • #5
          $user_abfrage ist doch kein integer?!?

          Mit dem Codeschnipsel kann man nicht wirklich was anfangen.
          Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

          Kommentar


          • #6
            Eigne dir bitte zuerst mal mysqli_ oder PDO an. "mysql_" ist veraltet.
            - Laravel

            Kommentar


            • #7
              Zitat von tera3yte Beitrag anzeigen
              Eigne dir bitte zuerst mal mysqli_ oder PDO an. "mysql_" ist veraltet.
              Bestimmt alte Dreamweaver (würg) Version
              Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

              Kommentar


              • #8
                Kurz dazu

                Ja, mysql ist veraltet. Aber, zumindest im Moment noch, schneller in der Abfrage. (Was ja auf verschiedenen Testseiten nachgelesen werden kann)

                Programmiertechnisch sicher einfacher, da OO, aber nicht wirklich (leider im Moment noch nicht) Kundenfreundlich.

                Kommentar


                • #9
                  Ja, mysql ist veraltet. Aber, zumindest im Moment noch, schneller in der Abfrage. (Was ja auf verschiedenen Testseiten nachgelesen werden kann)
                  Die mysql_*-API von PHP zu MySQL ist veraltet.
                  PDO ist/war(?) mininmal langsamer* (wie siehts mit mysli aus?), ist aber die bei weitem überlegene Schnittstelle zum Datenbankzugriff.
                  Wenn man Tests erwähnt, wären Links dazu auch ganz nett.

                  * der Zeitunterschied ist doch eh so gering, dass man selbst nach 1000 requests noch keine Sekunde verloren hätte.

                  Programmiertechnisch sicher einfacher, da OO, aber nicht wirklich (leider im Moment noch nicht) Kundenfreundlich.
                  Was?

                  Jede, auch nur angedeutete, Empfehlung die alte mysql-Schnittstelle zu verwenden ist fahrlässig und führt unerfahrene Programmierer in eine Sackgasse und vor einen Haufen Arbeit sobald die Funktionen dann 'undefined' sind.
                  [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                  [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                  Kommentar

                  Lädt...
                  X