BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- PHP mySQL Logikproblem (http://www.black-board.net/thread.php?threadid=21657)


Geschrieben von Champus am 22.12.2005 um 18:09:

  mySQL Logikproblem

Moin,
ich habe momentan ein gaaaanz kleines Nebenprojekt, ein max. 50 Zeiler, habe aber selbst mit so einem kleinen Script Problem bei der Logik.
Und zwar habe ich zwei Felder in der mySQL Tabelle, einmal "Name" und einmal "Nr".

Nun wird über ein Formular von dem User ein Name verlangt, der wird dann bei "Name" der Name gespeichert, bei "Nr" eine 1.

Nun überlege ich die ganze Zeit, wie ich es hinkriege, dass wenn bei "Name" ein Name eingegeben wurde, der schon in der Tabelle steht, bei "Nr" +1 gemacht wird, falls also schon "Harald" "1" drinsteht, bei nochmaliger Eingabe "Harald" "2" drinstehen soll, also bei dem Alten Feld Harald die Nr um eins erhöht wird, was mir dann zeigt, dass der Name 2 mal angezeigt wurde.

Falls jemand einen Tipp hat (ist doch nur über komplizierte If-Abfragen Möglich und mehreren mySQL Zugriffen, oder?) dann bitte sagen.

Gruß
CorvusCorone



Geschrieben von phlox81 am 22.12.2005 um 18:20:

 

Hm, ne lass das mal. Das bringt dir doch garnix.
Und vorallem ist es nicht sehr effektiv...

Mach lieber noch nen Key in die Tabelle der autoincrement ist,
und sich so für jeden neuen Namen ne konstante einmalige
Id generiert.
Um dann herauszufinden wieviele "Hans Meier" in deiner liste sind
machst du einfach ein "SELECT count(*) FROM namen WHERE namen.name = 'Hans Meier'"



Geschrieben von Champus am 22.12.2005 um 18:32:

 

Also,
Danke für den Tip, aber wie wir ja eben im IRC besprochen haben, hätte ich es doch gerne etwas anders.

Zitat:

Sagen wir mal, es stehen nach deiner Art (also mit "Nr" als Key und Autoincrement) 3 mal Hans Maier und 2 mal Sabine Müller drin. Wie kann ich nun ausgeben: "Hans Maier 3", "Sabine Müller 2"?


Edit:
Habe es nun hinbekommen.
Der Quelltext, für die, die es interessiert:

code:
1:
2:
3:
4:
5:
6:
7:
   $var_eintrag = "UPDATE namen SET Nr = Nr + 1 WHERE name = '$send_name'";
   $mysql_eintragen = mysql_query($var_eintrag);
   
if (mysql_affected_rows() == 0) {
$sql_insert = "INSERT INTO namen (name, Nr) VALUES ('$send_name', '1')";
$mysql_eintragen = mysql_query($sql_insert);
}


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH