Seite 1 von 3

Problem bei MYSQL / PHP

BeitragVerfasst: 30. Mai 2010, 09:07
von megacrack
Hallo, ich bräuchte mal eure Hilfe bei MYSQL /PHP.
Und zwar habe ich eine Tabelle fusion_users, in der in der Spalte user_name Benutzer eingetragen sind.
Diese Benutzer möchte ich in die Tabelle Level in die Spalte user_name eintragen.

Jedoch habe ich keine Lösung gefunden, doppelte Einträge zu verhindern UND bereits vorhandene Einträge nicht zu überschreiben.

Ich möchte also die Spalte synchronisieren...


Danke für eure Hilfe.

Re: Problem bei MYSQL / PHP

BeitragVerfasst: 30. Mai 2010, 16:53
von ThaSpeedy
Nochmal auf deutsch, bitte poste doch wie deine tabellen aufgebaut sind TABELLE Beispiel, int(10)Userid , char Username usw... wäre hilfreicher als ein rumgerate....^^ :mrgreen:

Was möchtest du genau:
Beispiel:
Hallo ich möchte von tabelle Test1 alle felder von username in eine andere tabelle mit dem namen TEST2 in das feld usertestfeld eintragen
So sehen die Tabellen aus..
(TABELLEN AUFBAU *VORSTELL* ) :-D
..

Re: Problem bei MYSQL / PHP

BeitragVerfasst: 30. Mai 2010, 19:08
von megacrack
Tabelle 1: Feld1 'user_name' VARCHAR / und andere Felder, die wir aber jetzt nicht brauchen.

Tabelle 2: Feld1 'user_name' VARCHAR und Feld2 'user_level' VARCHAR default = '0'

Datensätze in Tabelle 1 'user_name'
Basti
Gerhard

Diese sollen jetzt in folgende Tabelle 2 kopiert werden
Tabelle 2 Feld 'user_name' Feld 'user_level'
Basti 2
Ernst 0

am Ende soll es so aussehen:
Tabelle 2 Feld 'user_name' Feld 'user_level'
Basti 2
Ernst 0
Gerhard 0

Ohne jetzt den doppelten Eintrag Basti 0 | 2 zu erzeugen.

Hab es schon mit INSERT IGNORE versucht, welches die doppelten Einträge jedoch hervorbringt.

Hoffe jetzt ist es verständlicher.

Re: Problem bei MYSQL / PHP

BeitragVerfasst: 30. Mai 2010, 19:36
von ThaSpeedy
Das willst du ja nicht...
INSERT INTO Tabelle1 (feld1, feld2)
SELECT feld1, feld2
FROM Tabelle2;


Also ümständlich:
Code: Alles auswählen
Select user_name FROM tabelle1;
[...]
While
[...]

IF NOT EXISTS (
SELECT user_name FROM `tabelle2` where user_name=$QUERY
)
THEN INSERT INTO tabelle2 ( user_name, user_level)
VALUES SELECT user_name form Tabelle1
END IF

[...]
While END
[...]

Re: Problem bei MYSQL / PHP

BeitragVerfasst: 30. Mai 2010, 20:00
von megacrack
was ist mit dem [...] gemeint?

Re: Problem bei MYSQL / PHP

BeitragVerfasst: 30. Mai 2010, 20:22
von ThaSpeedy
die php abfragen wie mysql_query und mysql_fetch_array

Re: Problem bei MYSQL / PHP

BeitragVerfasst: 31. Mai 2010, 14:34
von megacrack
habe das ausprobiert:
Code: Alles auswählen
$abfrage="Select user_name FROM fusion_users";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
    {$rowname = $row->user_name;
$abfrage2="IF NOT EXISTS ( SELECT user_name FROM `Level` where user_name='".$rowname."') THEN INSERT INTO Level ( user_name) VALUES SELECT user_name form fusion_users END IF";
mysql_query($abfrage2) or die ("error09");
}


error:
Code: Alles auswählen
MySQL meldet:
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 'IF NOT EXISTS ( SELECT user_name FROM `Level` where user_name='Basti') THEN INSE' at line 1

Fehler bei der Anfrage:
IF NOT EXISTS ( SELECT user_name FROM `Level` where user_name='Basti') THEN INSERT INTO Level ( user_name) VALUES SELECT user_name FROM fusion_users ENDIF

Re: Problem bei MYSQL / PHP

BeitragVerfasst: 31. Mai 2010, 15:54
von liro
Setzt doch Name einfach auf UNIQUE und mach dann den INSERT.

Re: Problem bei MYSQL / PHP

BeitragVerfasst: 31. Mai 2010, 16:12
von megacrack
und das geht wie?

Re: Problem bei MYSQL / PHP

BeitragVerfasst: 31. Mai 2010, 16:22
von liro
megacrack hat geschrieben:und das geht wie?


Hast du PHPMyAdmin? Wenn ja einfach bei Index UNIQUE auf die Spalte abwenden, sonst...

ALTER TABLE `fusion_users` ADD UNIQUE `name` ( `name` )