PDA

View Full Version : انتخاب رکورد های متفاوت از دو جدول متفاوت MYSQL در یک کوئری !



siavashsay
یک شنبه 24 دی 1391, 19:25 عصر
دوستان میخوام بدونم چطور میشه از 2 تا جدول کاملا متفاوت با رکودهای متفاوت توی یک کوئری دستور SELECT رو انجام داد !
من قبلا این 2 تا کوئری رو داشتم :

SELECT * FROM `users` WHERE `username`='$username'

SELECT * FROM `comments`
حالا میخوام ادغام کنم اینارو توی یک کوئری !
چطور میشه ؟!
با تشکر :)

Borland.C
یک شنبه 24 دی 1391, 19:36 عصر
تو comments هم فیلد username وجود داره؟

siavashsay
یک شنبه 24 دی 1391, 19:38 عصر
نه - گیرم همینه - کاملا متفاوت هست !
راحت بگم - این 2 تا جدول هیچ ربطی به هم ندارن !

Borland.C
یک شنبه 24 دی 1391, 19:44 عصر
اینون 1 امتحان کنید :چشمک:

SELECT * FROM `users`,`comments` WHERE `users.username`='$username'

siavashsay
یک شنبه 24 دی 1391, 19:49 عصر
نشد :

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in... on line 59

$ M 3 H R D A D $
یک شنبه 24 دی 1391, 20:06 عصر
جدول و بزارید بهتره تا دوسان تو لوکال تست کنند

Borland.C
یک شنبه 24 دی 1391, 20:07 عصر
تست کردم مشکلی نداشت!
1بار داخل phpmyadmin امتحان کنید

Borland.C
یک شنبه 24 دی 1391, 20:25 عصر
اینم 1 تست عملی با php هم رو لوکال هم رو 2 سرور مجزا
دیتابیس نمونه

CREATE TABLE IF NOT EXISTS `ans_msg` (
`ans_id` int(11) NOT NULL,
`ans_code` int(11) DEFAULT NULL,
`ans_date` varchar(10) COLLATE utf8_spanish_ci DEFAULT NULL,
`ans_time` varchar(8) COLLATE utf8_spanish_ci DEFAULT NULL,
`ans_msgcol` varchar(45) COLLATE utf8_spanish_ci DEFAULT NULL,
`ans_from` bigint(20) DEFAULT NULL,
`ans_to` bigint(20) DEFAULT NULL,
`ans_msg` text COLLATE utf8_spanish_ci,
`ans_mv` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`ans_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;

--
-- Dumping data for table `ans_msg`
--

INSERT INTO `ans_msg` (`ans_id`, `ans_code`, `ans_date`, `ans_time`, `ans_msgcol`, `ans_from`, `ans_to`, `ans_msg`, `ans_mv`) VALUES
(2, 2, '1391', '10:10', '4', 22, 22, 'test2', 1),
(1, 1, '1391', '10:10', '1', 11, 11, 'test', 1);

-- --------------------------------------------------------

--
-- Table structure for table `ans_user`
--

CREATE TABLE IF NOT EXISTS `ans_user` (
`u_code` int(11) NOT NULL,
`u_name` varchar(45) COLLATE utf8_persian_ci DEFAULT NULL,
`u_start` int(11) DEFAULT NULL,
`u_end` int(11) DEFAULT NULL,
`u_credit` int(11) DEFAULT NULL,
`u_mv` int(11) DEFAULT '1',
`u_user` varchar(10) COLLATE utf8_persian_ci DEFAULT NULL,
`u_pass` varchar(10) COLLATE utf8_persian_ci DEFAULT NULL,
PRIMARY KEY (`u_code`),
UNIQUE KEY `u_code_UNIQUE` (`u_code`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci;

--
-- Dumping data for table `ans_user`
--

INSERT INTO `ans_user` (`u_code`, `u_name`, `u_start`, `u_end`, `u_credit`, `u_mv`, `u_user`, `u_pass`) VALUES
(2, 'hasan', 33, 33, 33, 1, 'has', '123'),
(1, 'ali', 1, 1, 1, 1, '1', '1');



فایل php

mysql_connect("127.0.0.1", "anseh", "123456");
mysql_select_db("test");
$result = mysql_query("SELECT * FROM `ans_msg`, ans_user WHERE ans_user.u_pass=123");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
while ($row = mysql_fetch_object($result)) {
echo $row->u_name."<br/>";
echo $row->u_pass;
}


اینم نتیجه:
hasan
123hasan
123

موفق باشید

siavashsay
یک شنبه 24 دی 1391, 20:47 عصر
ممنون حل شد !
اما ظاهرا گیرم فقط واسه یک علامت ` بود ! نمیدونم قضیه چیه ! اما به هرحال راه افتاد ! ممنونم از کمکتون :)