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

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
langeweile
Gesperrt
Beiträge: 234
Registriert: 03.12.2006 14:48
Kontaktdaten:

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

Beitrag 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
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag 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.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
langeweile
Gesperrt
Beiträge: 234
Registriert: 03.12.2006 14:48
Kontaktdaten:

Beitrag von langeweile »

ok danke, es hat geklappt
Antworten

Zurück zu „Coding & Technik“