| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

04-10-2010, 20:58
|
|
titanfun
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 9
|
|
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
|

04-10-2010, 21:12
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
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
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

04-10-2010, 21:14
|
|
titanfun
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 9
|
|
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.
|

05-10-2010, 23:19
|
|
titanfun
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 9
|
|
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
|

06-10-2010, 00:45
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
*Themen gejoint*
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

06-10-2010, 08:33
|
|
Wyveres
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
|
|
Alleine in dem INSERT INTO fallen mir zwei unterschiede zum Create auf.
|

06-10-2010, 14:59
|
|
titanfun
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 9
|
|
ja was habe ich dann falsch gemacht, korriegiert mich bitte^^
|

06-10-2010, 16:13
|
|
asisito
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Ort: Munich / Germany
Beiträge: 16
|
|
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
Geändert von asisito (06-10-2010 um 16:16 Uhr)
|

06-10-2010, 16:50
|
|
titanfun
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 9
|
|
ja, ich hab da nicht allzuviel ahnung, bin seit 3 stunden am herumprobieren und nix klappt -.-
|

06-10-2010, 16:57
|
|
Wyveres
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
|
|
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 ...
|

06-10-2010, 17:00
|
|
titanfun
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 9
|
|
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 '',
)
Geändert von titanfun (06-10-2010 um 17:09 Uhr)
|

06-10-2010, 17:15
|
|
Wyveres
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
|
|
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?
|

06-10-2010, 17:27
|
|
titanfun
Registrierter Benutzer
|
|
Registriert seit: Oct 2010
Beiträge: 9
|
|
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^^
|

07-10-2010, 04:38
|
|
asisito
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Ort: Munich / Germany
Beiträge: 16
|
|
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
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
Hoffe, das hilft Dir ein wenig weiter
Gute N8!
Asisito
Geändert von asisito (07-10-2010 um 04:42 Uhr)
|

07-10-2010, 07:55
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
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 ^^
__________________
Wer LESEN kann, ist klar im Vorteil!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|