Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Überprüfen: Eintrag schon in DB vorhanden Antworten
Ü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


danke, nicht schlecht!

---
Beamer Ersatzlampen | tobi.weinhorst | Hotel Werther

  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
 

Antworten
Nach oben