Seite 1 von 1

wie überprüfe ich, ob ein eintrag schon existiert

Verfasst: 07.12.2006 14:23
von langeweile
ich habe einen admin bereich für mein latein script:

Code: Alles auswählen

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method=post>
Latein:<input type="text" name="latein" size="40" maxlength="80"><br>
Deutsch:<input type="text" name="deutsch" size="40" maxlength="80"><br>
Wortart:
 Verb<input type="radio" name="wortart" value="verb">
 Nomen<input type="radio" name="wortart" value="nomen">
 Adjektiv<input type="radio" name="wortart" value="adjektiv">
 Adverb<input type="radio" name="wortart" value="adverb">
 Präposition<input type="radio" name="wortart" value="praeposition">
 Konjunktion<input type="radio" name="wortart" value="konjunktion">
<br>
Genitiv Sg.:<input type="text" name="genitiv" size="30" maxlength="80">
Genus:
 masculinum<input type="radio" name="genus" value="masculinum">
 femininum<input type="radio" name="genus" value="masculinum">
 neutrum<input type="radio" name="genus" value="masculinum">
<br>
Nomintaiv m.:<input type="text" name="nominativ_m" size="30" maxlength="80">
Nomintaiv f.:<input type="text" name="nominativ_f" size="30" maxlength="80">
Nomintaiv n.:<input type="text" name="nominativ_n" size="30" maxlength="80"><br>
Präsens Aktiv:<input type="text" name="praesens_a" size="30" maxlength="80">
Perfekt Aktiv:<input type="text" name="perfekt_a" size="30" maxlength="80">
PVP:<input type="text" name="pvp" size="30" maxlength="80">
<input type="submit" value="Absenden">
</form>
<?php
include ("dbconnect.php");
$latein = "'".mysql_real_escape_string($_POST['latein']) . "'";
$deutsch = "'".mysql_real_escape_string($_POST['deutsch']) . "'";
$wortart = "'".mysql_real_escape_string($_POST['wortart']) . "'";
$genitiv = "'".mysql_real_escape_string($_POST['genitiv']) . "'";
$genus = "'".mysql_real_escape_string($_POST['genus']) . "'";
$nominativ_m = "'".mysql_real_escape_string($_POST['nominativ_m']) . "'";
$nominativ_f = "'".mysql_real_escape_string($_POST['nominativ_f']) . "'";
$nominativ_n = "'".mysql_real_escape_string($_POST['nominativ_n']) . "'";
$praesens_a = "'".mysql_real_escape_string($_POST['praesens_a']) . "'";
$perfekt_a = "'".mysql_real_escape_string($_POST['perfekt_a']) . "'";
$pvp = "'".mysql_real_escape_string($_POST['pvp']) . "'";
if(isset($latein))
{
echo "";
}
else
{
$db_update = "INSERT INTO Vokabeln (latein, deutsch, wortart, genitiv, genus, nominativ_m, nominativ_f, nominativ_n, praesens_a, perfekt_a, pvp) VALUES ($latein, $deutsch, $wortart, $genitiv, $genus, $nominativ_m, $nominativ_f, $nominativ_n, $praesens_a, $perfekt_a, $pvp)";
		$db_update_now = mysql_query($db_update) OR die("SQL FEHLER:<br>" . mysql_error() . "<br><br>SQL Code:<br>" . $db_update);
		echo $db_update;
}
?>

Das funktioniert auch, allerdings können damit leider wörter doppelt in die db eingetragen werden.
ich hätte jetzt gerne ein abfrage, ob die vokabeln schon existiert und wenn sie existiert soll dann nichts in die db eingetragen werden und eine meldung kommen, dass eben diese vokabel schon existiert


p.s.
ist die vorraussichtlich die letzte frage zu meinem lateinscript, da sonst alles prima läuft und ich nicht mehr hinzufügen will

Verfasst: 07.12.2006 14:44
von Miriam
Die können dann sogar 3fach oder noch öfter in die DB eingetragen werden.... :o :o :o
Mögliche Lösungen:
1. Lade alle Latein-Wörter in ein Array und frage dann das Vorhandensein des neuen Worts per in_array() ab.
2. Führe vorher einen Select durch; wenn eine Zeile gefunden wurde, ist das Wort schon vorhanden.

man könnte dann evtl. die Möglichkeit einer Editierung der Daten einfügen.... Falls Du Dich mal verschrieben und es trotzdem abgeschickt hast.

Zum Thema mysql_real_escape_string() empfehle ich Dir folgenden Link.

Verfasst: 07.12.2006 14:58
von langeweile
ok danke, es hat geklappt