Problem bei MYSQL / PHP

Problem bei MYSQL / PHP

Beitragvon megacrack » 30. Mai 2010, 09:07

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.
megacrack
Cheater
 
Beiträge: 63
Registriert: 28. Jun 2008, 20:29
Hat Gedankt: 0 time
 Danksagungen: 0 time

Re: Problem bei MYSQL / PHP

Beitragvon ThaSpeedy » 30. Mai 2010, 16:53

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
..
I never comment my sourcecode. What's HARD to write must be HARD to read!
Bild
ThaSpeedy
Hobby-Bastler
 
Beiträge: 397
Registriert: 1. Aug 2008, 17:19
Hat Gedankt: 0 time
 Danksagungen: 7 times

Re: Problem bei MYSQL / PHP

Beitragvon megacrack » 30. Mai 2010, 19:08

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.
megacrack
Cheater
 
Beiträge: 63
Registriert: 28. Jun 2008, 20:29
Hat Gedankt: 0 time
 Danksagungen: 0 time

Re: Problem bei MYSQL / PHP

Beitragvon ThaSpeedy » 30. Mai 2010, 19:36

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
[...]
I never comment my sourcecode. What's HARD to write must be HARD to read!
Bild
ThaSpeedy
Hobby-Bastler
 
Beiträge: 397
Registriert: 1. Aug 2008, 17:19
Hat Gedankt: 0 time
 Danksagungen: 7 times

Re: Problem bei MYSQL / PHP

Beitragvon megacrack » 30. Mai 2010, 20:00

was ist mit dem [...] gemeint?
megacrack
Cheater
 
Beiträge: 63
Registriert: 28. Jun 2008, 20:29
Hat Gedankt: 0 time
 Danksagungen: 0 time

Re: Problem bei MYSQL / PHP

Beitragvon ThaSpeedy » 30. Mai 2010, 20:22

die php abfragen wie mysql_query und mysql_fetch_array
I never comment my sourcecode. What's HARD to write must be HARD to read!
Bild
ThaSpeedy
Hobby-Bastler
 
Beiträge: 397
Registriert: 1. Aug 2008, 17:19
Hat Gedankt: 0 time
 Danksagungen: 7 times

Re: Problem bei MYSQL / PHP

Beitragvon megacrack » 31. Mai 2010, 14:34

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
megacrack
Cheater
 
Beiträge: 63
Registriert: 28. Jun 2008, 20:29
Hat Gedankt: 0 time
 Danksagungen: 0 time

Re: Problem bei MYSQL / PHP

Beitragvon liro » 31. Mai 2010, 15:54

Setzt doch Name einfach auf UNIQUE und mach dann den INSERT.
Bild
liro
Zocker
 
Beiträge: 243
Registriert: 25. Jul 2008, 16:53
Hat Gedankt: 0 time
 Danksagungen: 0 time

Re: Problem bei MYSQL / PHP

Beitragvon megacrack » 31. Mai 2010, 16:12

und das geht wie?
megacrack
Cheater
 
Beiträge: 63
Registriert: 28. Jun 2008, 20:29
Hat Gedankt: 0 time
 Danksagungen: 0 time

Re: Problem bei MYSQL / PHP

Beitragvon liro » 31. Mai 2010, 16:22

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` )
Bild
liro
Zocker
 
Beiträge: 243
Registriert: 25. Jul 2008, 16:53
Hat Gedankt: 0 time
 Danksagungen: 0 time

Nächste

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron