MySQL / PHP Abfrage nach bereits vorh. Werten

citr1

Grünschnabel
Hallo,

ich bin gerade dabei eine Tag- Cloud inklusive Eingabeformular für neue Tags zu programmieren. Dafür benötige ich eine if- Abfrage die überprüfen soll, ob das Tag bereits vorhanden ist. Ist dies der Fall, soll in der Datenbank der Wert 'count' um 1 erhöht werden. Ansonsten wird das Tag einfach neu hinzugefügt.

Jetzt habe ich ein Problem bei der Überprüfung, ob das eingegebene Tag bereits in der Tabelle existiert. Ich habe versucht mit der for- Schleife die ID durchzuzählen und dann jeden Wert einzeln abzugleichen. Leider funktioniert das nicht. Sieht einer nen Fehler oder - besser - gibt es eine elegantere Lösung mit der ich abchecken kann ob ein bestimmter Wert bereits vorhanden ist?

<?


$tag = $_POST["tag"];

$abfrage = "SELECT tag FROM Unnamet";
$abfragen = mysql_num_rows($abfrage); // Anzahl der Einträge soll abgefragt werden.
$zahl = 0;

for ($i = 0; $i < $abfragen; $i++) // Zählschleife zählt sich durch die Einträge
{
$check = "SELECT tag FROM Unnamet Where id='$i'";
$checken = mysql_query($check);
if($tag == $check) // Eingegebenes Tag wird mit Eintrag überprüft
{
$zahl = 1; // Bei Erfolg wird der Wert der Variablen $zahl von 0 auf 1 gesetzt
}
}

if($zahl == 1)
{
$aendern = "UPDATE Unnamet SET count=count+1 Where tag='$tag'"; // Erhöhen von 'count'
$update = mysql_query($aendern);
}
else
{
$eintrag = "INSERT INTO Unnamet (tag) VALUES ('$tag')"; // Neuer Eintrag
$eintragen = mysql_query($eintrag);
}

?>

mfG

citr1
 
Ich versteh nicht so recht was die for-Schleife bei dir soll?

Ich dachte du willst wissen ob ein bestimmter Tag schon enthalten ist.

Dann mach doch ein
SELECT count(tag) FROM Unnamet WHERE tag LIKE $tag

Wenn du 0 zurückbekommst ist es noch nicht enthalten.

Abgesehen davon dass das:
if($tag == $check)
eh nicht richtig aussieht. Damit vergleichst du im Moment den tag mit deiner SQL Abfrage und das liefert immer false.
 
Zurück