Diễn đàn Khoa học Kỹ thuật: Select 2 bảng trong MySQL - Diễn đàn Khoa học Kỹ thuật

Jump to content

Đóng/Mở Từ khóa

Chưa có từ khóa nào
Trang 1 của 1
  • Bạn không thể mở chủ đề mới
  • Bạn không thể trả lời chủ đề này

Select 2 bảng trong MySQL Help với anh BabyWofts

#1 User is offline   donline1 

  • Thiếu Nhi
  • Pip
  • Xem blog
  • Nhóm: Thành Viên Mới
  • Bài viết: 14
  • Gia nhập: 17-January 08

Gửi lên vào 04 February 2009 - 10:31 PM

Hiện tại em đang có nhu cầu truy xuất dữ liệu từ SQL ra web = PHP.

Tình hình là như vầy : Nội dung em lưu vào SQL thông qua 2 bảng

Em muốn truy xuất dữ liệu từ bảng 1 ra và so sánh 1 cột trong bảng 1 này = với 1 cột trong bảng 2...và từ đó có thể truy xuất dữ liệu 1 cột trong bảng  2 ra.Ví dụ :

Bảng 1 em có các cột là ID - Tiltle - Username

Bảng 2 em có cột : ID2 - Noidung

Em dùng php truy xuất bảng 1 với các cột và so sánh cột ID = cột ID2 để có thể lấy dữ liệu là cột NoiDung ra..vậy cho m hỏi các  dòng lệnh như thế nào anh.Em chỉ biết truy xuất dữ liệu từ bảng 1 ra mà ko biết hàm so sánh với bảng 2 để lấy dữ liệu.

Giúp em với.


welcome vietyoung.info giao lưu giải trí kết bạn
0

#2 User is online   BabyWolf 

  • Đứa con của Rừng Xanh
  • PipPipPipPipPipPipPip
  • Xem blog
  • View gallery
  • Nhóm: @Webmaster@
  • Bài viết: 2155
  • Gia nhập: 28-January 03

Gửi lên vào 05 February 2009 - 05:16 AM

Bạn dùng LEFT JOIN đi. 01.gif
Gặp bất kỳ người nào tôi cũng tìm được cái để học từ họ
Liên hệ: - YM: ktcn_net - My Blog: http://360.yahoo.com/ktcn_net
Khuyến mãi: Tăng đôi dung lượng web hosting - giá không đổi
0

#3 User is offline   donline1 

  • Thiếu Nhi
  • Pip
  • Xem blog
  • Nhóm: Thành Viên Mới
  • Bài viết: 14
  • Gia nhập: 17-January 08

Gửi lên vào 05 February 2009 - 09:22 AM

hướng dẫn cụ thể đi anh...em mù tịt vấn đề này roài
welcome vietyoung.info giao lưu giải trí kết bạn
0

#4 User is offline   nvh1505 

  • SPAM KILLER
  • PipPipPipPipPip
  • Nhóm: Thành Viên Ưu Tú
  • Bài viết: 628
  • Gia nhập: 06-February 04

Gửi lên vào 05 February 2009 - 09:47 AM

SQL LEFT JOIN Syntax

<!--c1-->
<!--ec1-->
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

<!--c2-->
<!--ec2-->



trong trường hợp của bạn:

table1 --------------------------------|
ID1----------Title----------Username
1 ---------- T1 ----------User1
2 ---------- T2 ----------User2

table2 -------------------|
ID2----------Noidung
1 ---------- Noi dung 1
100---------- Noi dung 2

<!--c1-->

<!--c2-->SELECT noidung
FROM table2
LEFT JOIN table1
ON table2.ID2=table1.ID1
<!--ec2-->


Sẽ ra kết quả là "Noi dung 1"


0

#5 User is offline   donline1 

  • Thiếu Nhi
  • Pip
  • Xem blog
  • Nhóm: Thành Viên Mới
  • Bài viết: 14
  • Gia nhập: 17-January 08

Gửi lên vào 05 February 2009 - 12:21 PM

àh mình còn thiếu 1 vài chi tiết...

 

ID loại tên nhóm
1 Y tui A
2 H ba B

 

ID Chi tiết Nhóm
1   A
2   B
3   D
1   A
4   C

mình query thế nào để lấy được dữ liệu của nhóm A..cái này gần giống với việc lấy dữ liệu từ forum ra 1 trang khác riêng biệt..nhưng chỉ lấy bài nào mình chỉ định nó thuộc nhóm forum_id nào và post_id đó...mình cũng ko biết giải thích làm sao nữa...Nhưng trc mắt mình sẽ thử cách của bạn trc rồi sẽ tìm thêm...hixhix


Bài viết đã chỉnh sửa bởi donline1: 05 February 2009 - 12:45 PM

welcome vietyoung.info giao lưu giải trí kết bạn
0

#6 User is online   BabyWolf 

  • Đứa con của Rừng Xanh
  • PipPipPipPipPipPipPip
  • Xem blog
  • View gallery
  • Nhóm: @Webmaster@
  • Bài viết: 2155
  • Gia nhập: 28-January 03

Gửi lên vào 05 February 2009 - 11:29 PM

Bạn không đặt tên table nên mình tạm đặt là table1 và table2

SELECT * FROM TABLE2 as tb2 RIGHT JOIN TABLE1 AS tb1 ON tb1.nhom=tb2.nhom

Bạn không nói rõ điều kiện nên query trên là lấy hết khi theo table1 khi thoả điều kiện join.


Gặp bất kỳ người nào tôi cũng tìm được cái để học từ họ
Liên hệ: - YM: ktcn_net - My Blog: http://360.yahoo.com/ktcn_net
Khuyến mãi: Tăng đôi dung lượng web hosting - giá không đổi
0

#7 User is offline   donline1 

  • Thiếu Nhi
  • Pip
  • Xem blog
  • Nhóm: Thành Viên Mới
  • Bài viết: 14
  • Gia nhập: 17-January 08

Gửi lên vào 06 February 2009 - 10:35 PM

Cám ơn anh....do cần gắp nên em có  đi hỏi 1 số người giúp đỡ và đã làm được.


mysql_query("select  tên,chitiet,loai FROM table1, table2 where nhom = nhom and table1.id = table2.id and table1.id = 2 LIMIT 0, 10");
     
 
Em có tăng thêm 1 số đk cho nó chính xác hơn là chỉ chọn những data nào có ID là 2 04.gif .. thanks mọi người

Nhưng hiện tại em vẫn còn 1 thắc mắc nho nhỏ....là em cần 1 đoạn code trích data hiển thị ra chỉ khoản 25 - 30 từ đầu tiên trong phần chitiet sẽ hiển thị...Không biết anh có thể giúp thêm cho em không 04.gif

 

 

Cám ơn mọi người đã giúp đỡ


welcome vietyoung.info giao lưu giải trí kết bạn
0

#8 User is online   BabyWolf 

  • Đứa con của Rừng Xanh
  • PipPipPipPipPipPipPip
  • Xem blog
  • View gallery
  • Nhóm: @Webmaster@
  • Bài viết: 2155
  • Gia nhập: 28-January 03

Gửi lên vào 06 February 2009 - 11:13 PM

Dùng kiểu select 2 table cũng được nhưng có điều là nhiều khi bị ra kết quả nhiều row không đúng ý. Thường thì số row trả về sẽ bằng với số row của bảng nhiều nhất. Nói chung tùy trường hợp mà ứng dụng.

Còn cắt chuỗi thì trong php đã có hàm substr rồi bạn tự nghiên cứu và ứng dụng đi. 01.gif


Gặp bất kỳ người nào tôi cũng tìm được cái để học từ họ
Liên hệ: - YM: ktcn_net - My Blog: http://360.yahoo.com/ktcn_net
Khuyến mãi: Tăng đôi dung lượng web hosting - giá không đổi
0

#9 User is offline   donline1 

  • Thiếu Nhi
  • Pip
  • Xem blog
  • Nhóm: Thành Viên Mới
  • Bài viết: 14
  • Gia nhập: 17-January 08

Gửi lên vào 07 February 2009 - 02:04 AM

hehe..em lục ra đc code của anh để gán vào  Và đây là k

==========================================================


$new = mysql_query("select start_date,views, posts, starter_name, description, title, post,tid FROM ibf_topics, ibf_posts where topic_id = tid and ibf_topics.forum_id = ibf_posts.forum_id and ibf_topics.forum_id = 7 and ibf_posts.new_topic = 1 ORDER BY start_date DESC LIMIT 0, 20");
    
 while ($new1 = mysql_fetch_array($new)){
  ++$newdlnbsp;
$bwText = $new1[post];

 $bwText = trim(stripslashes($bwText));

 $maxTextLength=300;
 $aspace=" ";
 if(strlen($bwText) > $maxTextLength ) {
  $bwText = substr(trim($bwText),0,$maxTextLength);
  $bwText = substr($bwText,0,strlen($bwText)-strpos(strrev($bwText),$aspace));
  $bwText = $bwText.'...';
 }
 $topic[bw_post] = $topic[start_date]."\n".$bwText;

News1.=  "


       
        $newdl[title]

            G&#7917;i b&#7903;i : $new1[starter_name]


            Sáng tác : $new1[description]


$topic[bw_post]

       

S&#7889; l&#7847;n xem : $newdl[views] - Bình lu&#7853;n : $new1[posts]


   



";

 

}
?>

 

====================================================

Tuy nhiên,bây giờ em lại muốn phân trang ra nhưng lại không biết làm sao...test bao nhiêu code rồi mà hok được..đều không phù hợp với code này...anh BW có thể giúp em hok...thanks anh nhìu ^..^


Bài viết đã chỉnh sửa bởi donline1: 19 April 2010 - 08:51 AM

welcome vietyoung.info giao lưu giải trí kết bạn
0

#10 User is online   BabyWolf 

  • Đứa con của Rừng Xanh
  • PipPipPipPipPipPipPip
  • Xem blog
  • View gallery
  • Nhóm: @Webmaster@
  • Bài viết: 2155
  • Gia nhập: 28-January 03

Gửi lên vào 07 February 2009 - 04:48 AM

Đây là hàm cutstring bạn có thể sử dụng:
function CutString($string = "", $num = 20){
		 if(strlen($string) > $num)
		{
			$result =  substr($string,0,$num); //cut string with limited number
			 $position = strrpos($result," "); //find position of last space
	 		if($position)
				$result =  substr($result,0,$position); //cut string again at last space if there  are space in the result above
			$result .= ' ...';
	 	}
		else {
			$result = $string;
		}
     	return $result;
	}

Gặp bất kỳ người nào tôi cũng tìm được cái để học từ họ
Liên hệ: - YM: ktcn_net - My Blog: http://360.yahoo.com/ktcn_net
Khuyến mãi: Tăng đôi dung lượng web hosting - giá không đổi
0

#11 User is offline   donline1 

  • Thiếu Nhi
  • Pip
  • Xem blog
  • Nhóm: Thành Viên Mới
  • Bài viết: 14
  • Gia nhập: 17-January 08

Gửi lên vào 07 February 2009 - 12:39 PM

anh đưa hàm thế này em bik nhét vào đâu 02.gif .... rồi còn truy xuất ra trang nữa chứ..hix hix


welcome vietyoung.info giao lưu giải trí kết bạn
0

#12 User is online   BabyWolf 

  • Đứa con của Rừng Xanh
  • PipPipPipPipPipPipPip
  • Xem blog
  • View gallery
  • Nhóm: @Webmaster@
  • Bài viết: 2155
  • Gia nhập: 28-January 03

Gửi lên vào 07 February 2009 - 02:11 PM

Thì bạn muốn cắt chũi nào thì truyền vào chuỗi đó và ố lượng từ cần để lại vào.


Gặp bất kỳ người nào tôi cũng tìm được cái để học từ họ
Liên hệ: - YM: ktcn_net - My Blog: http://360.yahoo.com/ktcn_net
Khuyến mãi: Tăng đôi dung lượng web hosting - giá không đổi
0

#13 User is offline   donline1 

  • Thiếu Nhi
  • Pip
  • Xem blog
  • Nhóm: Thành Viên Mới
  • Bài viết: 14
  • Gia nhập: 17-January 08

Gửi lên vào 07 February 2009 - 04:27 PM

à..vấn đề đó em đã giải quyết đc ở trên rồi..hiện thời em đang tìm cách phân chia trang ra , và em đã add và sử dụng đc code này :

 $rows = mysql_num_rows($newdown);
 
     if ($rows>0)

     {

           $num_page = ceil($rows/10);

           if ($num_page>1)

           {

                 for ($i=1;$i<$num_page+1;$i++)

                  {

                        if ($i==$page) $show_page .= " [$i]";
    
                        else $show_page .= " [$i]";

                  }

           }   
 

Tuy nhiên,có 1 vấn đề là khi nhấn chuyển qua trang 2 thì em không biết làm sao...hixhix nó chỉ hiển thị số và link ảo 02.gif

Có cách nào fix ko anh..hay là code bị thiếu ? 02.gif


welcome vietyoung.info giao lưu giải trí kết bạn
0

Chia sẽ chủ đề này:


Trang 1 của 1
  • Bạn không thể mở chủ đề mới
  • Bạn không thể trả lời chủ đề này


Thiết kế website | Quảng bá website | thiet ke website | Tên miền | Lưu trữ web | may phat dien