Überprüfen: Eintrag schon in DB vorhanden |
Tobi W.
Mausakrobat Threadstarter
Beiträge: 182 |
Hallo,
ich würde gerne überprüfen, ob ein Eintrag schon in der Datenbank vorhanden ist. Beip. Kundennummer, Loginname oder ähnliches.
Wie heißt der sql-string, dass müßte doch irgenwie so gehen, dann ich eine WHERE mit der Bedingung mache und dann gucke ob NULL rauskommt oder nicht?
Wie überprüfe ich auf NULL?
Danke
Tobi W.
---
tobi.weinhorst
|
 Profil
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Einfach zählen
1: | SELECT COUNT(*) FROM tabelle WHERE idfield=123 |
Dann mit mysql_result() direkt abfragen.
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
Tobi W.
Mausakrobat Threadstarter
Beiträge: 182 |
danke, nicht schlecht!
---
tobi.weinhorst
|
 Profil
Website
Editieren
Zitieren
|
KeyLF
Forenheld
Beiträge: 866 |
Oder die ID des Eintrages auslesen... wenn diese <1 dann ist der Eintrag nicht vorhanden.
|
 Profil
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Dies hätte den Nachteil das der es auch keinen Datensatz geben lönnte (im Result). Beim Zählen gibt es immer genau einen Datensatz mit einem einzelnen Feld. Dadurch kann man ohne weitere Prüfungen mit mysql_result() abfragen - war die Query erfolgreich ist auch der Wert vorhanden.
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
Tobi W.
Mausakrobat Threadstarter
Beiträge: 182 |
1 : 0 für subjective! Würd ich mal sagen....
---
tobi.weinhorst
|
 Profil
Website
Editieren
Zitieren
|
inko
Fachidiot
Beiträge: 133 |
Wenn doppelte Einträge nicht vorkommen dürfen, dann setzt man auf die entsprechenden Tabellenfelder ein UNIQUE oder PRIMARY, dann hat sich das gleich erledigt.
Diese Nachricht wurde geändert von: inko |
 Profil
Editieren
Zitieren
|
Tobi W.
Mausakrobat Threadstarter
Beiträge: 182 |
Meine Frage war aber wie ich rausbekomme ob ein Eintrag schon vorhanden ist. Das bekomme ich aber mit deiner Variante aber nicht raus @inko. ;)
---
tobi.weinhorst
|
 Profil
Website
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
naja doch, kannst abfragen, ob's ne fehlermeldung gab und hoffen dass die nicht woanders herkam.
|
 Profil
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Natürlich sollte man auch in der Datenbank entsprechende Indizes setzen. Trotzdem würde ich in der Anwendung immer nachschauen. Wenn ein INSERT nämlich fehlschlägt, ist dies ein SQL-Fehler, auch in dem Fall eines doppelten Wertes in einem UNIQUE-Feld.
Damit müßte also auch die Fehlerbehandlung ausgeführt werden. Bei mir würde dies ein Protokollieren des SQL-Fehlers bedeuten - in Produktionsumgebungen gebe ich keine SQL-Fehler aus. Jedoch würde dieses Protokoll mit zugemüllt werden, wenn ich SQL-Fehler einfach so in Kauf nehmen würde. Wenn ich die Fehlerbehandlung bei der Aktion jedoch deaktiviere, bekomme ich eventuelle wirkliche Fehler nicht mit.
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
Tobi W.
Mausakrobat Threadstarter
Beiträge: 182 |
subjective schrieb am 07.10.2004 15:10
Einfach zählen
1: | SELECT COUNT(*) FROM tabelle WHERE idfield=123 |
Dann mit mysql_result() direkt abfragen. |
Kann mir das nochmal jmd erklären?
Das andere klappt bei mir soweit.
Jetzt möchte ich ganz einfach wissen wie viele Datensätze es gibt - ich denke das müßte ja mit COUNT klappen.
Leider weiß ich nicht genau wie ich das anwenden muss.
Sorry, noob!
Danke
Tobi
---
tobi.weinhorst
|
 Profil
Website
Editieren
Zitieren
|
Hallomann
Otto-Normal-Poster
Beiträge: 45 |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14: | |
Hoffe das hilft
Das ist der Script,den ich in einem meine Browser Games verwende^^
Allerdings kann man den noch kürzer aufbauen,habe den nur schnell rausgesucht^^
ciao
Diese Nachricht wurde geändert von: Hallomann |
 Profil
E-Mail
Editieren
Zitieren
|