| Überprüfen: Eintrag schon in DB vorhanden |
Tobi W.
Mausakrobat
Beiträge: 181
|
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.
---
Beamer Ersatzlampen | tobi.weinhorst | Hotel Werther
|
|  Profil
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 848
|
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
Beiträge: 181
|
|
|  Profil
Website
Editieren
Zitieren
|
KeyLF
Forenheld
Beiträge: 872
|
Oder die ID des Eintrages auslesen... wenn diese <1 dann ist der Eintrag nicht vorhanden.
|
|  Profil
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 848
|
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
Beiträge: 181
|
1 : 0 für subjective! Würd ich mal sagen....
---
Beamer Ersatzlampen | tobi.weinhorst | Hotel Werther
|
|  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
Beiträge: 181
|
Meine Frage war aber wie ich rausbekomme ob ein Eintrag schon vorhanden ist. Das bekomme ich aber mit deiner Variante aber nicht raus @inko. ;)
---
Beamer Ersatzlampen | tobi.weinhorst | Hotel Werther
|
|  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.
---
Take a look here!
Lichtblick - Einblick - Ausblick
|
|  Profil
E-Mail
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 848
|
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
Beiträge: 181
|
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
---
Beamer Ersatzlampen | tobi.weinhorst | Hotel Werther
|
|  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: | <?php
mysql_connect($db_server,$db_user,$db_pass) or die ("Konnte keine Verbindung zur Datenbank aufbauen");
mysql_select_db($db_name) or die("Konnte Datenbank nicht bestimmen");
$check = 0;
$erstellt = mysql_query("select * from datenbank where Nick='Test'");
while ($checker = mysql_fetch_array($erstellt)) {
$check = 1;
}
if ($check == 1){
echo "Eintrag schon vorhanden";
}
?> |
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
|