KenchuMedlem sedan apr. 2004113 inlägg
Tjo, behöver lite hjälp. Sitter och pillar lite med en adminsida, där man ska kunna ta bort inlägg ur en gästbok jag gjort. Problemet är hur jag ska kunna get varje inlägg ett unikt ID. Just nu ser koden ut såhär:
... Spara data
mysql_query("INSERT INTO tbl_game_guestbook(user, date, time, text) VALUES('{$_REQUEST["user"]}', NOW(), NOW(), '{$_REQUEST["text"]}')");
Jag använder just nu raden "TIME" som ID eller vad du nu än vill kalla det för. Detta är dock inte så smart. Tiden är ju inte direkt unik, om man säger så.. :P
... Se data - admin
$result = mysql_query("SELECT * FROM tbl_game_guestbook ORDER BY date DESC");
while($line = mysql_fetch_array($result)){
echo "<table cellspacing=0><tr>";
echo "<td width=40% border=1 bordercolor=black bgcolor=black>". $line["user"]. "</td>";
echo "<td width=40% border=1 bordercolor=black bgcolor=black align=right>". $line["date"]. "</td>";
echo "<td width=20% border=1 bordercolor=black bgcolor=black align=right>Delete?<input type=checkbox name=deltext value=". $line["time"]. "></tr>";
echo "<tr><td colspan=3>". $line["text"]. "</td></tr></table>";
echo "<div> </div>";
}
I adminversionen har man valet Delete? med $line["time"], som ni ser. Detta $line[date] skickas som deltext till:
mysql_query("DELETE FROM tbl_game_guestbook WHERE time='{$_REQUEST["deltext"]}'");
mysql_close($connect);
echo "<table class=message><tr><td>Successfully deleted text.</td></tr></table>";
echo "<div> </div>";
Men som sagt, att använda TIME som ID är riktigt risigt. Undrar om det finns någon funktion som NOW(), fast för ID istället, så att varje inlägg får ett trevligt ID med sig varje gång det sparas. Eller kanske någon annan lösningen? Vad vet jag, hjälp bevhöver jag iaf.
Tack
PeddaMedlem sedan juni 20004 880 inlägg
Har du inget fält som har autoincrement i databasen??
Då får ju varje post ett unikt nummer.
KenchuMedlem sedan apr. 2004113 inlägg
Nice, nu tycks vi vara på G här. :)
Jag är inte så high på PHP och databaser, ny vettu, men iaf.
Just nu har jag ingen auto increment. Jag kan fixa det. Men hur lägger man in ett unikt värde? Och vad ska jag skriva i tabellen? Bara göra en rad som heter ID och har auto increment? inget mer?
Cri11eMedlem sedan aug. 200235 inlägg
Auto increment räknar upp ID varje gång ett nytt inlägg skrivs. På så sätt får du ett unikt id för varje rad. Sedan kan du göra:
mysql_query("DELETE FROM tbl_game_guestbook WHERE id={$_REQUEST['id']}'");
KenchuMedlem sedan apr. 2004113 inlägg
okay, hur gör ag för att lägga in värdet i databasen då? :P Dvs, vad ska jag skriva i INSER INTO?
PeddaMedlem sedan juni 20004 880 inlägg
Du gör din insert likadant som innan.
Fältet id får ett värde automatiskt ändå.
K@llenMedlem sedan mars 20032 654 inlägg
Kenchu skrev:
okay, hur gör ag för att lägga in värdet i databasen då? :P Dvs, vad ska jag skriva i INSER INTO?
Inget, räknarkolumnen får sitt värden automatiskt utan att du anger något i din insert.
KenchuMedlem sedan apr. 2004113 inlägg
jag har svårt att tro att man ska göra NOW() i fältet id, men okay. :S
KenchuMedlem sedan apr. 2004113 inlägg
Nä, som väntat går det inte. :P kolumnen ID får värdet 2004. Inte så bra kanske.
Finns det ingen funktion ungefär som NOW(), fast för id? Något som genererar ett speciellt id, kanske? Kan man använda mysql_insert_id på något vis?
KenchuMedlem sedan apr. 2004113 inlägg
k@llaen,
ehmzor, okay. :P Får pilla lite.
KenchuMedlem sedan apr. 2004113 inlägg
EDIT
Sorry, my bad. Man måste givetvis skriva , '', i INSERT. :p
K@llenMedlem sedan mars 20032 654 inlägg
Kenchu skrev:
EDIT
Sorry, my bad. Man måste givetvis skriva , '', i INSERT. :p
Har du ID som autoincrement då kan du ge fasiken i ID i din insert. Du behöver helt enkelt inte ha med den kolumnen. ID får sitt värde ändå.
KenchuMedlem sedan apr. 2004113 inlägg
KenchuMedlem sedan apr. 2004113 inlägg
Okay, jag antar att man kan strunta i att säga INSER INTO tbl_game_guestbook(ID..... och VALUES('', ....., men det blir tydligare på det viset, och fungerar, så...
Men visst, man kan väl säkret skita i att ha med ID och något värde överhuvudtaget. :)