MySQL - Prüfen, ob ein Eintrag schon existiert...

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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..';

}

?>


thequestioner 
Beitragsersteller
 23.10.2011, 21:14

Danke, habe das Problem aber schon gelöst. ;-) Aber danke trotzdem. :)

0

dann musst du "identification" als INDEX oder UNIQUE setzen.


thequestioner 
Beitragsersteller
 23.10.2011, 15:22

Okay, ich probier's mal.

0
thequestioner 
Beitragsersteller
 23.10.2011, 15:24
@thequestioner

Leider bin ich noch Anfänger, hab keine Ahnung, wie ich jetzt vorgehen soll... peinlich

Könntest du 'nen kleinen Code dazu posten?

0
Gruffalo  23.10.2011, 15:30
@thequestioner
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.

0
thequestioner 
Beitragsersteller
 23.10.2011, 15:34
@Gruffalo

Liegt sicher nur an mir, aber das funktioniert i-wie nicht...

0
thequestioner 
Beitragsersteller
 23.10.2011, 21:13
@Gruffalo

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.";
}

?>  
0
Gruffalo  23.10.2011, 15:22

Solch eine Bedingung heisst: constraint

0

baue eine abfrage mit Schleife ein.


thequestioner 
Beitragsersteller
 23.10.2011, 15:21

Könntest du dazu einen Code posten?

0

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..


Gruffalo  23.10.2011, 15:20

Du hast keine Ahnung worum es geht!

0
thequestioner 
Beitragsersteller
 23.10.2011, 15:21
@Gruffalo

Haha, stimmt! :D

Hab mir vor Lachen fast in die Hose gemacht.. :P :D

0