webForumDet fria alternativet
Logga in / Bli medlem

ID?

PHP

13 svar · 414 visningar · startad av Kenchu

Medlem sedan apr. 2004113 inlägg
Trådstart#1

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>&nbsp;</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>&nbsp;</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

Medlem sedan juni 20006 031 inlägg
#2

Har du inget fält som har autoincrement i databasen??
Då får ju varje post ett unikt nummer.

Medlem sedan apr. 2004113 inlägg
#3

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?

Medlem sedan aug. 200235 inlägg
#4

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']}'");
Medlem sedan apr. 2004113 inlägg
#5

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?

Medlem sedan juni 20006 031 inlägg
#6

Du gör din insert likadant som innan.
Fältet id får ett värde automatiskt ändå.

Medlem sedan mars 20032 667 inlägg
#7

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.

Medlem sedan apr. 2004113 inlägg
#8

jag har svårt att tro att man ska göra NOW() i fältet id, men okay. :S

Medlem sedan apr. 2004113 inlägg
#9

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?

Medlem sedan apr. 2004113 inlägg
#10

k@llaen,
ehmzor, okay. :P Får pilla lite.

Medlem sedan apr. 2004113 inlägg
#11

EDIT

Sorry, my bad. Man måste givetvis skriva , '', i INSERT. :p

Medlem sedan mars 20032 667 inlägg
#12

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å.

Medlem sedan apr. 2004113 inlägg
#13

.

Medlem sedan apr. 2004113 inlägg
#14

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. :)

269 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)