MySQL - Prüfen, ob ein Eintrag schon existiert...
Hallo, Leute.
Bin grad am Verzweifeln, schon wieder...
Ich möchte gerne einrichten, dass überprüft wird, ob eine bestimmte Zeile in meiner MySQL Datenbank schon existiert.
Beispielsweise habe ich das Feld "identification" angelegt; bei der Eintragung mit INSERT TO soll aber darauf geachtet werden, dass wenn eben schon das Selbe bei identification existiert, wie beispielsweise "max123456789", quasi eine Fehlermeldung ausgespuckt wird und der Vorgang nicht fortgesetzt wird...
Ich weiß, bin noch ein Noob, was das angeht, hoffe aber, ihr könnt mir helfen...
Gruß.
4 Antworten
Hier ein Beispiel :
<?php
//Connecten ..
$dbhost = "localhost";
$dbusername = "root";
$dbpassword = "Passwort";
$dbname = "Datenbank";
$connect = mysqlconnect($dbhost, $dbusername, $dbpassword) or die("Could not connect to server, error: ".mysqlerror());
mysqlselectdb($dbname, $connect) or die("Could not connect to database, error: ".mysql_error());
//Abfrage beginn!
$text = 'max180';
$abfrageq = mysql_query("SELECT * FROM users WHERE username = '".$text."'");
$abfrage = mysqlfetcharray($abfrageq);
if(!empty($abfrage)){
echo 'Fehlermeldung..';
}else{
echo 'Weiter..';
}
?>
dann musst du "identification" als INDEX oder UNIQUE setzen.
Leider bin ich noch Anfänger, hab keine Ahnung, wie ich jetzt vorgehen soll... peinlich
Könntest du 'nen kleinen Code dazu posten?
ALTER TABLE `TableTest` ADD UNIQUE (
`identification` )
Ok, dass ist also ein SQL-Befehl, den musst du nur einmal ausführen und TableTest durch den richtigen Namen ersetzen. Dann kannst du keine doppelten Einträge mehr einfügen. Bei einfügen eines doppelten Eintrags bekommst du dann einen Fehler, den du dann mit PHP abfangen kannst.
Liegt sicher nur an mir, aber das funktioniert i-wie nicht...
Also da gab es keine Fehlermeldungen, es hat halt einfach nur nicht geklappt... ;-) Ich kenne mich mit SQL nämlich GAR NICHT aus...
Ich habe das Problem dann aber mit "mysqlnumrows" gelöst.
PHP-CODE:
<?php
$check_information = mysql_query("SELECT * FROM identification WHERE identification = '$identification'");
$check = mysql_num_rows($check_information);
if ($check == 0)
{
echo "Der Eintrag existiert noch nicht.";
}
else
{
echo "Der Eintrag existiert bereits.";
}
?>
baue eine abfrage mit Schleife ein.
Naja wenn du weißt was in der Zeile stehen soll, bei jedem Editor gibt es eine funktion mit der du einen Text suchen kannst. Probiere das aus, gebe das Wort ein welches du Suchst, dann solltest du es wissen..
Danke, habe das Problem aber schon gelöst. ;-) Aber danke trotzdem. :)