javarea.de Forum » PHP, MySQL & CGI
Tabelle auslesen und Unique verwenden
Antworten Neues Thema eröffnen

Wenn dies Ihr erster Besuch hier ist, lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Sie müssen sich vermutlich nicht registrieren, um Beiträge verfassen zu können. Als angemeldetes Mitglied haben Sie jedoch die Möglichkeit anderen Benutzern eine Private Nachricht zu hinterlassen, oder aber die vielen Funktionen des Forums zu nutzen, die nur registrierten Benutzern vorbehalten ist. Klicken Sie oben auf Registration, um den Registrierungsprozess zu starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie einfach das Forum aus, das Sie am meisten interessiert.

Seiten (1/1): [1]
Autor Thema
rich
Mitglied



Registriert seit: 27.12.2009
Beiträge: 30

Rang:


14.03.2010 - 11:11 Tabelle auslesen und Unique verwenden
Tabelle auslesen und Unique verwenden

hallo,
ich habe eine Tabelle namens games_merkliste mit folgenden Feldern...

merkliste_id
merkliste_spielid
merkliste_username
merkliste_spielname
merkliste_gamelogo
merkliste_angenommen
merkliste_abgelehnt
merkliste_offen
merkliste_zeit

d.h. jeder user kann sich ein o. mehrere Spiele merken lassen was dann auch
seperat angezeigt werden... soweit alles schön und gut.
allerdings kann ein und der selbe User sich das Spiel auch 10x in die Merkliste eintragen lassen.

ich hab im Netz schon geschaut und das kann man mit Unique im Mysql unterbinden.
dies hab ich auch gemacht mit merkliste_spielid und merkliste_username leider kann man nur
eines davon auswählen.
soweit hat das auch funktioniert, ich konnte das Game nur noch einmal in die DB eintragen...
hatte mich schon gefreut , dass es funktioniert hat....aaaaber nun konnten die anderen user das Games nicht mehr einfügen ^^

ihr versteht das Problem !?

wie kann ich Mysql sagen, dass es merkliste_spielid & merkliste_username prüfen soll?
zb. Spielid=12 , Userid=3 hat das Spiel schon eingetragen kann also das gleiche nicht noch mal einfügen.
 zitieren 
#top
Micha
Foren As



Registriert seit: 12.05.2005
Beiträge: 1369

Rang:


14.03.2010 - 13:35 AW: Tabelle auslesen und Unique verwenden

Hi,

Du könntest vor dem Hinzufügen einfach eine Abfrage machen:

HTML-Quelltext
1: 
SELECT * WHERE Spielid=12 AND Userid=3


Wenn Du etwas anderes als NULL zurück bekommst, ist das Spiel bereits eingetragen ansonsten noch nicht und kann ergänzt werden.

Gruß Micha
 zitieren 
#top
rich
Mitglied



Registriert seit: 27.12.2009
Beiträge: 30

Rang:


16.03.2010 - 10:10 AW: Tabelle auslesen und Unique verwenden

hey Micha...
ich hab das mal so versucht aber das hat nicht funktioniert

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 

<?
$sql
="INSERT INTO ".$prefix."merkliste(merkliste_spielid, merkliste_username, merkliste_spielname, merkliste_gamelogo, merkliste_offen, merkliste_zeit)VALUES('$merkliste_spielid', '$merkliste_username', '$merkliste_spielname', '$merkliste_gamelogo', '$merkliste_offen', '".time()."')";
$result=mysql_query($sql);

if(
mysql_errno()==1062) echo "Datensatz bereits vorhanden";
elseif(!
mysql_errno()) echo "Fehler in MySQL : ".mysql_error();
?>



lg
 zitieren 
#top
Micha
Foren As



Registriert seit: 12.05.2005
Beiträge: 1369

Rang:


17.03.2010 - 12:13 AW: Tabelle auslesen und Unique verwenden

Hallo,

man lässt ein Kind nicht auf die heiße Herdplatte fassen, nur damit es weiß, das es sich verbrennt. Übertragen auf Dein Problem: Man lässt eine Abfrage nicht einfach in einen Fehler laufen und versucht dann zu reagieren. Frage also lieber vorher einmal ab, ob es schon was gibt und führe dann ggf. Dein INSERT durch.

Gruß Micha
 zitieren 
#top
Danny
Global-Mod



Registriert seit: 17.04.2002
Beiträge: 1597

Rang:


17.03.2010 - 12:32 AW: Tabelle auslesen und Unique verwenden

Hallo ihr beiden ;)

Ich würde wie Michael vorgeschlagen hat erst überprüfen ob es einen solchen Eintrag schon gibt, wenn nicht soll er es eintragen. Die Programmlogik sollte dein Script beherbergen (Das muss man natürlich nicht machen, gewisse Logik kann man auch in der Datenbank unterbringen aber das geht hier zuweit ;) ).

Nichts desto trotz würde ich zusätzlich der Tabelle einen UNIQUE Schlüssel hinzufügen, schließlich darf es solche Konstelationen in deiner Seite nicht geben (egal wie auch immer sie da rein kommen könnten)

Dein Fehler ist, du hast wahrscheinlich 2 Unique Keys erstellt. Die gelten unabhängig voneinander, also es dürfen nicht 2 Einträge die selbe merkliste_spielid UND es dürfen nicht 2 Einträge den selbe merkliste_username haben.

Du musst einen UNIQUE Schlüssel erstellen über beide Felder. In phpMyAdmin siehst du in der Tabellenstruktur Seite unten Indizes. Dort kannst du "Index über 2 Spalten anlegen" und als Indextyp UNIQUE und beide Spalten auswählen.

oder mit SQL

HTML-Quelltext
1: 
ALTER TABLE `games_merkliste` ADD UNIQUE `u_spielid_username` ( `merkliste_spielid` , `merkliste_username` )


Damit hast du folgende Regel: Es dürfen nicht 2 Einträge die selbe merkliste_spielid und merkliste_username Konstellation haben.

Gruß Danny
 zitieren 
#top
rich
Mitglied



Registriert seit: 27.12.2009
Beiträge: 30

Rang:


22.03.2010 - 17:21 AW: Tabelle auslesen und Unique verwenden

okay danke ich werd das mal in angriff nehmen =)
 zitieren 
#top
Zeige Beiträge 1 bis 6 von 6
Seiten (1/1): [1]
Antworten Neues Thema eröffnen
Ähnliche Themen
PHP, MySQL & CGI --> quelltext auslesen und anzeigen
 
von Florian (05.08.2001 - 17:59) --> 64.7%
(X)HTML & CSS (allgemein) --> Tabellenränder
 
von René (20.08.2001 - 18:51) --> 47.1%
PHP, MySQL & CGI --> Formulardaten nachträglich auslesen
 
von Michael (26.08.2001 - 11:02) --> 33.3%
(X)HTML & CSS (allgemein) --> Dummer Netscape :( - Tabellenspalte soll 1px breit (Linie)
 
von Olli (09.09.2001 - 11:26) --> 31.6%
(X)HTML & CSS (allgemein) --> Problem mit Tabelle
 
von alexdüsentrieb (27.08.2001 - 17:21) --> 25.0%
Optionen
Themen & Beitragstools
[ Druckbare Version zeigen ]
[ Dieses Thema abonnieren ]
Themenbewertung:

Gehe zu:
Alle Zeitangaben in WEZ. Es ist 22:41 Uhr. Forumregeln:
Es ist Ihnen erlaubt, neue Beiträge zu schreiben.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen erlaubt, Anhänge anzufügen.
Es ist Ihnen erlaubt, Ihre Beiträge zu bearbeiten.

RSS Feed

Powered by: JBB v.2.0.4
Copyright © javarea.de.