Lista przebojów w php i mysql |
Lista przebojów w php i mysql |
12.04.2002, 19:47:51
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.04.2002 Skąd: Kraków Ostrzeżenie: (0%) |
Witam,
Pisz´ list´ przebojów na moj? stron´. Moja tabela w bazie danych wygl?da nast´puj?co: ----------------------------- id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, _39 TEXT, Action_This_Day TEXT, A_Kind_Of_Magic TEXT, All_Dead_All_Dead TEXT, All_Gods_People TEXT, Another_One_Bites_The_Dust TEXT, ... [ razem jest 168 utworow] ... You_Dont_Fool_Me TEXT, Youre_My_Best_Friend TEXT, You_Take_My_Breath_Away TEXT ----------------------------- I teraz mam problem. Chcia?bym, aby w rz?dku 1 (id=1) znajdowa?a sie liczba g?osów oddanych na utwór. Nast´pnie u˝y?bym instrukcji: SELECT * FROM lpt WHERE id=1 ORDER BY....by co? Co napisaç w klauzuli ORDER BY? Prosz´ wszystkich o pomoc, to dla mnie b. wa˝ne pozdrawiam, mtq |
|
|
13.04.2002, 16:00:30
Post
#2
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 31.03.2002 Skąd: Toruń Ostrzeżenie: (0%) |
Fan Queen, huh?
To zapytanie zwróci tylko pierwszy rekord. Twoja tabela jest bez sensu. Proponowałbym zrobić taką tabelę: Kod CREATE TABLE piesni (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, tytul VARCHAR(255), glosy INT UNSIGNED DEFAULT 0) VARCHAR będzie lepszy niż TEXT, bo z tego, co wiem, to akurat żadna piosenka Queen nie ma tytułu dłuższego niż 255 znaków. Poniższe zapytanie Kod SELECT * FROM piesni ORDER BY glosy DESC, tytul ASC
zwraca rekordy z utworami posortowane malejąco według ilości głosów (a więc od tego z największą ilością głosów), a utwory z tą samą liczbą głosów posortowane będą rosnąco względem tytułu. -------------------- misiu | chór
"Zdeterminowany programista potrafi stworzyć fatalny kod w każdym języku" Allen Holub |
|
|
13.04.2002, 18:45:09
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.04.2002 Skąd: Kraków Ostrzeżenie: (0%) |
[quote]Fan Queen, huh?
[/quote] Yeah! [quote] Twoja tabela jest bez sensu. Proponowa3bym zrobić taką tabelę: Kod CREATE TABLE piesni (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, tytul VARCHAR(255), glosy INT UNSIGNED DEFAULT 0) [/quote] OK - powiedz tylko, co znaczy UNSIGNED, DEFAULT 0 I PRIMARY KEY [quote] VARCHAR będzie lepszy niż TEXT, bo z tego, co wiem, to akurat żadna piosenka Queen nie ma tytu3u d3uższego niż 255 znaków. [/quote] Masz racje [quote] Poniższe zapytanie Kod SELECT * FROM piesni ORDER BY glosy DESC, tytul ASC
zwraca rekordy z utworami posortowane malejąco wed3ug ilości g3osów (a więc od tego z największą ilością g3osów), a utwory z tą samą liczbą g3osów posortowane będą rosnąco względem tytu3u.[/quote] Dobre, dzi´ki!!! ---------- I wtedy, pisywac kolejno utwory: INSERT INTO piesni (tytul) VALUES "A Kind Of Magic" WHERE id=1 Tak? [/quote] |
|
|
14.04.2002, 09:45:03
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
Cytat OK - powiedz tylko, co znaczy UNSIGNED, DEFAULT 0 I PRIMARY KEY
INT UNSIGNED to typ danych, DEFAULT to warotsc domyslna pola, a PRIMARY KEY to klucz podstawowy w tabeli. Mam nadzieje, ze wszystko juz jest jasne. |
|
|
14.04.2002, 10:08:35
Post
#5
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 31.03.2002 Skąd: Toruń Ostrzeżenie: (0%) |
UNSIGNED w wolnym tłumaczeniu znaczy "BEZ ZNAKU", a w MySQL oznacza liczbę nieujemną (czyli dodatnią lub zero).
-------------------- misiu | chór
"Zdeterminowany programista potrafi stworzyć fatalny kod w każdym języku" Allen Holub |
|
|
14.04.2002, 10:40:20
Post
#6
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.04.2002 Skąd: Kraków Ostrzeżenie: (0%) |
Dzieki wszystkim, spróbuję zrobić tę listę jak będzie gotowa to dam znać :wink: :!:
|
|
|
15.06.2002, 12:46:46
Post
#7
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.04.2002 Skąd: Kraków Ostrzeżenie: (0%) |
Wczoraj się wziąłem do pracy i już prawie działa, ale coś się głosy niepoprawnie zliczają
Tzn. mam 5 list rozwijanych do wybierania utworów: Kod <select name="listaa">
<?php include("res/lista_opt.inc"); ?></select> <p><select name="listab"> <?php include("res/lista_opt.inc"); ?></select> <p><select name="listac"> <?php include("res/lista_opt.inc"); ?></select> <p><select name="listad"> <?php include("res/lista_opt.inc"); ?></select> <p><select name="listae"> <?php include("res/lista_opt.inc"); ?></select> Teraz pobieram z bazy liczbę aktualnych głosów na wybrane utwory, doaję do nich 1 i wpisuję z powrotem do tabeli. ta część skryptu wygląda tak: Kod $gl1 = "SELECT glosy FROM listat WHERE tytul='$listaa'";
$akt_gl1a = mysql_query($gl1); $glosy1 = $akt_gl1a + 1; $gl2 = "SELECT glosy FROM listat WHERE tytul='$listab'"; $akt_gl2b = mysql_query($gl2); $glosy2 = $akt_gl2b + 1; $gl3 = "SELECT glosy FROM listat WHERE tytul='$listac'"; $akt_gl3c = mysql_query($gl3); $glosy3 = $akt_gl3c + 1; $gl4 = "SELECT glosy FROM listat WHERE tytul='$listad'"; $akt_gl4d = mysql_query($gl4); $glosy4 = $akt_gl4d + 1; $gl5 = "SELECT glosy FROM listat WHERE tytul='$listae'"; $akt_gl5e = mysql_query($gl5); $glosy5 = $akt_gl5e + 1; $wpisz_query1 = "UPDATE listat SET glosy='$glosy1' WHERE tytul='$listaa'"; $wpisane1 = mysql_query($wpisz_query1); $wpisz_query2 = "UPDATE listat SET glosy='$glosy2' WHERE tytul='$listab'"; $wpisane2 = mysql_query($wpisz_query2); $wpisz_query3 = "UPDATE listat SET glosy='$glosy3' WHERE tytul='$listac'"; $wpisane3 = mysql_query($wpisz_query3); $wpisz_query4 = "UPDATE listat SET glosy='$glosy4' WHERE tytul='$listad'"; $wpisane4 = mysql_query($wpisz_query4); $wpisz_query5 = "UPDATE listat SET glosy='$glosy5' WHERE tytul='$listae'"; $wpisane5 = mysql_query($wpisz_query5); Aha i jeszcze dodam, że tabela wygląda tak: id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, tytul VARCHAR(40), glosy INT UNSIGNED DEFAULT 0 Nie wiem już co robić, wydaje mi się, że błąd tkwi w powyższym fragmencie. Wg mnie (jestem początkujący) wszystko wydaje się OK, ale może komuś od razu rzuci się w oczy okropny błąd (brak znaku $, hehe) Bardzo proszę o pomoc, jeśli trzeba coś więcej to służę :wink: -------------------- pozdrawiam,
mtq |
|
|
22.06.2002, 18:27:13
Post
#8
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.04.2002 Skąd: Kraków Ostrzeżenie: (0%) |
Już się nie musicie głowić 8) listę zrobiłem:
http://mtq.div.pl/lista.php Zapraszam do głosowania :mrgreen: -------------------- pozdrawiam,
mtq |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 07:21 |