[MySQL] Nur eintragen wenn Anzahl < x

Cantara

Grünschnabel
Also, mein Problem ist folgendes:

Ich habe vor, dass der Eintrag nur stattfindet, wenn die Anzahl der bereits eingetragenen kleiner x ist. Dies habe ich mit folgendem Code versucht
PHP:
$sql = "SELECT * FROM login WHERE job='Ausbilder'";
$result = mysql_query($sql);
$anzahl = mysql_num_rows($result);
if ($anzahl > 1) {
echo "Kein Platz mehr!";
}
else
$aendern = "UPDATE login Set job = 'Ausbilder' WHERE userid = '$user'";
$update = mysql_query($aendern);
	if($update==true) {
	echo "<b>Eintrag erfolgreich</b><br>
	Nun bist du Ausbilder! Viel Spaß.<br><br> <a href=jobs.php>zurück</a>";
	}
         else {
         echo "<b>Das hat leider nicht geklappt</b><br><br> <a href=jobs.php>zurück</a>";
         }

Allerdings wird trotzdem jeder munter eingetragen und ich wollte nun wissen, wie man das anders machen kann, ohne das ich dafür eine zweite Tabelle anlegen müsste?

Vielen Dank für jede Hilfe :)

P.S.: Sollte diese Frage schon einmal aufgekommen sein, tut es mir sehr leid, aber ich habe nichts hilfreiches gefunden :eek:
 
Hallo,

das sieht aber mehr nach fehleden Klammern im ELSE aus.

Probier das mal
PHP:
$sql = "SELECT * FROM login WHERE job='Ausbilder'";
$result = mysql_query($sql);
$anzahl = mysql_num_rows($result);
if ($anzahl > 1) {
echo "Kein Platz mehr!";
}
else
{
$aendern = "UPDATE login Set job = 'Ausbilder' WHERE userid = '$user'";
$update = mysql_query($aendern);
    if($update==true) {
    echo "<b>Eintrag erfolgreich</b><br>
    Nun bist du Ausbilder! Viel Spaß.<br><br> <a href=jobs.php>zurück</a>";
    }
         else {
         echo "<b>Das hat leider nicht geklappt</b><br><br> <a href=jobs.php>zurück</a>";
         }  
}
 
Zuletzt bearbeitet:
Erst einmal danke an euch beide :)

Leider scheint weder das eine, doch das andere der Fehler zu sein.
Denn mit mysql_numrows funktioniert es zwar auch, allerdings wird trotzdem jeder eingetragen, also es macht keinen Unterschied ;)

Und auch die Klammern schienen nicht das Problem zu sein :(
 
Wieviel steht denn in Anzahl drin? Hast Du das mal überprüft. Wäre sonst immenroch der Meinung das mit den Klammern wäre der Ansatz. Wieviele Sätze mit job='Ausbilder' gibt es überhaupt?
 
Also zur Zeit gibt es einen, und es würde halt ein Zweiter eingetragen werden, bzw. es wird ein Zweiter eingetragen, aber so soll das ja nicht sein.
 
Hallo,

dann versteh ich es nicht. Kannst ja mal das Result zurückgeben:

Code:
SELECT job, Count(*) Anz FROM login GROUP BY job

Vielleicht werde ich dann schlauer draus
 
Hi,

Ich habe jetzt einfach mal
PHP:
SELECT job, Count(*) Anz FROM login GROUP BY job
eingetragen und dann noch mal die Anfrage abgeschickt und nun klappt es :eek:
Also was immer damit geschehen sollte, auf jeden Fall funktioniert nun was ich haben wollte :rolleyes:
Vielen Dank :p:D
 
Tut mir leid für den Doppelpost!
Aber ich hatte das Formular bisher so:
PHP:
$sql = "SELECT job, Count(*) Anz FROM login GROUP BY job WHERE job='Ausbilder'";
$result = mysql_query($sql);
$anzahl = mysql_num_rows($result);
if ($anzahl > 5) {
echo "Kein Platz mehr!";
}
else
{
$aendern = "UPDATE login Set job = 'Ausbilder' WHERE userid = '$user'";
$update = mysql_query($aendern);
    if($update==true) {
    echo "<b>Eintrag erfolgreich</b><br>
    Nun bist du Ausbilder! Viel Spaß.<br><br> <a href=jobs.php>zurück</a>";
    }
         else {
         echo "<b>Das hat leider nicht geklappt</b><br><br> <a href=jobs.php>zurück</a>";
         }
}
Jetzt allerdings funktioniert es nicht mehr! Es wird trotzdem wieder jeder eingetragen :(
 

Neue Beiträge

Zurück