Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   IF NOT EXIST abfrage mit MySQL (https://www.delphipraxis.net/128590-if-not-exist-abfrage-mit-mysql.html)

milos 2. Feb 2009 11:24


IF NOT EXIST abfrage mit MySQL
 
Hallo :D Wenn ihr euch fragt warum ich immer euch frage, der Grund ist: Ihr seit die beste Hilfe.
Da ich nun ein Bot mache, muss ich ja auch auswählen können welchen Spieler er spielt! Doch falls der Spielername nicht existiert, soll der Spieler erstellt werden. Für das brauche ich IF NOT EXISTS

Doch mein Proble ist, es wird nicht ausgeführt. Liegt es am SQL code?
Ach ja das ganze wird in PHP ausgeführt.

Code:
mysql_query("INSERT INTO IF NOT EXISTS ´username´ = $botname `users` (`id`,

`username`, `password`, `banned`, `villages`, `points`, `ennobled_by`, `ally`,

`ally_titel`, `ally_found`, `ally_lead`, `ally_invite`, `ally_diplomacy`,

`ally_mass_mail`, `rang`, `villages_mode`, `attacks`, `new_report`, `new_mail`,

`market_sell`, `market_buy`, `market_ratio_max`, `killed_units_att`,

`killed_units_att_rank`, `killed_units_def`, `killed_units_def_rank`,

`killed_units_altogether`, `killed_units_altogether_rank`, `do_action`,

`last_activity`, `birthday`, `vacation_id`, `vacation_name`, `vacation_accept`,

`b_day`, `b_month`, `b_year`, `sex`, `home`, `image`, `personal_text`, `window_width`,

`show_toolbar`, `dyn_menu`, `confirm_queue`, `map_size`, `memo`, `map_reload`,

`graphical_overwiev`, `overview`, `stufen`, `winter`) VALUES (NULL, '$botname',

'e10adc3949ba59abbe56e057f20f883e', 'N', '', '', '', '-1', '', '0', '0', '0', '0',

'0', '', 'prod', '0', '0', '0', 'all', 'all', '3', '', '', '', '', '', '', '', '', '',

'-1', '', '0', '', '', '', 'x', '', '', '', '840', '1', '1', '1', '9', '', '', '1',

'new', 'yes', '');'1', '1', '1', '9', '', '', '1', 'new', 'yes', '');");

franktron 2. Feb 2009 11:43

Re: IF NOT EXIST abfrage mit MySQL
 
Das geht gar nicht wenn schon dann Replace statt INSERT INTO guck mal in der Mysql Doku.

Und selbst dafür braucht mann den Primar KEY denn du anscheinen nicht hast.

milos 2. Feb 2009 11:47

Re: IF NOT EXIST abfrage mit MySQL
 
Es ist alles in localhost :D Es ist kein online spiel sondern ein lan game :D Aber Was zeigt dann mysql_result wenn es ein Falsches resultat bekommt?

nuclearping 2. Feb 2009 12:16

Re: IF NOT EXIST abfrage mit MySQL
 
Zitat:

Zitat von milos
Doch mein Proble ist, es wird nicht ausgeführt. Liegt es am SQL code?

Nicht zu dem Problem jetzt direkt, aber generell ist es gut, wenn man nach der genauen Fehlermeldung nicht erst noch nachfragen müßte. ;)

milos 2. Feb 2009 12:21

Re: IF NOT EXIST abfrage mit MySQL
 
Der Fehler ist es wird nicht in phpMyAdmin ausgeführt

DeddyH 2. Feb 2009 12:25

Re: IF NOT EXIST abfrage mit MySQL
 
Dann wird Dir phpMyAdmin auch eine Fehlermeldung ausgeben, oder?

[edit] Oder schau mal hier, das scheint Deinem Vorhaben nahe zu kommen: http://dev.mysql.com/doc/refman/5.0/...duplicate.html [/edit]

milos 2. Feb 2009 12:30

Re: IF NOT EXIST abfrage mit MySQL
 
Zitat:

Zitat von DeddyH
Dann wird Dir phpMyAdmin auch eine Fehlermeldung ausgeben, oder? Dort geht es...

[edit] Oder schau mal hier, das scheint Deinem Vorhaben nahe zu kommen: http://dev.mysql.com/doc/refman/5.0/...duplicate.html [/edit] Nein leide nicht :(


DeddyH 2. Feb 2009 12:32

Re: IF NOT EXIST abfrage mit MySQL
 
Das würde mich wundern, wenn das ginge. Wie heißt denn die Tabelle, das kann ich in Deinem Statement nicht erkennen.

milos 2. Feb 2009 12:33

Re: IF NOT EXIST abfrage mit MySQL
 
EDIT: Ich habe es geschaft...
Ich musste nach insert into tabelle "If not exists" nehmen uns nicht vor tabelle

milos 2. Feb 2009 12:36

Re: IF NOT EXIST abfrage mit MySQL
 
EDIT2: nein geht nicht :(

DeddyH 2. Feb 2009 12:37

Re: IF NOT EXIST abfrage mit MySQL
 
Sicher, dass das geht? Ansonsten nochmal hier nachlesen.

milos 2. Feb 2009 12:51

Re: IF NOT EXIST abfrage mit MySQL
 
Hmm... Das konnte mir leider auch nicht helfen.

DeddyH 2. Feb 2009 12:52

Re: IF NOT EXIST abfrage mit MySQL
 
Dann kann ich Dir leider auch nicht helfen, weil ich anscheinend nicht verstehe, was Du vorhast.

milos 2. Feb 2009 13:03

Re: IF NOT EXIST abfrage mit MySQL
 
Ich möchte das dieser code ausgeführt wird:

SQL-Code:
INSERT INTO ´username´ = $botname `users` (`id`,

`username`, `password`, `banned`, `villages`, `points`, `ennobled_by`, `ally`,

`ally_titel`, `ally_found`, `ally_lead`, `ally_invite`, `ally_diplomacy`,

`ally_mass_mail`, `rang`, `villages_mode`, `attacks`, `new_report`, `new_mail`,

`market_sell`, `market_buy`, `market_ratio_max`, `killed_units_att`,

`killed_units_att_rank`, `killed_units_def`, `killed_units_def_rank`,

`killed_units_altogether`, `killed_units_altogether_rank`, `do_action`,

`last_activity`, `birthday`, `vacation_id`, `vacation_name`, `vacation_accept`,

`b_day`, `b_month`, `b_year`, `sex`, `home`, `image`, `personal_text`, `window_width`,

`show_toolbar`, `dyn_menu`, `confirm_queue`, `map_size`, `memo`, `map_reload`,

`graphical_overwiev`, `overview`, `stufen`, `winter`) VALUES (NULL, '$botname',

'e10adc3949ba59abbe56e057f20f883e', 'N', '', '', '', '-1', '', '0', '0', '0', '0',

'0', '', 'prod', '0', '0', '0', 'all', 'all', '3', '', '', '', '', '', '', '', '', '',

'-1', '', '0', '', '', '', 'x', '', '', '', '840', '1', '1', '1', '9', '', '', '1',

'new', 'yes', '');'1', '1', '1', '9', '', '', '1', 'new', 'yes', '');
Falls $botname nicht existiert. $Botname ist die variable in der config wo man auswählen muss welchen spieler er steuert

DeddyH 2. Feb 2009 13:08

Re: IF NOT EXIST abfrage mit MySQL
 
Das Einfachste wäre doch, das in 2 Schritten zu machen. Zuerst nachschauen, ob es den User bereits gibt:
SQL-Code:
SELECT COUNT(*) AS Anzahl
FROM Tabelle
WHERE username = $botname
Kommt da eine 0 zurück (kein Datensatz vorhanden), dann mit INSERT einfügen
SQL-Code:
INSERT INTO Tabelle(Feldliste) VALUES(Wertliste)
ansonsten Datensatz updaten
SQL-Code:
UPDATE Tabelle
SET Feld1 = Wert1, Feld2 = Wert2,...
WHERE username = $botname

milos 2. Feb 2009 13:13

Re: IF NOT EXIST abfrage mit MySQL
 
Wie soll ich das denn abfragen ob 0 kommt?

$usernotexists = <<<MEHRZEILEN
mysql_query("SELECT COUNT(*) AS Anzahl
FROM Tabelle
WHERE username = $botname")
MEHRZEILEN;

if ($usernotexists == 0)
{
mysql_query("INSERT INTO Tabelle(Feldliste) VALUES(Wertliste)");
}


Und noch eine Frage:
mysql_query("SELECT COUNT(*) AS Welche anzahl?
FROM Tabelle
WHERE username = $botname")

DeddyH 2. Feb 2009 13:20

Re: IF NOT EXIST abfrage mit MySQL
 
Mit der Abfrage bekommst Du eine Datenmenge mit genau einem Datensatz zurück. Dieser Datensatz enthält das Feld "Anzahl", in dem die Anzahl der User mit diesem Namen drinsteht. Und wie man das in PHP abfragt, kannst Du hier nachlesen.

milos 2. Feb 2009 13:38

Re: IF NOT EXIST abfrage mit MySQL
 
Könntest du mir eine PN schicken und mir das erklären?

DeddyH 2. Feb 2009 13:41

Re: IF NOT EXIST abfrage mit MySQL
 
Kann ich, aber erst ab 16:00 Uhr.

milos 2. Feb 2009 13:42

Re: IF NOT EXIST abfrage mit MySQL
 
Ok ich werde da sein :D xD

jfheins 2. Feb 2009 14:11

Re: IF NOT EXIST abfrage mit MySQL
 
Code:
$result = mysql_query("SELECT COUNT(*) AS Anzahl FROM Tabelle WHERE username = $botname");
$usercount = mysql_result($result, 0, 0);

echo $usercount;

if ($usercount == 0)

mysql_query("INSERT INTO Tabelle(Feldliste) VALUES(Wertliste)");
}
:?:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz