Hilfe: Create Datenbank code verschwunden, nur noch php dateien

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hilfe: Create Datenbank code verschwunden, nur noch php dateien

    Hi zusammen,
    Ich habe ein riesiges Problem ich habe, ne website mit paar funktionen wie registration und login.
    Aber weil ich das vor ca einem Jahr gemacht habe, finde ich nun die Create session, MSQL-Code nicht mehr, jetzt kann ich die website nicht mehr nutzen, weil die msql datenbanken fehlen.

    Ich habe nur noch die Dateien mit den Msql-abrufbefehlen, kann ich die MSQL datenbank code rekonstruieren ?
    mfg titanfun

  • #2
    Hallo,

    es ist schwierig bis unmöglich, aus den Abfragen allein die DB-Struktur zu rekonstruieren. Wenn du die DB noch in Betrieb hast oder ein Backup des Data-Verzeichnisses besitzt, sieht es schon besser aus.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Nein leider habe ich kein Backup mehr, aber das Browserspiel hat noch sehr wenige funktion fast gar keine, nur login registration ist glaube ich der grösste teil zum nachkonstruieren.

      Kommentar


      • #4
        Hab ne Frage zu MSQl Tabelle

        Hi zusammen.
        Ich hab schon viel rekonstruiert von meinem Browserspiel, aber die aktionen fehlen noch paar Zeilen code^^

        Das steht in der PHP datei: Aktion 1

        Code:
        $V0e25f3ba = mysql_result(mysql_query('SELECT count(*) FROM deals WHERE `userid`= "'.$_SESSION['USERID'].'" AND `done` = "0"'),0); 
        if ($V0e25f3ba != 0)
         {
         $V66e883ef = mysql_result(mysql_query('SELECT `begin` FROM `deals` WHERE `userid` = "'.$_SESSION['USERID'].'" AND `done` = "0"'),0);
        $V2d2937f7 = mysql_result(mysql_query('SELECT `end` FROM `deals` WHERE `userid` = "'.$_SESSION['USERID'].'" AND `done` = "0"'),0);
        $V45b8e39a = ($V2d2937f7 - $V66e883ef) / 60;
        if ($V2d2937f7 < time())
        Code:
        	$V0e25f3ba = mysql_result(mysql_query('SELECT count(*) FROM deals WHERE userid= "'.$_SESSION['USERID'].'" AND done = "0"'),0); 
        	if ($V0e25f3ba == 0)
        	{
         $V783e8e29 = $_POST['duration'] * 60;
        $V2d2937f7 = time() + $V783e8e29;
        $Vac5c74b6 = 'INSERT INTO `deals` (`ID`, `userid`, `begin`, `end`, `done`) VALUES (NULL, "'.$_SESSION['USERID'].'", "'.time().'", "'.$V2d2937f7.'", "0");'
        und meine Tabelle hab ich mal rekonstruiert aber da stimmt einiges noch nicht wie ich herausgefunden habe xD

        Code:
        CREATE TABLE deals ( 
          ID varChar(50) NOT NULL default '',
          begin varChar(50) NOT NULL default '',
          end varChar(50) NOT NULL default '',
          count varChar(50) NOT NULL default '',
        )
        Ich hoffe mal ihr könnt mir da weiterhelfen. Habe schon ^Login & Registration mit den Funktionen Attk,Def,Punkte,Gold nachkonstruieren können obwohl alle sagten das kann man nicht^^
        mfg titanfun

        Kommentar


        • #5
          *Themen gejoint*
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Alleine in dem INSERT INTO fallen mir zwei unterschiede zum Create auf.
            Bitte Beachten.
            Foren-Regeln
            Danke

            Kommentar


            • #7
              ja was habe ich dann falsch gemacht, korriegiert mich bitte^^

              Kommentar


              • #8
                Hallo,

                PHP-Code:
                "korrigiert mich bitte" != "schreibt mir den code fertig hin" 
                Wyveres hat Dich doch schon auf einen Punkt gestoßen: Vergleich mal die Felder, die Du gerne einfügen möchtest, mit denen, die Du mit Create Table auch wirklich erstellst. Das kann nicht gehen.


                Gruss,
                Asisito
                Zuletzt geändert von asisito; 06.10.2010, 16:16.
                Gruss,
                Asisito

                PHP Doku: http://de.php.net/manual/de
                Coding Standard: http://php-coding-standard.de
                MySQL Doku: http://dev.mysql.com/doc/refman/5.1/de/index.html
                PHP OOP: http://professionelle-softwareentwicklung-mit-php5.de

                ------------------------------------------------

                [COLOR=#000000][COLOR=#007700]if ( [/COLOR][COLOR=#0000bb]$humans [/COLOR][COLOR=#007700]>= [/COLOR][COLOR=#0000bb]2 [/COLOR][COLOR=#007700]) {
                [/COLOR][COLOR=#0000bb]war [/COLOR][COLOR=#007700]();
                } [/COLOR][/COLOR]

                Kommentar


                • #9
                  ja, ich hab da nicht allzuviel ahnung, bin seit 3 stunden am herumprobieren und nix klappt -.-

                  Kommentar


                  • #10
                    Wenn du den Unterschied zwischen dem Insert into und dem was im Create steht und den regeln von SQL nicht kennst ... kann ich dir recht herzlich wenig helfen denn alles was du brauchst zum erkennen was du falsch machst steht da ...
                    Bitte Beachten.
                    Foren-Regeln
                    Danke

                    Kommentar


                    • #11
                      Habs nochma angeschaut siehts so besser aus ?

                      Code:
                      $V0e25f3ba = mysql_result(mysql_query('SELECT count(*) FROM deals WHERE `userid`= "'.$_SESSION['USERID'].'" AND `done` = "0"'),0); 
                      if ($V0e25f3ba != 0)
                       {
                       $V66e883ef = mysql_result(mysql_query('SELECT `begin` FROM `deals` WHERE `userid` = "'.$_SESSION['USERID'].'" AND `done` = "0"'),0);
                      $V2d2937f7 = mysql_result(mysql_query('SELECT `end` FROM `deals` WHERE `userid` = "'.$_SESSION['USERID'].'" AND `done` = "0"'),0);
                      $V45b8e39a = ($V2d2937f7 - $V66e883ef) / 60;
                      if ($V2d2937f7 < time())
                      Code:
                      	$V0e25f3ba = mysql_result(mysql_query('SELECT count(*) FROM deals WHERE userid= "'.$_SESSION['USERID'].'" AND done = "0"'),0); 
                      	if ($V0e25f3ba == 0)
                      	{
                       $V783e8e29 = $_POST['duration'] * 60;
                      $V2d2937f7 = time() + $V783e8e29;
                      $Vac5c74b6 = 'INSERT INTO `deals` (`ID`, `userid`, `begin`, `end`, `done`) VALUES (NULL, "'.$_SESSION['USERID'].'", "'.time().'", "'.$V2d2937f7.'", "0");'


                      Code:
                      CREATE TABLE deals ( 
                        ID varChar(50) NOT NULL default '',
                        userid varChar(50) NOT NULL default '',
                        begin datetime,
                        end datetime,
                        done varChar(50) NOT NULL default '',
                      )
                      Zuletzt geändert von titanfun; 06.10.2010, 17:09.

                      Kommentar


                      • #12
                        Ok ... ich weiß nicht ob das so gut aussieht ab um eine Zerstörte DB wieder herzustellen musst du folgendes beachten.

                        1.) Suche alle Select Update Delete und Insert statements im quelltext.
                        2.) Schau dir an wie die Namen der Tabellenzellen sind
                        3.) Schau dir die Inserts genau an welche Werte du übergibst ...

                        z.b. DATETIME vs. php function time() ...

                        erstelle dir dann daraus deine Creates neu und probiere die skripte aus.

                        ps: die nicht sprechenden Variablen benennung verkompliziert dir deine arbeit ungemeint ... $V2d2937f7 was soll das bringen?
                        Bitte Beachten.
                        Foren-Regeln
                        Danke

                        Kommentar


                        • #13
                          Code:
                          CREATE TABLE deals ( 
                            ID varChar(50) NOT NULL default '',
                            userid varChar(50) NOT NULL default '',
                            begin datetime,
                            end datetime,
                            done varChar(50) NOT NULL default '',
                          )
                          Und die befehle, insert,update, select


                          Insert:
                          • ID - deals
                          • userid - deals
                          • begin - deals
                          • end - deals
                          • done - deals



                          Update:
                          • money - user
                          • done - deals


                          Select:
                          • count(*) - deals
                          • begin - deals
                          • end - deals


                          aber irgendwas stimmt noch nciht ganz genau, weil es noch nicht funktioniert^^

                          Kommentar


                          • #14
                            Für das Feld "id" (Tipp: alle DB-Felder klein schreiben) bitte keinen (!) String als Typ benutzen, sondern SMALLINT, MEDIUMINT oder INT. Dasselbe gilt für"userid". Deine "id" sollte folgende Eigenschaften haben:

                            auto_increment
                            primary key

                            Also so etwas wie

                            Code:
                            CREATE TABLE IF NOT EXISTS `deals` (
                              `id` int(11) NOT NULL AUTO_INCREMENT,
                              `userid`INT(11) NOT NULL,         
                              `begin` DATETIME NOT NULL,  
                              `end` DATETIME NOT NULL, 
                              `done` ENUM('true','false') NOT NULL, 
                            PRIMARY KEY (`id`)
                            ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
                            Ansonsten ist Dein Insert-Query nicht möglich, da er davon ausgeht, daß "id" automatisch einen Wert zugewiesen bekommt.



                            Beim Feld "done", wo Du wohl nur mit 0 und 1 arbeitest (bzw. "true" und "false"), wäre als dringende Alternative zu VARCHAR zu überlegen:

                            1. - mit ENUM zu arbeiten
                            Beispiel: ENUM('true', 'false')
                            Vorteil: Du schränkst die möglichen Werte auf genau diese zwei ein. Was Du nicht machen solltest, ist mit ENUM Zahlen zu "imitieren", also so etwas wie ENUM('0','1')

                            2. - mit TINYINT(1) zu arbeiten (unsigned)
                            Vorteil: Als Werte sind nur Zahlen zulässig
                            Nachteil: Wertebereich von 0 bis 255



                            Wenn Du im SELECT begin und end von "deals" haben möchtest, kannst Du das auch in einem Aufwasch machen:

                            Code:
                            $V66e883ef = mysql_result(mysql_query('SELECT `begin, end` FROM `deals` WHERE `userid` = "'.$_SESSION['USERID'].'" AND `done` = "0"'),0);
                            Und sieh mal nach, was time() wirklich macht: PHP: time - Manual

                            [COLOR=Red]EDIT: Es lag mir beim letzen Post schon auf der Zunge: Wie mein Vorschreiber rate ich Dir, Deine Variablennamen in eine sinnvolle Form zu bringen [/COLOR]


                            Hoffe, das hilft Dir ein wenig weiter

                            Gute N8!

                            Asisito
                            Zuletzt geändert von asisito; 07.10.2010, 04:42.
                            Gruss,
                            Asisito

                            PHP Doku: http://de.php.net/manual/de
                            Coding Standard: http://php-coding-standard.de
                            MySQL Doku: http://dev.mysql.com/doc/refman/5.1/de/index.html
                            PHP OOP: http://professionelle-softwareentwicklung-mit-php5.de

                            ------------------------------------------------

                            [COLOR=#000000][COLOR=#007700]if ( [/COLOR][COLOR=#0000bb]$humans [/COLOR][COLOR=#007700]>= [/COLOR][COLOR=#0000bb]2 [/COLOR][COLOR=#007700]) {
                            [/COLOR][COLOR=#0000bb]war [/COLOR][COLOR=#007700]();
                            } [/COLOR][/COLOR]

                            Kommentar


                            • #15
                              sowas passiert halt, wenn man den Code durch einen Anonymisierer schickt - in der Hoffnung, dass ihn dann keiner mehr richtig verstehen und klauen würde ^^
                              [font=Verdana]
                              Wer LESEN kann, ist klar im Vorteil!
                              [/font]

                              Kommentar

                              Lädt...
                              X