INSERT INTO und COUNT() ?

Funjoy

Erfahrenes Mitglied
Hallo,

Ich habe mal eine kleine Frage ich habe gerade ein Script soweit fertig geschrieben das es die Daten welche durch ein Formular festgelegt werden in eine MySQL datenbank gespeichert werden soll.

Meine Tabelle heißt ttleague_teams und hat folgende spalten:
teamid,postid,sort,teamtype,player1,player2,player3,player4,player5,player6,league

Nun soll bei der Spalte sort die ganzen Datensätze von der Tabelle ttleague_teams gezählt werden und plus eins addiert werden. dazu habe ich den Insert befehl wie folgt geschrieben:
Code:
INSERT INTO ".$mysql_prefix."teams
(postid,sort,teamtype,player1,player2,player3,player4,player5,player6,league)
VALUES
('".$_POST['postid']."','COUNT(*)+1','".$_POST['teamtype']."','".$_POST['player1']."','".$_POST['player2']."','".$_POST['player3']."','".$_POST['player4']."','".$_POST['player5']."','".$_POST['player6']."','".$league."')

Jedoch funktioniert das mit 'COUNT(*)+1' nicht es wird immer der Wert Null gespeichert gibt es denn da eine Möglichkeit die Datensätze zu zählen ohne das ich die funktion mysql_num_rows() benutzen muss?

MfG Funjoy
 
Warum führst Du nicht einfach vorher ein select count(*) für die Tabelle ttleague_teams aus, addierst zu dem Ergebnis 1 dazu und übergibst den Wert, den Du dann hast an das INSERT Statement?

redlama
 
Äm wie meinst du das jetzt ?
Kannst du das mal bitte an ein Beispiel zeigen ?

einfach vor INSERT INTO select count(*) +1 schreiben?

MfG Funjoy
 
moin,

ich bin nicht so sicher wa du bezwecken willst...

letztlich sollen die Einträge dann nur wieder in der Reihenfolge ausgegeben werden koennen, wie sie eingegeben wurden?

versuchs mal stattdessen mit auto_increment

du kannst nicht COUNT() in einem INSERT verweden - das geht nicht... (außer du machst nen Subquery)
 
Genau, entweder Du verwendest ein Subquery oder Du führst ein
Code:
select count(*) from ttleague_teams
aus, übergibst den erhaltenen Wert an eine Variable (z. B. $wert), erhöhst den Wert der Variable um 1 und machst dann Dein Insert (nur dass Du da das count(*) jetzt durch die Variable ersetzt):
Code:
INSERT INTO ".$mysql_prefix."teams
(postid,sort,teamtype,player1,player2,player3,player4,player5,player6,league)
VALUES
('".$_POST['postid']."','".$wert."','".$_POST['teamtype']."','".$_POST['player1']."','".$_POST['player2']."','".$_POST['player3']."','".$_POST['player4']."','".$_POST['player5']."','".$_POST['player6']."','".$league."')

redlama
 
Hallo,

Danke für eure Hilfe habe es nun total anders gemacht und es funktioniert ob es nun die beste Methode ist weiß ich nicht ;-]

PHP:
$DB->dbQuery("INSERT INTO ".$mysql_prefix."teams
(postid,sort,teamtype,leaguetype,player1,player2,player3,player4,player5,player6,league)
VALUES
('".$_POST['postid']."','".($DB->dbNumRows("SELECT sort,teamtype FROM ".$mysql_prefix."teams WHERE teamtype='".$_POST['teamtype']."'")+1)."','".$_POST['teamtype']."','$leaguetype','".$_POST['player1']."','".$_POST['player2']."','".$_POST['player3']."','".$_POST['player4']."','".$_POST['player5']."','".$_POST['player6']."','".$league."')");

MfG Funjoy
 
Zurück