[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
30/07/2006 01:46:08 (+0700) | #1 | 10958 |
TommyRader
Member
|
0 |
|
|
Joined: 04/05/2005 19:37:02
Messages: 2
Offline
|
|
Các anh cho em hỏi, chẳng hạn như mình muốn chơi ngẫu nhiên 1 bài hát trong số 10 bài được chỉ định thì mình dùng mã PHP thế nào vậy các anh?
Và tương tự nếu là hình ảnh, thơ...
Em xin cảm ơn ! |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
30/07/2006 05:03:59 (+0700) | #2 | 10993 |
|
nhocbmt
Member
|
0 |
|
|
Joined: 26/06/2006 17:55:21
Messages: 75
Location: Ban Mê City
Offline
|
|
dùng hàm rand(); trong php |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
30/07/2006 10:42:30 (+0700) | #3 | 11045 |
TommyRader
Member
|
0 |
|
|
Joined: 04/05/2005 19:37:02
Messages: 2
Offline
|
|
Anh có thể giải thích rõ ràng hơn được ko? Đối tượng ko chỉ đoạn text mà cả music, image....
Nếu có thể anh ghi ra toàn bộ soure luôn dùm em ! |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
31/07/2006 23:15:54 (+0700) | #4 | 11380 |
ke_noi_doi
Member
|
0 |
|
|
Joined: 27/08/2003 02:29:53
Messages: 2
Offline
|
|
tôi chưa học qua php nên ko biết, nhưng trong javascript thì có một câu lệnh sinh ra số ngẫu nhiên từ 0 đên 1, ta chỉ cần dùng lệnh getRandom() này rồi nhân với 10(làm tròn lên), ta sẽ có được 1 số từ 1 đến 10, tương ứng với 10 bài hát mà bạn cần chọn random. OK |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
02/08/2006 02:29:57 (+0700) | #5 | 11709 |
114v
Member
|
0 |
|
|
Joined: 08/07/2006 23:27:00
Messages: 191
Offline
|
|
Ví dụ:
SELECT * FROM music ORDER BY rand() |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
02/08/2006 07:42:06 (+0700) | #6 | 11788 |
hoangaus
Member
|
0 |
|
|
Joined: 27/06/2006 03:18:21
Messages: 13
Offline
|
|
114v wrote:
Ví dụ:
SELECT * FROM music ORDER BY rand()
nếu làm việc với DB bạn dùng như trên là tốt và tiện nhất ... nhưng nếu là file k động đến db ... bạn nên opendir dir chứa nhạc và define files thành 1 array sau đó ra echo array theo kiểu random key |
|
|
|
|
[Question] Re: Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
04/08/2006 10:41:37 (+0700) | #7 | 12251 |
|
.:LittleBuk:.
Member
|
0 |
|
|
Joined: 26/06/2006 20:28:07
Messages: 12
Location: .:BocapTeck Corporation:.
Offline
|
|
uhm ... cái này hình như mình trả lời bạn bên viethacker roài mà .. !!! |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
08/08/2006 03:41:21 (+0700) | #8 | 13025 |
|
.:LittleBuk:.
Member
|
0 |
|
|
Joined: 26/06/2006 20:28:07
Messages: 12
Location: .:BocapTeck Corporation:.
Offline
|
|
bên VHS nói gì em vậy anh Mạnh ??? căn bản hôm trước viết code trả lời bạn ý bên VHS rồi giờ ngại viết lại thôi ... |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
08/08/2006 04:46:53 (+0700) | #9 | 13040 |
goldenmice
Member
|
0 |
|
|
Joined: 27/11/2005 14:09:48
Messages: 57
Offline
|
|
Theo tôi bạn có thể làm như sau:
Nếu bạn biết về cơ sở dữ liệu bạn tạo 1 bảng tương ứng 1 số bất kỳ và tên 1 bài hát rồi dùng lệnh truy vấp như kiểu SELECT namesong FROM tablesong where id=giá trị rand lấy được từ hàm rand. (Tương tự cách này là tạo mảng tên bài -> nhưng như thế thì sẽ xử lý chậm đi đôi chút đó)
Còn nếu ko bạn tạo các file nhạc với tên gắn với các số 1,,2.. và $namesong = $index."duôi";
và $index cũng như trên là được tạo từ hàm rand().
Chúc tốt.! |
|
|
|
|
[Question] Re: Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
08/08/2006 08:23:29 (+0700) | #10 | 13095 |
|
canh_nguyen
Elite Member
|
0 |
|
|
Joined: 23/08/2004 18:55:09
Messages: 775
Location: Broken dream
Offline
|
|
Bạn tham khảo ví dụ này nhá:
Code:
<?php
include("config.php");
/* Counts the total rows of the table */
$totalrows = mysql_num_rows(mysql_query("SELECT * FROM example_table"));
$rand1 = rand(1,$totalrows); //sets rand1
$rand2 = rand(1,$totalrows); //sets rand2
$rand3 = rand(1,$totalrows); //sets rand3
/* Compares the first random if its the similar than other random it will change till it be different*/
while($rand1==$rand2){
$rand2 = rand(1,$totalrows);
}
while($rand1==$rand3){
$rand3 = rand(1,$totalrows);
}
/* Compares the second random if its the similar than other random it will change till it be different*/
while($rand2==$rand3){
$rand3 = rand(1,$totalrows);
}
while($rand2==$rand1){
$rand3 = rand(1,$totalrows);
}
/* Compares the thirth random if its the similar than other random it will change till it be different*/
while($rand3==$rand2){
$rand3 = rand(1,$totalrows);
}
while($rand3==$rand1){
$rand3 = rand(1,$totalrows);
}
/* Array the sql content */
$r = mysql_fetch_array(mysql_query("SELECT * FROM example_table WHERE id= '$rand1'"));
/* Echoes the content */
echo "$r[title]<br>";
$r2 = mysql_fetch_array(mysql_query("SELECT * FROM example_table WHERE id= '$rand2'"));
echo "$r2[title]<br>";
$r3 = mysql_fetch_array(mysql_query("SELECT * FROM example_table WHERE id= '$rand3'"));
echo "$r3[title]<br>";
?>
|
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
14/08/2006 22:33:16 (+0700) | #11 | 14937 |
|
canh_nguyen
Elite Member
|
0 |
|
|
Joined: 23/08/2004 18:55:09
Messages: 775
Location: Broken dream
Offline
|
|
conhan wrote:
chuối
Lý do??? :lol |
|
|
|
|
[Question] Re: Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
15/08/2006 12:00:42 (+0700) | #12 | 15095 |
hoangaus
Member
|
0 |
|
|
Joined: 27/06/2006 03:18:21
Messages: 13
Offline
|
|
chuối là vì chỉ cần order by rand() thì dữ liệu sẽ tự result theo rand() k cần cả 1 đoạn code dài như vậy để sử lý ... 1 tốn query resource 2 site sẽ load lâu hơn ! |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
15/08/2006 12:08:13 (+0700) | #13 | 15098 |
|
conhan
Member
|
0 |
|
|
Joined: 20/05/2003 15:36:16
Messages: 28
Location: Bụng mẹ
Offline
|
|
Hix, có chữ chuối mà cũng xoá .
|
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
19/08/2006 00:19:00 (+0700) | #14 | 15985 |
|
canh_nguyen
Elite Member
|
0 |
|
|
Joined: 23/08/2004 18:55:09
Messages: 775
Location: Broken dream
Offline
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
23/08/2006 02:40:57 (+0700) | #15 | 17053 |
|
kidhackervn
Member
|
0 |
|
|
Joined: 28/01/2003 02:20:44
Messages: 19
Offline
|
|
Đoạn code của canh_nguyen ko phải là chuối, mà là quá chuối ) Ví dụ thì cũng phải như thế nào chứ (chuẩn chuẩn 1 chút) chứ ví dụ kiểu này rồi người ta cứ tưởng vầy là chính quy rồi cứ thế mà làm thì có mà chết à. |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
24/08/2006 22:14:41 (+0700) | #16 | 17620 |
|
canh_nguyen
Elite Member
|
0 |
|
|
Joined: 23/08/2004 18:55:09
Messages: 775
Location: Broken dream
Offline
|
|
kidhackervn wrote:
Đoạn code của canh_nguyen ko phải là chuối, mà là quá chuối ) Ví dụ thì cũng phải như thế nào chứ (chuẩn chuẩn 1 chút) chứ ví dụ kiểu này rồi người ta cứ tưởng vầy là chính quy rồi cứ thế mà làm thì có mà chết à.
Thế nó không chuẩn chuẩn chỗ nào chả nhẽ người khác đưa code thế nào là cứ phang nguyên như thế vào code của mình :shock: |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
24/08/2006 23:18:09 (+0700) | #17 | 17648 |
thang2rs
Member
|
0 |
|
|
Joined: 06/07/2006 18:45:35
Messages: 46
Offline
|
|
kidhackervn wrote:
Đoạn code của canh_nguyen ko phải là chuối, mà là quá chuối ) Ví dụ thì cũng phải như thế nào chứ (chuẩn chuẩn 1 chút) chứ ví dụ kiểu này rồi người ta cứ tưởng vầy là chính quy rồi cứ thế mà làm thì có mà chết à.
Thay vì "nặng nhẹ" như thế chúng ta thử phân tích đoạn code của canh_nguyen xem sao.
Code:
<?php
include("config.php");
/* Counts the total rows of the table */
$totalrows = mysql_num_rows(mysql_query("SELECT * FROM example_table"));
$rand1 = rand(1,$totalrows); //sets rand1
$rand2 = rand(1,$totalrows); //sets rand2
$rand3 = rand(1,$totalrows); //sets rand3
/* Compares the first random if its the similar than other random it will change till it be different*/
while($rand1==$rand2){
$rand2 = rand(1,$totalrows);
}
while($rand1==$rand3){
$rand3 = rand(1,$totalrows);
}
/* Compares the second random if its the similar than other random it will change till it be different*/
while($rand2==$rand3){
$rand3 = rand(1,$totalrows);
}
while($rand2==$rand1){
$rand3 = rand(1,$totalrows);
}
/* Compares the thirth random if its the similar than other random it will change till it be different*/
while($rand3==$rand2){
$rand3 = rand(1,$totalrows);
}
while($rand3==$rand1){
$rand3 = rand(1,$totalrows);
}
/* Array the sql content */
$r = mysql_fetch_array(mysql_query("SELECT * FROM example_table WHERE id= '$rand1'"));
/* Echoes the content */
echo "$r[title]<br>";
$r2 = mysql_fetch_array(mysql_query("SELECT * FROM example_table WHERE id= '$rand2'"));
echo "$r2[title]<br>";
$r3 = mysql_fetch_array(mysql_query("SELECT * FROM example_table WHERE id= '$rand3'"));
echo "$r3[title]<br>";
?>
Có thể thấy ngay là đoạn code trên sẽ lập tức "phá sản" nếu như $totalrows < 3. Ta không thể tìm được 3 số nguyên khác nhau trong số ít hơn 3 số nguyên.
Giả sử $totalrows >= 3. ta tiếp tục.
Code:
/* Compares the first random if its the similar than other random it will change till it be different*/
while($rand1==$rand2){
$rand2 = rand(1,$totalrows);
}
while($rand1==$rand3){
$rand3 = rand(1,$totalrows);
}
/* Compares the second random if its the similar than other random it will change till it be different*/
while($rand2==$rand3){
$rand3 = rand(1,$totalrows);
}
while($rand2==$rand1){
$rand3 = rand(1,$totalrows);
}
/* Compares the thirth random if its the similar than other random it will change till it be different*/
while($rand3==$rand2){
$rand3 = rand(1,$totalrows);
}
while($rand3==$rand1){
$rand3 = rand(1,$totalrows);
}
Ở đây canh_nguyen đã tìm cách làm cho các $rand1,2,3 có giá trị khác nhau nhưng rất tiếc cách làm này không bảo đảm được điều đó. Bạn làm, đầu tiên là $rand2 # $rand1 và $rand3 # $rand1, sau đó $rand2 # $rand3. Nhưng không may lúc này $rand2/$rand3 có thể mang lại giá trị của $rand1. Bạn xem kĩ lại đoạn code này sẽ thấy ngay điều đó. Để làm điều này bạn có thể dùng đoạn code sau:
Code:
do {
$rand1 = rand(1,$totalrows); //sets rand1
$rand2 = rand(1,$totalrows); //sets rand2
$rand3 = rand(1,$totalrows); //sets rand3
} while ($rand1==$rand2 || $rand1==$rand3 || $rand2==$rand3)
Chúng ta tiếp tục,
Code:
/* Array the sql content */
$r = mysql_fetch_array(mysql_query("SELECT * FROM example_table WHERE id= '$rand1'"));
/* Echoes the content */
echo "$r[title]<br>";
$r2 = mysql_fetch_array(mysql_query("SELECT * FROM example_table WHERE id= '$rand2'"));
echo "$r2[title]<br>";
$r3 = mysql_fetch_array(mysql_query("SELECT * FROM example_table WHERE id= '$rand3'"));
echo "$r3[title]<br>";
Đoạn trên sẽ không cho kết quả mong muốn vì có thể các điều kiện này không thoả: id= '$rand1'/id= '$rand2'/id= '$rand3'. Các giá trị id có thể không liên tục do 1 số record đã bị xoá trong quá trình update database.
Có lẽ dùng như 1 số bạn đề nghị:
Code:
"SELECT * FROM table ORDER BY RAND() LIMIT 3"
là ổn.
Vài dòng trao đổi.
|
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
25/08/2006 00:34:16 (+0700) | #18 | 17676 |
|
kidhackervn
Member
|
0 |
|
|
Joined: 28/01/2003 02:20:44
Messages: 19
Offline
|
|
Đoạn trên sẽ không cho kết quả mong muốn vì có thể các điều kiện này không thoả: id= '$rand1'/id= '$rand2'/id= '$rand3'. Các giá trị id có thể không liên tục do 1 số record đã bị xoá trong quá trình update database.
Điều này thì chắc khó xảy ra, vì thời gian chạy đoạn code trên (dù là chuối ) nhưng chắc cũng ko lâu đến nỗi trong thời gian đó có 1 vài record bị xoá (chắc ko trùng hợp đến vậy đâu).
@canh_nguyen: Sorry nhé, chẳng qua mình thấy là nếu đã đưa ví dụ cho người khác thì ví dụ đó phải tốt 1 chút, chứ như thang2rs đã phân tích đó, nội cái chuyện bạn so sánh 3 số sao cho nó khác nhau mà đã tốn đến 6 dòng while, đã thế chưa chắc gì nó đã tốt bằng 1 dòng while trên kia (chưa kể đến chuyện mà bạn đang làm là quá phí, cả thời gian gõ cái đống code, cộng thời gian run cái code đó). Thôi đừng giận nhé ).
*PS: mà wên, bạn thang2rs nói đúng rồi, mình ko đọc kỹ đoạn code, $rand1 lấy random trong khoảng từ 1 cho đến totalrows, điều này chỉ làm đúng khi id đó do bạn tự gán và có kiểm tra để nó tăng dần đều (và mỗi khi có 1 row bị xoá thì phải update id 1 loạt các row sau row bị xoá, chắc chẳng ai làm dzầy ) ) |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
25/08/2006 00:59:31 (+0700) | #19 | 17685 |
thang2rs
Member
|
0 |
|
|
Joined: 06/07/2006 18:45:35
Messages: 46
Offline
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
25/08/2006 01:40:22 (+0700) | #20 | 17693 |
|
LM
Moderator
|
Joined: 16/04/2002 09:27:22
Messages: 129
Offline
|
|
hmm,
Cuộc đời không như màu hồng, có lúc hồng đẹp có lúc đen sì lì buồn bã. Code cũng vậy thôi, có lúc dùng cách này dùng cách khác hehe.
"Đọc sơ" qua hệ mấy bài, LM không ý kiến gì, chỉ "góp ý" vài cái.
- 114V: dùng hàm rand() trong câu select là thuộc dạng top, vì đa số dùng cách này là rất nhẹ.
Dùng hàm rand() để nó sort ngẫu nhiên.
- canh_nguyen: Code bạn hơi có vấn đề chút, nhưng hoan nghênh bạn cho mọi người, tuy nhiên bạn nên rút kinh nghiệm nếu như đó code bạn viết .
- TO: những người chê canh_nguyen: đâu phải ai cũng good. Nên đọc kỹ 5 điều bác hồ dạy. Trong đó có 1 điều, mà điều đó vào cưộc sống sẽ đụng nhiều. Nhưng cũng hoan nghênh tính thẳng thắng của các bạn.
OK, quay lại vấn đề.
Có những cái nhiều khi phải kết hợp giữa câu truy vấn SQL và code PHP. Không hẵn là tất cả deu Sql hoặc tất cả đều PHP giải quyết .
Ở đây tác giả chủ đề này có nói rõ, mà hổng ai để ý, nghĩ cao siêu hông à
chơi ngẫu nhiên 1 bài hát trong số 10 bài được chỉ định thì mình dùng mã PHP thế nào vậy các anh?
Câu này suy đoán có nghĩa .. có thể tác giả ko có kết nối CSDL mà biết trước các bài hát chỉ định sẵn, như FILE, LINK ...
Ta có thể dùng Mảng để làm, mà mảng thì dùng bao nhieu cách để random tuỳ ý.
Ở đây LM chỉ ví dụ cách dùng mảng, còn random thế nào, random ra sao với mảng thì tự nghiên cứu nha .
Code:
$danhsach["nhac"] = array(
"1" => "Bàihat1.mp3",
"2" => "Bàihat2.mp3",
....
"10" =>"Baihat10.mp3"
);
Thay đổi nhac để áp dụng cho các mục khác .
Còn muốn nhiều hơn thì dùng mảng trong mảng, ở đây đễ làm lẹ nhanh, LM ko dùng mảng trong mảng kiểu Chính Quy như thêm array con vào mà làm array giả với dấu "-", dùng hàm explode tách dấu - ra.
Code:
$danhsach["nhac"] = array(
"1" => "Bàihat1.mp3-http://link1",
"2" => "Bàihat2.mp3-http://link1",
....
"10" =>"Baihat10.mp3-http://link10"
);
Ở đây dùng dấu "-" để làm mảng giả, tuy nhiên nếu sợ trùng với các ký tự trong dữ liệu của mình có thể dùng các ký tự khác như |, || , +, hoặc thậm chí thích [HVA] , |hva| cũng được
Vài dòng ngu ý. |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
25/08/2006 02:45:21 (+0700) | #21 | 17721 |
thang2rs
Member
|
0 |
|
|
Joined: 06/07/2006 18:45:35
Messages: 46
Offline
|
|
LM wrote:
Ở đây tác giả chủ đề này có nói rõ, mà hổng ai để ý, nghĩ cao siêu hông à
chơi ngẫu nhiên 1 bài hát trong số 10 bài được chỉ định thì mình dùng mã PHP thế nào vậy các anh?
Câu này suy đoán có nghĩa .. có thể tác giả ko có kết nối CSDL mà biết trước các bài hát chỉ định sẵn, như FILE, LINK ...
Vâng, có thể như thế. Chúng ta bắt đầu từ đây.
LM wrote:
$danhsach["nhac"] = array(
"1" => "Bàihat1.mp3",
"2" => "Bàihat2.mp3",
....
"10" =>"Baihat10.mp3"
);
Không có gì mới ở đây, chúng ta tiếp tục,
LM wrote:
Còn muốn nhiều hơn thì dùng mảng trong mảng, ở đây đễ làm lẹ nhanh, LM ko dùng mảng trong mảng kiểu Chính Quy như thêm array con vào mà làm array giả với dấu "-", dùng hàm explode tách dấu - ra.
Code:
$danhsach["nhac"] = array(
"1" => "Bàihat1.mp3-http://link1",
"2" => "Bàihat2.mp3-http://link1",
....
"10" =>"Baihat10.mp3-http://link10"
);
Ở đây dùng dấu "-" để làm mảng giả, tuy nhiên nếu sợ trùng với các ký tự trong dữ liệu của mình có thể dùng các ký tự khác như |, || , +, hoặc thậm chí thích [HVA] , |hva| cũng được
Có vẻ như đây mới là "ý tưởng" của LM. Chúng ta thử phân tích.
Trên một system hệ *nix (rất nhiều các server thuộc dạng này) tất cả các kí tự trừ '/' và '\0' đều được phép dùng cho việc đặt tên file. Khi đó vấn đề sẽ nảy sinh. Ta sẽ dùng kí tự nào cho việc "tách" file và link đây. '\0' sẽ lập tức "cắt" chuỗi ngay tại vị trí của nó (nếu như PHP xử sự như C/C++, cái này tôi chưa thử với PHP, có thể tôi sai nhưng dùng '\0' chẳng hay tí nào). Còn '/' thì chắc chắn là có trong "http://..." rồi (có thể LM bảo "lấy" '/' đầu tiên, nhưng như vậy cũng chẳng có gì "sáng sủa" cả).
Có thể chúng ta đã đi xa hơn yêu cầu của người mở topic nhưng đã đến đây rồi thì cũng nên "triệt để" 1 tí.
Tất nhiên việc dùng "-" tách file và link để tạo "array giả" chỉ là chuyện nhỏ. Chúng ta chờ xem cái gì mới hơn ở LM vì đoạn mở đầu của LM hứa hẹn nhiều điều lắm:
LM wrote:
Cuộc đời không như màu hồng, có lúc hồng đẹp có lúc đen sì lì buồn bã. Code cũng vậy thôi, có lúc dùng cách này dùng cách khác hehe.
|
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
25/08/2006 07:18:00 (+0700) | #22 | 17794 |
|
LM
Moderator
|
Joined: 16/04/2002 09:27:22
Messages: 129
Offline
|
|
oách, Trời
Code:
Trên một system hệ *nix (rất nhiều các server thuộc dạng này) tất cả các kí tự trừ '/' và '\0' đều được phép dùng cho việc đặt tên file. Khi đó vấn đề sẽ nảy sinh. Ta sẽ dùng kí tự nào cho việc "tách" file và link đây. '\0' sẽ lập tức "cắt" chuỗi ngay tại vị trí của nó (nếu như PHP xử sự như C/C++, cái này tôi chưa thử với PHP, có thể tôi sai nhưng dùng '\0' chẳng hay tí nào). Còn '/' thì chắc chắn là có trong "http://..." rồi (có thể LM bảo "lấy" '/' đầu tiên, nhưng như vậy cũng chẳng có gì "sáng sủa" cả).
Bó tay.chấm com, bạn thang2rs không hiểu ý mình rồi.
Xin nhắc lại một lần nữa ĐÓ LÀ VÍ DỤ. Bản thân LM cũng làm trên *nix nhiều nên cũng hiểu quy tắc đặt tên file, đừng nói bạn hiểu
Ở đây "Bàihatx.mp3-http://linkx" là một chuỗi, công việc của coder là xây dựng chuỗi sao cho hợp lý và dùng ký tự gì để làm mảng giả .
Bàihat1.mp3-http://link1, nghĩa là sẽ đặt file MP3 có tên là Bàihat.mp3:
- TH1: Bạn nghĩ đặt tên file Unicode Bàihatx.mp3 mà LM đưa ra, thì xin thưa LM chỉ muốn newbie hiểu cái chuỗi Bàihat1.mp3 là tên của file, còn ghi TV có dấu để newbie dễ hiểu.
- TH2: Bạn nhìn cái giá trị Bàihat1.mp3-http://link1 rồi phát biểu như trên là bó tay.com tập 2. Vì sao? Vì đặt giá trị trong PHP ... như thế là ok rồi )
Lại hiểu nhầm ý tập 3
Còn '/' thì chắc chắn là có trong "http://..." rồi (có thể LM bảo "lấy" '/' đầu tiên, nhưng như vậy cũng chẳng có gì "sáng sủa" cả).
Lấy cái dấu / đầu tiên làm gì trời, mần gì với nó đây, vế 1 và vế 2 được chia bởi ký tự "-" hoặc những ký tự khác có thể. ???
Code:
Tất nhiên việc dùng "-" tách file và link để tạo "array giả" chỉ là chuyện nhỏ. Chúng ta chờ xem cái gì mới hơn ở LM vì đoạn mở đầu của LM hứa hẹn nhiều điều lắm:
Hix, lại nữa không chịu đọc kỹ
"
Câu này suy đoán có nghĩa .. có thể tác giả ko có kết nối CSDL mà biết trước các bài hát chỉ định sẵn, như FILE, LINK ...
Ta có thể dùng Mảng để làm, mà mảng thì dùng bao nhieu cách để random tuỳ ý.
Ở đây LM chỉ ví dụ cách dùng mảng, còn random thế nào, random ra sao với mảng thì tự nghiên cứu nha . "
Bạn nên đọc sơ qua coi PHP nó code ra sao. :>.
Không nhầm thì bạn là dân "chính quy", suy nghĩ đơn giản một chút đi nhé.
1 là đã tốt nghiệp ĐH,CĐ
2 là đang còn đi học
Vài dòng ngu ý |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
25/08/2006 08:02:05 (+0700) | #23 | 17802 |
|
LM
Moderator
|
Joined: 16/04/2002 09:27:22
Messages: 129
Offline
|
|
Thôi thể theo iu cầu, để tại hạ trình bày nốt cái "thủ thuật" mà bạn kiu "gọi là ý tưởng".
Thí dụ code, viết như sau:
Code:
<?php
$danhsach["nhac"] = array(
"1" => "nhac1.mp3[hva]http://link1",
"2" => "nhac2.mp3[hva]http://link2",
"3" => "nhac3.mp3[hva]http://link3",
"4" => "nhac4.mp3[hva]http://link4",
"5" => "nhac5.mp3[hva]http://link5"
);
$mpos = array_rand($danhsach["nhac"]);
$mnhac = explode("[hva]", $danhsach["nhac"][$mpos]);
$nhac_file = $mnhac[0];
$nhac_url = $mnhac[1];
?>
Ở đây ví dụ chỉ có 5 bài hát. tên file đã có được rồi. và URL đã có. Tuỳ thích sử dụng.
Code play nhạc dùng Windows Media
biến $file_fl là path của file nhạc
Code:
echo "
<OBJECT ID=\"Player\" CLASSID=\"CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6\" width=340 height=300>
<PARAM name=\"autoStart\" value=\"false\">
<PARAM name=\"DisplaySize\" value=\"True\">
<PARAM name=\"ShowPositionControls\" value=\"True\">
<PARAM name=\"url\" value=\"$file_fl\">
<param name=\"AutoSize\" value=\"-1\">
<param name=\"AutoStart\" value=\"-1\">
<param name=\"AnimationAtStart\" value=\"-1\">
<param name=\"AllowScan\" value=\"-1\">
<param name=\"AllowChangeDisplaySize\" value=\"-1\">
<param name=\"AutoRewind\" value=\"0\">
<param name=\"Balance\" value=\"0\">
<param name=\"BaseURL\" value>
<param name=\"BufferingTime\" value=\"10\">
<param name=\"CaptioningID\" value>
<param name=\"ClickToPlay\" value=\"-1\">
<param name=\"CursorType\" value=\"0\">
<param name=\"CurrentPosition\" value=\"-1\">
<param name=\"CurrentMarker\" value=\"0\">
<param name=\"DefaultFrame\" value>
<param name=\"DisplayBackColor\" value=\"0\">
<param name=\"DisplayForeColor\" value=\"16777215\">
<param name=\"DisplayMode\" value=\"0\">
<param name=\"DisplaySize\" value=\"0\">
<param name=\"Enabled\" value=\"-1\">
<param name=\"EnableContextMenu\" value=\"-1\">
<param name=\"EnablePositionControls\" value=\"-1\">
<param name=\"EnableFullScreenControls\" value=\"0\">
<param name=\"EnableTracker\" value=\"-1\">
<param name=\"Filename\" value>
<param name=\"InvokeURLs\" value=\"-1\">
<param name=\"Language\" value=\"-1\">
<param name=\"Mute\" value=\"0\">
<param name=\"PlayCount\" value=\"0\">
<param name=\"PreviewMode\" value=\"true\">
<param name=\"Rate\" value=\"1\">
<param name=\"SAMILang\" value>
<param name=\"SAMIStyle\" value>
<param name=\"SAMIFileName\" value>
<param name=\"SelectionStart\" value=\"-1\">
<param name=\"SelectionEnd\" value=\"-1\">
<param name=\"SendOpenStateChangeEvents\" value=\"-1\">
<param name=\"SendWarningEvents\" value=\"-1\">
<param name=\"SendErrorEvents\" value=\"-1\">
<param name=\"SendKeyboardEvents\" value=\"0\">
<param name=\"SendMouseClickEvents\" value=\"0\">
<param name=\"SendMouseMoveEvents\" value=\"0\">
<param name=\"SendPlayStateChangeEvents\" value=\"-1\">
<param name=\"ShowCaptioning\" value=\"0\">
<param name=\"ShowControls\" value=\"-1\">
<param name=\"ShowAudioControls\" value=\"-1\">
<param name=\"ShowDisplay\" value=\"0\">
<param name=\"ShowGotoBar\" value=\"0\">
<param name=\"ShowPositionControls\" value=\"-1\">
<param name=\"ShowStatusBar\" value=\"0\">
<param name=\"ShowTracker\" value=\"-1\">
<param name=\"TransparentAtStart\" value=\"0\">
<param name=\"VideoBorderWidth\" value=\"0\">
<param name=\"VideoBorderColor\" value=\"0\">
<param name=\"VideoBorder3D\" value=\"0\">
<param name=\"AutoSize\" value=\"true\">
<PARAM name=\"enableContextMenu\" value=\"False\">
</OBJECT>";
Code chơi Flash, $file_fl cũng là ...
Code:
echo "
<object classid=\"clsid27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\" width='300' height='200'>
<param name=\"movie\" value='$file_fl'>
<param name=\"wmode\" value='transparent'>
<param name=\"quality\" value=\"high\">
<embed src='$file_fl' quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width='300' height='200></embed></object>
";
Muốn biết chỉnh sửa code trên, thì zô http://www.w3schools.com để tìm tut nói về 2 cái trên.
Ở đây muốn điền thêm tên bài hát thì dễ thôi.
thí dụ
Code:
<?php
$danhsach["nhac"] = array(
"1" => "nhac1.mp3[hva]http://link1[hva]Anh Mãi yêu em 1",
"2" => "nhac2.mp3[hva]http://link2[hva]Anh Mãi yêu em 2",
"3" => "nhac3.mp3[hva]http://link3[hva]Anh Mãi yêu em 3",
"4" => "nhac4.mp3[hva]http://link4[hva]Anh Mãi yêu em 4",
"5" => "nhac5.mp3[hva]http://link4[hva]Anh Mãi yêu em 5"
);
$mpos = array_rand($danhsach["nhac"]);
$mnhac = explode("[hva]", $danhsach["nhac"][$mpos]);
$nhac_file = $mnhac[0];
$nhac_url = $mnhac[1];
$nhac_title = $mnhac[2];
?>
Dùng bảng mã UCS2-W để gõ, dùng vietkey của anh Tuấn mã 42.
Tóm lại muốn làm gì cũng được cứ đưa vào chuỗi, ngăn cách bằng [hva].
Đến đây là quá ok rồi hen. Tuỳ thích làm gì làm.
Đây cũng chỉ là một cách so simple cho mục đích của TommyRader.
Còn nếu làm có kết nối CSDL thì... còn simple hơn :>
Lưu ý đây chỉ là random ra 1 bài, còn nhiều bài random thì... .
Không cần dùng búa để đập con kiến :>
Nếu muốn trao đổi kỹ hơn, qua PHP.net.vn nhiều coder php sẽ giúp bạn TommyRader.
Vài dòng ngu ý |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
25/08/2006 23:53:02 (+0700) | #24 | 17997 |
thang2rs
Member
|
0 |
|
|
Joined: 06/07/2006 18:45:35
Messages: 46
Offline
|
|
LM wrote:
oách, Trời
Code:
Trên một system hệ *nix (rất nhiều các server thuộc dạng này) tất cả các kí tự trừ '/' và '\0' đều được phép dùng cho việc đặt tên file. Khi đó vấn đề sẽ nảy sinh. Ta sẽ dùng kí tự nào cho việc "tách" file và link đây. '\0' sẽ lập tức "cắt" chuỗi ngay tại vị trí của nó (nếu như PHP xử sự như C/C++, cái này tôi chưa thử với PHP, có thể tôi sai nhưng dùng '\0' chẳng hay tí nào). Còn '/' thì chắc chắn là có trong "http://..." rồi (có thể LM bảo "lấy" '/' đầu tiên, nhưng như vậy cũng chẳng có gì "sáng sủa" cả).
Bó tay.chấm com, bạn thang2rs không hiểu ý mình rồi.
Xin nhắc lại một lần nữa ĐÓ LÀ VÍ DỤ. Bản thân LM cũng làm trên *nix nhiều nên cũng hiểu quy tắc đặt tên file, đừng nói bạn hiểu
Ở đây "Bàihatx.mp3-http://linkx" là một chuỗi, công việc của coder là xây dựng chuỗi sao cho hợp lý và dùng ký tự gì để làm mảng giả .
Bàihat1.mp3-http://link1, nghĩa là sẽ đặt file MP3 có tên là Bàihat.mp3:
- TH1: Bạn nghĩ đặt tên file Unicode Bàihatx.mp3 mà LM đưa ra, thì xin thưa LM chỉ muốn newbie hiểu cái chuỗi Bàihat1.mp3 là tên của file, còn ghi TV có dấu để newbie dễ hiểu.
- TH2: Bạn nhìn cái giá trị Bàihat1.mp3-http://link1 rồi phát biểu như trên là bó tay.com tập 2. Vì sao? Vì đặt giá trị trong PHP ... như thế là ok rồi )
Lại hiểu nhầm ý tập 3
Còn '/' thì chắc chắn là có trong "http://..." rồi (có thể LM bảo "lấy" '/' đầu tiên, nhưng như vậy cũng chẳng có gì "sáng sủa" cả).
Lấy cái dấu / đầu tiên làm gì trời, mần gì với nó đây, vế 1 và vế 2 được chia bởi ký tự "-" hoặc những ký tự khác có thể. ???
Tôi hiểu và hiểu rất rõ ý của bạn. Tôi đã viết:
thang2rs wrote:
Trên một system hệ *nix (rất nhiều các server thuộc dạng này) tất cả các kí tự trừ '/' và '\0' đều được phép dùng cho việc đặt tên file. Khi đó vấn đề sẽ nảy sinh. Ta sẽ dùng kí tự nào cho việc "tách" file và link đây. '\0' sẽ lập tức "cắt" chuỗi ngay tại vị trí của nó (nếu như PHP xử sự như C/C++, cái này tôi chưa thử với PHP, có thể tôi sai nhưng dùng '\0' chẳng hay tí nào). Còn '/' thì chắc chắn là có trong "http://..." rồi (có thể LM bảo "lấy" '/' đầu tiên, nhưng như vậy cũng chẳng có gì "sáng sủa" cả).
Tôi đành phải giải thích lại ý của mình vậy mặc dù đã giải thích rất rõ rồi. Trên 1 *nix system ta có thể dùng bất kì kí tự nào, trừ 2 kí tự sau: '/' và '\0', cho việc đặt tên file. Điều này có nghĩa 1 file có thể mang bất kì tên nào miễn là trong tên file ấy không chứa 2 kí tự kể trên. Trong cách dùng "mảng giả" của bạn, điều này cũng có nghĩa ta chỉ có thể dùng 1 trong 2 chuỗi sau để "tách" file và link: "/" hoặc "\0". Và, rất tiếc, như đã phân tích ở trên, việc dùng 1 trong 2 chuỗi này làm separator chẳng có gì là hay ho cả (mặc dù có thể dùng tốt).
Như vậy, trong trường hợp của bạn, không thể dùng bất kì chuỗi hay kí tự nào khác, kể cả "|, || , +, hoặc thậm chí thích [HVA] , |hva|", để làm việc này. Bởi lẽ đơn giản là nếu tên file (và cả link nữa) chứa ít nhất 1 trong các chuỗi hay kí tự kể trên thì bạn sẽ "chia" thế nào đây.
Chẳng hạn, nếu dùng [hva] làm separator:
"baihat1[hva].mp3[hva]http://link1"???.
Chẳng có unicode hay TV có dấu nào ở đây cả (mặc dù lôi nó ra bạn sẽ gặp lôi thôi đấy). Có thể bạn sẽ nói là bạn sẽ "kiểm soát" tên file và link? Tất nhiên bạn có thể làm được điều này nhưng như vậy bạn sẽ có thêm khối việc để làm đấy chứ không "nhanh lẹ" như bạn nói đâu.
Có thể tôi hơi "cầu toàn" (mà như bạn nói là "chính qui") nhưng rõ ràng cái "mảng giả" của bạn là thiếu triệt để. Hơn nữa nó cũng chẳng đơn giản hơn tí nào so với:
Code:
$danhsach["nhac"] = array(
$file1=>$link1,
$file2=>$link2,
$file3=>$link3
);
Với code này bạn có thể hoàn toàn yên tâm với bất kì file hay link nào. Bạn cũng chẳng cần phải tách file và link ra làm gì. Đúng không?
Nhưng thôi, tất cả chỉ là "tiểu tiết", tôi không hứng lắm với những đề tài như thế mà cái gì mới hơn kia.
Đến đây chắc bạn đã biết là ai "hiểu nhầm" và "Bó tay.chấm com" ai rồi chứ? Tất cả cũng tại vì cái mở đầu rất ấn tượng của bạn:
LM wrote:
hmm,
Cuộc đời không như màu hồng, có lúc hồng đẹp có lúc đen sì lì buồn bã. Code cũng vậy thôi, có lúc dùng cách này dùng cách khác hehe.
"Đọc sơ" qua hệ mấy bài, LM không ý kiến gì, chỉ "góp ý" vài cái.
- 114V: dùng hàm rand() trong câu select là thuộc dạng top, vì đa số dùng cách này là rất nhẹ.
Dùng hàm rand() để nó sort ngẫu nhiên.
- canh_nguyen: Code bạn hơi có vấn đề chút, nhưng hoan nghênh bạn cho mọi người, tuy nhiên bạn nên rút kinh nghiệm nếu như đó code bạn viết .
- TO: những người chê canh_nguyen: đâu phải ai cũng good. Nên đọc kỹ 5 điều bác hồ dạy. Trong đó có 1 điều, mà điều đó vào cưộc sống sẽ đụng nhiều. Nhưng cũng hoan nghênh tính thẳng thắng của các bạn.
...
Có những cái nhiều khi phải kết hợp giữa câu truy vấn SQL và code PHP. Không hẵn là tất cả deu Sql hoặc tất cả đều PHP giải quyết .
làm tôi tưởng "mình sắp được thưởng thức 1 món ngon đây". Lỗi tại tôi, lỗi tại tôi, nó chỉ có thế thôi.
Bạn lại tiếp:
LM wrote:
echo "
<OBJECT ID=\"Player\" CLASSID=\"CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6\" width=340 height=300>
<PARAM name=\"autoStart\" value=\"false\">
<PARAM name=\"DisplaySize\" value=\"True\">
<PARAM name=\"ShowPositionControls\" value=\"True\">
<PARAM name=\"url\" value=\"$file_fl\">
<param name=\"AutoSize\" value=\"-1\">
<param name=\"AutoStart\" value=\"-1\">
<param name=\"AnimationAtStart\" value=\"-1\">
<param name=\"AllowScan\" value=\"-1\">
<param name=\"AllowChangeDisplaySize\" value=\"-1\">
<param name=\"AutoRewind\" value=\"0\">
<param name=\"Balance\" value=\"0\">
<param name=\"BaseURL\" value>
<param name=\"BufferingTime\" value=\"10\">
<param name=\"CaptioningID\" value>
<param name=\"ClickToPlay\" value=\"-1\">
<param name=\"CursorType\" value=\"0\">
<param name=\"CurrentPosition\" value=\"-1\">
<param name=\"CurrentMarker\" value=\"0\">
<param name=\"DefaultFrame\" value>
<param name=\"DisplayBackColor\" value=\"0\">
<param name=\"DisplayForeColor\" value=\"16777215\">
<param name=\"DisplayMode\" value=\"0\">
<param name=\"DisplaySize\" value=\"0\">
<param name=\"Enabled\" value=\"-1\">
<param name=\"EnableContextMenu\" value=\"-1\">
<param name=\"EnablePositionControls\" value=\"-1\">
<param name=\"EnableFullScreenControls\" value=\"0\">
<param name=\"EnableTracker\" value=\"-1\">
<param name=\"Filename\" value>
<param name=\"InvokeURLs\" value=\"-1\">
<param name=\"Language\" value=\"-1\">
<param name=\"Mute\" value=\"0\">
<param name=\"PlayCount\" value=\"0\">
<param name=\"PreviewMode\" value=\"true\">
<param name=\"Rate\" value=\"1\">
<param name=\"SAMILang\" value>
<param name=\"SAMIStyle\" value>
<param name=\"SAMIFileName\" value>
<param name=\"SelectionStart\" value=\"-1\">
<param name=\"SelectionEnd\" value=\"-1\">
<param name=\"SendOpenStateChangeEvents\" value=\"-1\">
<param name=\"SendWarningEvents\" value=\"-1\">
<param name=\"SendErrorEvents\" value=\"-1\">
<param name=\"SendKeyboardEvents\" value=\"0\">
<param name=\"SendMouseClickEvents\" value=\"0\">
<param name=\"SendMouseMoveEvents\" value=\"0\">
<param name=\"SendPlayStateChangeEvents\" value=\"-1\">
<param name=\"ShowCaptioning\" value=\"0\">
<param name=\"ShowControls\" value=\"-1\">
<param name=\"ShowAudioControls\" value=\"-1\">
<param name=\"ShowDisplay\" value=\"0\">
<param name=\"ShowGotoBar\" value=\"0\">
<param name=\"ShowPositionControls\" value=\"-1\">
<param name=\"ShowStatusBar\" value=\"0\">
<param name=\"ShowTracker\" value=\"-1\">
<param name=\"TransparentAtStart\" value=\"0\">
<param name=\"VideoBorderWidth\" value=\"0\">
<param name=\"VideoBorderColor\" value=\"0\">
<param name=\"VideoBorder3D\" value=\"0\">
<param name=\"AutoSize\" value=\"true\">
<PARAM name=\"enableContextMenu\" value=\"False\">
</OBJECT>";
LM wrote:
echo "
<object classid=\"clsid27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\" width='300' height='200'>
<param name=\"movie\" value='$file_fl'>
<param name=\"wmode\" value='transparent'>
<param name=\"quality\" value=\"high\">
<embed src='$file_fl' quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width='300' height='200></embed></object>
";
LM wrote:
Ở đây muốn điền thêm tên bài hát thì dễ thôi.
<?php
$danhsach["nhac"] = array(
"1" => "nhac1.mp3[hva]http://link1[hva]Anh Mãi yêu em 1",
"2" => "nhac2.mp3[hva]http://link2[hva]Anh Mãi yêu em 2",
"3" => "nhac3.mp3[hva]http://link3[hva]Anh Mãi yêu em 3",
"4" => "nhac4.mp3[hva]http://link4[hva]Anh Mãi yêu em 4",
"5" => "nhac5.mp3[hva]http://link4[hva]Anh Mãi yêu em 5"
);
$mpos = array_rand($danhsach["nhac"]);
$mnhac = explode("[hva]", $danhsach["nhac"][$mpos]);
$nhac_file = $mnhac[0];
$nhac_url = $mnhac[1];
$nhac_title = $mnhac[2];
?>
Rất dài và rất công phu (mặc dù khui nó ra có khi lại đổ ra 1 đống "tiểu tiết" nữa thì nguy, mất hứng... mất hứng)! Cái này chắc có ích cho 1 số người đây. Tôi nghĩ bạn đã mất rất nhiều công để sưu tầm nó, bởi w3schools không hào phóng cho nhiều thế đâu . Dẫu sao cũng có ích, chỉ có điều là cũng chẳng có gì mới cả!!!
Tóm lại, nếu bạn không đưa ra cái gì mới hơn là cái "mảng giả" nửa vời của bạn thì chúng ta dừng ở đây vậy. Chúng ta đã off topic nhiều rồi đấy.
Còn nữa,
LM wrote:
Nếu muốn trao đổi kỹ hơn, qua PHP.net.vn nhiều coder php sẽ giúp bạn TommyRader.
Sao thế? Chuyện nhỏ thôi mà, cần gì phải đi đâu? Có vẻ như mình không được chào đón ở đây (nơi mà người ta "làm" những thứ "sang" hơn kia: hacking & security).
Còn nữa,
LM wrote:
Bạn nên đọc sơ qua coi PHP nó code ra sao. :>.
...
Không nhầm thì bạn là dân "chính quy", suy nghĩ đơn giản một chút đi nhé.
1 là đã tốt nghiệp ĐH,CĐ
2 là đang còn đi học
Ở đây chúng ta bàn về technique, không phải personality. Bạn biết gì về tôi mà "phán vội" như thế. Tôi thích sự thẳng thắn, và chỉ thẳng thắn, đừng đi xa hơn MOD à!
|
|
|
|
|
[Question] Re: Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
26/08/2006 03:09:23 (+0700) | #25 | 18041 |
|
SuperChicken
Elite Member
|
0 |
|
|
Joined: 11/07/2006 18:31:27
Messages: 635
Location: bottom of hell
Offline
|
|
Cả hai đều đi wá xa vấn đề, và theo tui thì thang2rs đã mở màn cho cuộc tranh cãi này. Thật tình thì tui không thích những người xét nét đến từng chi tiết nhỏ nhất như vậy (mặc dù trong IT như vậy là tốt, tui chỉ ko thích cái tính cách đó thôi), và tui cũng thấy là bạn LM nói có vẻ đúng, mặc dù tui là sinh viên nhưng tui cũng ko đến nỗi "chính quy" như bạn, vậy có thể bạn là 1 ông giảng viên chăng? Bạn có cần phải phân tích mỗi bài đến từng câu từng chữ vậy ko? Ở đây tui thấy đưa ra ví dụ như LM vậy là ok, vì code đơn giản, dễ hiểu, chứ nếu xét nét đến tận cùng như bạn thì chắc cái code dài cả chục trang rồi, mà bạn có dám chắc bạn đã kiểm soát 100% trường hợp có thể xảy ra chưa? Vì vậy, theo tui cái sample của LM là đạt chuẩn (tuy nhiên ý kiến của thang2rs về việc dùng key để lưu tên file cũng rất hay, tuy nhiên nó lại ko thể chèn thêm thông tin gì nữa). |
|
|
|
|
[Question] Re: Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
26/08/2006 05:44:21 (+0700) | #26 | 18103 |
xyber
Elite Member
|
0 |
|
|
Joined: 25/03/2003 08:24:25
Messages: 29
Offline
|
|
- To thang2rs: Tôi nghĩ dùng query để lấy một đối tượng ngẫu nhiên như pồ khá tối ưu nhưng không biết là người trong cuộc có lưu thông tin file trong database hay không mà thôi )
-To LM: Hehe chắc lúc đầu pồ "khua" dữ quá nên khiến pồ thang2rs tò mò ý thôi hehe Thật ra nếu đã đưa vào array rồi phải explore ra thì cũng không phải là một giải pháp tốt nhất. Sửng dụng multi-dimensional array trong trường hợp này có lẽ tốt hơn.
Vài lời. |
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
26/08/2006 12:04:55 (+0700) | #27 | 18184 |
|
LM
Moderator
|
Joined: 16/04/2002 09:27:22
Messages: 129
Offline
|
|
To thang2rs
Yes, tui cũng thích sự thẳng thắn hehe, zui à nha :>
Không có gì mới ở đây, chúng ta tiếp tục,
LM không hiểu bạn, "có cái gì mới" ở đây là sao, ặc ặc. Yêu cầu ra sao để cần mình làm như vậy, làm sao cho nó đơn giản đủ dùng cho mục đích của mình đưa ra, mà cụ thể là Tomrader.
Như vậy, trong trường hợp của bạn, không thể dùng bất kì chuỗi hay kí tự nào khác, kể cả "|, || , +, hoặc thậm chí thích [HVA] , |hva|", để làm việc này. Bởi lẽ đơn giản là nếu tên file (và cả link nữa) chứa ít nhất 1 trong các chuỗi hay kí tự kể trên thì bạn sẽ "chia" thế nào đây.
Hình như bạn chưa bao giờ code qua PHP hẻ, ặc ặc. Bạn phân tích cũng khá hay đấy.
Tạm gác vụ quan trọng hoá vấn đề, separator ở đây đã nói như trên rồi.
Th1: Nếu như danh sách bài hát mà Tomrader đã nắm thì có thể dễ dàng nhìn ra những ký tự nào mà mình đặt dùng để "chia" có trong đó hay không, và hỏi thật ngay cả ký tự dùng làm separator ở đây là | hay ||, hay|+| có tên bài hát nào thường có không, ặc ặc . ||.
Ở đây LM show ra là chủ yếu "phục vụ" cho yêu cầu của Tomrader, chứ KHÔng Phải dùng hết cho tất cả các yêu cầu khác.
Lại nữa nè ặc ặc:
Chẳng có unicode hay TV có dấu nào ở đây cả (mặc dù lôi nó ra bạn sẽ gặp lôi thôi đấy). Có thể bạn sẽ nói là bạn sẽ "kiểm soát" tên file và link? Tất nhiên bạn có thể làm được điều này nhưng như vậy bạn sẽ có thêm khối việc để làm đấy chứ không "nhanh lẹ" như bạn nói đâu.
Hehe, nhanh hay lẹ còn tuỳ thuộc vào kinh nghiệm bạn nhé :>. Cứ lập chủ đề mới để nói về cái đó đi nào :>. Cũng đang rãnh mà . Thì đương nhiên đã biết được tất cả tên, file của 10 bài hát, chứ đâu phải làm cái gì lớn hơn :>
Có thể tôi hơi "cầu toàn" (mà như bạn nói là "chính qui") nhưng rõ ràng cái "mảng giả" của bạn là thiếu triệt để. Hơn nữa nó cũng chẳng đơn giản hơn tí nào so với:
Lại nữa rồi, Yes, đương nhiên là sẽ không triệt để ... nhưng với yêu cầu của Tomrader thì như vậy có triệt để chưa hehe :>. Tuỳ trường hợp nào thì dùng và không dùng :>
Đọc cái này thấy mắc cười ghê
Làm tôi tưởng "mình sắp được thưởng thức 1 món ngon đây". Lỗi tại tôi, lỗi tại tôi, nó chỉ có thế thôi.
Tomrader cho trứng và rau, LM làm món rau xào trứng, mà thangrs lại nghĩ sẽ có gà , vịt ặc ặc. Nghĩ "xa" quá :>
Rất dài và rất công phu (mặc dù khui nó ra có khi lại đổ ra 1 đống "tiểu tiết" nữa thì nguy, mất hứng... mất hứng)! Cái này chắc có ích cho 1 số người đây. Tôi nghĩ bạn đã mất rất nhiều công để sưu tầm nó, bởi w3schools không hào phóng cho nhiều thế đâu . Dẫu sao cũng có ích, chỉ có điều là cũng chẳng có gì mới cả!!!
Tóm lại, nếu bạn không đưa ra cái gì mới hơn là cái "mảng giả" nửa vời của bạn thì chúng ta dừng ở đây vậy. Chúng ta đã off topic nhiều rồi đấy.
Còn nữa,
Bạn xem kỹ lai đi nhé, nhữngthứ mình đưa ra chủ yếu là để phục vụ cho tác giả của chủ đề này, làm được và mau chóng hoàn thành cái còn đang hỏi và vướng mắc, chứ LM đâu có mục đích "khoe" để những người có "đầu óc" cao siêu quá xem rồi phát biểu như bạn :>.
Bạn lại yêu cầu cái mới. Mới để làm gì, quay lại vấn đề chính là LM muốn cho tác giả của chủ đề Hiểu và dễ làm, còn muốn công nghệ hay kỹ thuật mới gì đó thì nên mở chủ đề mới cùng nhau thảo luận.
LM chẳng mất nhiều gì công sức, hehe, paste ra cái đó với mục đích gì, và tại sao đưa ra cái W3xìcun kaka, vì muốn tác giả chủ đề Tomrader có làm gì đỡ mất công, và trong 2 cái object html dùng windows media, và Flashplayer, gồm những param gì, tại sao như vậy thì lên đó mà xem. :> Còn bạn thangrs cao siêu quá nên chắc hơi thừa :>
Sao thế? Chuyện nhỏ thôi mà, cần gì phải đi đâu? Có vẻ như mình không được chào đón ở đây (nơi mà người ta "làm" những thứ "sang" hơn kia: hacking & security).
hehe, công việc không phân biệt sang hèn, cái sang hèn là do mọi người đánh giá cái sản phẩm mà họ làm ra. Cái đó đưa ra, la để cho Tomrader thấy, nếu sau này có théc méc gì mà bên HVA nhiều User lạc đề hay đi xa quá, khong dúng trọng tâm thì qua đó. Hehe
Ở đây chúng ta bàn về technique, không phải personality. Bạn biết gì về tôi mà "phán vội" như thế. Tôi thích sự thẳng thắn, và chỉ thẳng thắn, đừng đi xa hơn MOD à!
Hehe, OK i see, bạn cứ xem lại, những gì mình làm và bạn làm thì xem ai đi xa hơn xo với chủ đề này.
Các anh cho em hỏi, chẳng hạn như mình muốn chơi ngẫu nhiên 1 bài hát trong số 10 bài được chỉ định thì mình dùng mã PHP thế nào vậy các anh?
Và tương tự nếu là hình ảnh, thơ...
Em xin cảm ơn !
Bạn thangrs nên xem kỹ yêu cầu của topic, xét trên khía cạnh của 1 newbie thì hướng dẫn và trả lời ra sao để họ hiểu và dễ làm. Chứ đừng vẽ vời cái này cái khác. Tập đánh thẳng vào vấn đề nếu như giúp được họ, còn cứ cái kiểu xem những đóng góp của người khác rồi phân tích thêm mắm thêm muối thì có lẽ chủ của chủ đề Tomrader không dám ứng dụng. Tua sure là bạn người phía Bắc :>. Tui dân NAM, thích cái gì cũng đơn giản mà hiệu quả :> hehe.
Người ta yêu cầu có chút, mà suy rộng ra quá, kiểu lập luận chính quy, chặt chẽ thì trong trường hợp của Tomrader là không nên và cũng không thích hợp. "Cái sâu xa" cái nghĩ rộng đó để dành cho những cái nào to lớn hơn.
Một yêu cầu cụ thể đã được xác định thì dùng cách nào nhanh gọn dễ hiểu cho người đó, chỉ đủ cho mục đích đó.
Người "đứng ngoài quan sát" thì nên nhìn thẳng vấn đề, "góp ý" đúng cho cái đó, đừng vẽ ra thêm :>
Mình dốt tiếng Anh lắm, xin đừng nói mấy từ chính quy, bài bản qua. Dám chắc bạn nói "separator " gì gì đó, newbie hiểu hông.
To xybershadow:
Sửng dụng multi-dimensional array trong trường hợp này có lẽ tốt hơn.
Yes, nhưng nếu Newbie mà không biết array là gì thì dùng cách trên thì nhiều khi sẽ dễ hiểu hơn :>. Có 10 bài hát mà dùng cái đó thì rối rắm mịt mù :>. Dùng cái mảng giả kết hợp tạo
separator hợp lý thì dễ hơn đó.
Khua gì đâu trời, hôm bữa có lẽ buồn viết vài dòng coi bộ lãng mạn, nhieu người hiểu nhầm :>. Ai quen LM cũng biết tính thật thà ko khua không bomb :>
|
|
|
|
|
[Question] Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
27/08/2006 08:06:12 (+0700) | #28 | 18331 |
|
canh_nguyen
Elite Member
|
0 |
|
|
Joined: 23/08/2004 18:55:09
Messages: 775
Location: Broken dream
Offline
|
|
Thanks Pro : thang2nr, kidhackervn, LM...
Em cũng chỉ mới tự học PHP 1 tháng nay những bài góp ý phân tích của các pro thật hữu ích. ^^ |
|
|
|
|
[Question] Re: Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
28/08/2006 05:03:23 (+0700) | #29 | 18547 |
rauvatrung
Member
|
0 |
|
|
Joined: 27/08/2006 15:56:50
Messages: 4
Offline
|
|
Đọc qua cái topic, thấy zui, đăng kí cái nick nhảy dô có vài lời với LM )
Tui dân miền nam (đẻ SG, ba tập kết, mẹ Hà Nam) xin được nói chuyện với ông theo kiểu dân miền nam, được không??? Xin lỗi trước nếu như tui nói thẳng.
Ông code như vầy, giả sử đã có file và link:
$file='rau';
$link='trứng';
Ông trộn 2 thứ với nhau:
$rauxaotrung=array(
"1"=>"$file[hva]$link"
);
Sau đó ông chia nó ra:
list($file,$link)=explode("[hva]",$rauxaotrung["1"]);
Cuối cùng ông được:
$file='rau';
$link='trứng';
Đúng không?
Tui hỏi, sau khi trộn 2 thứ với nhau để có món rau xào trứng ông làm gì với nó? Ông không định đưa ra cái này: "rau[hva]trứng", đúng không?
Rồi sau đó ông lại chia nó ra để có 'rau' và 'trứng'. Cuối cùng cũng là 'rau' và 'trứng'!!! $file và $link đã có ngay từ đầu rồi, sao ông không dùng?
Như vậy rõ ràng $file=>$link như bác thangrs (xin lỗi bác không gõ được số 2) phân tích là đúng rồi. Lúc nào $file cũng là $file và $link cũng là $link. Với lại cái associative array trong PHP ai mà không biết, có gì cao siêu đâu. Đó là chưa nói cái vụ chia không khéo thì:
$file='rau dính 1 ít trứng';
$link='trứng dính 1 ít rau';
Ông nói ông nhìn thấy trước tên file nên sẽ chọn separator không trùng với tên file, đúng không? Ok, nhưng như vậy khi upload file ông phải parse cái tên file, nếu nó có [hva] ông phải đổi nó sang 1 cái gì khác (tui cũng không biết nó là cái gì) ). Cái này bác thangrs nói rất rõ nhưng ông không chịu hiểu.
Chẳng có unicode hay TV có dấu nào ở đây cả (mặc dù lôi nó ra bạn sẽ gặp lôi thôi đấy). Có thể bạn sẽ nói là bạn sẽ "kiểm soát" tên file và link? Tất nhiên bạn có thể làm được điều này nhưng như vậy bạn sẽ có thêm khối việc để làm đấy chứ không "nhanh lẹ" như bạn nói đâu.
Tui nói hết rồi, giờ tui hỏi ông cái nào đơn giản, nhanh lẹ, dễ hiểu hơn cái nào?
Ông đừng nói là ông làm cho newbie. Ai nói ông Tommyrader là newbie? Mà có là newbie thì cái cách ông dùng dễ hiểu, đơn giản chỗ nào? Bác thangrs đã nói là "nửa vời" rồi mà ông còn cố cãi. Ông đừng nhìn đâu cũng thấy newbie. Ông nhìn lại ông coi!
Còn cái vụ technique với personality nữa chứ. Người ta nói là ông đừng đi xa hơn technique, ông lại hiểu là topic!!!
Rồi ông ặc ặc, hehe, bó tay.com toàn tập đầy bài viết. Ông thấy bác thangrs có dùng mấy chữ này đâu. Người ta nói bằng cái đầu, ông bằng cái miệng. ông không hiểu thì ông hỏi lại chứ phán người ta nào là DH, CD nào là mới code PHP... thì ông đúng là ... MOD of NEWBIEs. Rồi cái vụ thách thức mở topic mới nữa chứ! Người ta ớn ông qu1a rồi!!!
Ui, mỏi tay quá rồi mà sao không thấy ai hết vậy cà? Bác thangrs đâu qua nay không thấy? Mất hứng rồi phải không? Tui thấy bác có bài góp ý bản dịch gì đó hay lắm sao không thấy ai trả lời? Nếu đúng thì sửa không đúng thì cũng phải có ý kiến gì chứ. Không thì del nó đi, treo lửng lơ đó làm gì. Hay do bác đụng tới MOD ) ?
Xin lỗi, mệt quá... tui nói thẳng. Nếu các MOD không thích tui thì cứ ban nick chứ đừng xoá bài này, công phu dữ lắm đấy!!!
|
|
|
|
|
[Question] Re: Hiện thị ngẫu nhiên đối tượng đươc chỉ định bằng PHP? |
29/08/2006 07:17:02 (+0700) | #30 | 18842 |
|
LM
Moderator
|
Joined: 16/04/2002 09:27:22
Messages: 129
Offline
|
|
Hehe, Thanks.
Lời góp ý của rauvatrung hết sức thẳng thắn. Lm thích như vậy.
OK bắt đầu nào.
Bạn đọc kỹ yêu cầu chưa nào , Tại sao lại ghép rau và trứng zô chung rồi tách ra.? Vì đó là cách gôm hết zô cùng 1 cái gọi là mảng, được đánh dấu từ 1 - 10, rồi random ra theo yêu cầu của người yêu cầu :>.
Rồi sau đó ông lại chia nó ra để có 'rau' và 'trứng'. Cuối cùng cũng là 'rau' và 'trứng'!!! $file và $link đã có ngay từ đầu rồi, sao ông không dùng?
Rau và trứng có ngay từ đầu, điều đó hiển nhiên, nhưng để "giải quyết" yêu cầu của Tomrader là xuất ngẫu nhiên thì, cách như bạn có ổn không :>. Đặt từ 1 - đến 10, tại sao không gôm hết vô mảng rồi tự làm random của mảng ra. Chưa hết là sẽ ứng dụng cho thơ, văn gì gì đó của tomrader :>. Đặt kiểu như vậy chắc find and replace đến phờ râu quá, chi bằng thay một cái "nhac" là xong, không sợ trùng biến $file và $rau :>.
Chi bằng đặ dạng gôm vào:
$danhsach["nhac"] = array(
);
Thay thế nhac bằng cái khác sẽ ứng làm cho cái khác nhanh hơn như thơ văn chẳng hạn. :> Còn cách của bạn thì seo :>
Ông nói ông nhìn thấy trước tên file nên sẽ chọn separator không trùng với tên file, đúng không? Ok, nhưng như vậy khi upload file ông phải parse cái tên file, nếu nó có [hva] ông phải đổi nó sang 1 cái gì khác (tui cũng không biết nó là cái gì ). Cái này bác thangrs nói rất rõ nhưng ông không chịu hiểu.
Tui cũng nói rất rõ mà bạn cũng không chịu hiểu :>.
Còn cái vụ technique với personality nữa chứ. Người ta nói là ông đừng đi xa hơn technique, ông lại hiểu là topic!!!
Rồi ông ặc ặc, hehe, bó tay.com toàn tập đầy bài viết. Ông thấy bác thangrs có dùng mấy chữ này đâu. Người ta nói bằng cái đầu, ông bằng cái miệng. ông không hiểu thì ông hỏi lại chứ phán người ta nào là DH, CD nào là mới code PHP... thì ông đúng là ... MOD of NEWBIEs. Rồi cái vụ thách thức mở topic mới nữa chứ! Người ta ớn ông qu1a rồi!!!
Ui, mỏi tay quá rồi mà sao không thấy ai hết vậy cà? Bác thangrs đâu qua nay không thấy? Mất hứng rồi phải không? Tui thấy bác có bài góp ý bản dịch gì đó hay lắm sao không thấy ai trả lời? Nếu đúng thì sửa không đúng thì cũng phải có ý kiến gì chứ. Không thì del nó đi, treo lửng lơ đó làm gì. Hay do bác đụng tới MOD ?
Xin lỗi, mệt quá... tui nói thẳng. Nếu các MOD không thích tui thì cứ ban nick chứ đừng xoá bài này, công phu dữ lắm đấy!!!
hehe, làm gì mà căng thẳng vậy, dùng "đầu" để nói chuyện mà, :> hehe.
Tui không nói là Tomrader là Newbie, Newbie ở đây nói chung là những người không hiểu, hoặc mới code php thì nếu zô HVA vô tình đọc thì cũng có thể hiểu :>
Tui không nói là hiểu hết của "người cao siêu", nhìn nhận vấn đề đi nào bạn, đọc đến mấy dòng cuối mắc cười ghê ).
Cứ thẳng thắng trao đổi, MOD hay không MOD, user hay không user đều là Người hết mà :>.
Đọc thêm câu này càng tức cười hơn
Còn cái vụ technique với personality nữa chứ. Người ta nói là ông đừng đi xa hơn technique, ông lại hiểu là topic!!!
Rồi ông ặc ặc, hehe, bó tay.com toàn tập đầy bài viết. Ông thấy bác thangrs có dùng mấy chữ này đâu. Người ta nói bằng cái đầu, ông bằng cái miệng. ông không hiểu thì ông hỏi lại chứ phán người ta nào là DH, CD nào là mới code PHP... thì ông đúng là ... MOD of NEWBIEs. Rồi cái vụ thách thức mở topic mới nữa chứ! Người ta ớn ông qu1a rồi!!!
Không khí đang căng thẳng thì dùng vài từ "của" miệng hay nói, để giảm sự căng thẳng đó. hehe, cho phép bótay.com lần nữa ).
Yes, tui là NEWBIE, nên bạn cho MOD of newbiews của đúng ). Miễn bình luận câu nói quá hay của bạn.
Cứ thẳng thắng trao đổi, hehe:
Xin lỗi, mệt quá... tui nói thẳng. Nếu các MOD không thích tui thì cứ ban nick chứ đừng xoá bài này, công phu dữ lắm đấy!!!
Tui nói cái gì xa, bạn tự ngẫm câu trên của bạn đi rồi so sánh những điều tui nói, :>. Tui nghĩ chắc bạn cũng đọc hết các bài trong topic này :>.
|
|
|
|
|
|
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|