PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : جستجو یک Id بین 3 جدول در MYSQL



<?php?>
May 30th, 2016, 23:07
میخوام یک id رو بین 3 جدول جستجو کنم که ببینم همچین id تو یکی از این جدول ها حداقل هست یا نه .
دستور کوئری mysql چی هست ؟
ممنون بابت پاسختون

Rezash
May 30th, 2016, 23:35
سلام
حتما یک کوئری میخواید باشه ؟
میتونید در قسمت from با استفاده از union نتایج رو جمع کنید
یا سه تا EXISTS استفاده کنید.

T.Toosi
May 30th, 2016, 23:41
SELECT table1.id,table2.id,table3.id FROM table1,table2,table3 WHERE table1.id = 1 AND table2.id = 1 AND table3.id = 1

Rezash
May 30th, 2016, 23:46
select table1.id,table2.id,table3.id from table1,table2,table3 where table1.id = 1 and table2.id = 1 and table3.id = 1

البته جسارتا برای حداقل باید از or استفاده کنیم :53:

<?php?>
May 30th, 2016, 23:56
SELECT table1.id,table2.id,table3.id FROM table1,table2,table3 WHERE table1.id = 1 AND table2.id = 1 AND table3.id = 1




$id=(int) $_GET['id'];
$result2=$config->connect->prepare("SELECT `id`,`id`,`id` FROM `db_user_user`,`db_user_author`,`db_user_admin` WHERE `id`=? AND `id`=? AND `id`=?");
$result2->bindValue(1,$id);
$result2->bindValue(2,$id);
$result2->bindValue(3,$id);
if($result2->execute()){
$count=$result2->rowCount();
if($count===1){
$rows=$result2->fetch(PDO::FETCH_ASSOC);
$user_edit->edit();
}
else{
header('location: user-user.php');
exit();
}
}
else{
header('location: user-user.php');
exit();
}



این کد من هست . QUERY که گفتید رو زدم ولی اصلا EXECUTE نشد .

T.Toosi
May 30th, 2016, 23:58
SELECT db_user_user.id, db_user_author.id,db_user_admin.id

saeed.spore
May 31st, 2016, 00:09
کاره Rezash (http://www.webhostingtalk.ir/member.php?u=6213) و T.Toosi (http://www.webhostingtalk.ir/member.php?u=111042) حرف نداره .
پاسخ های تاپیک هاشون درجه یک

<?php?>
May 31st, 2016, 01:35
کاره Rezash (http://www.webhostingtalk.ir/member.php?u=6213) و T.Toosi (http://www.webhostingtalk.ir/member.php?u=111042) حرف نداره .
پاسخ های تاپیک هاشون درجه یک

اره دمشون گرم .

- - - Updated - - -


SELECT db_user_user.id, db_user_author.id,db_user_admin.id



if(isset($_GET['id']) && !empty($_GET['id'])){
$id=(int) $_GET['id'];
$result2=$config->connect->prepare("SELECT db_user_user.id,db_user_author.id,db_user_admin.id FROM db_user_user,db_user_author,db_user_admin WHERE db_user_user.id=? OR db_user_author.id=? OR db_user_admin.id=?");
$result2->bindValue(1,$id);
$result2->bindValue(2,$id);
$result2->bindValue(3,$id);
if($result2->execute()){
$count=$result2->rowCount();
echo $count;
if($count===1){
$rows=$result2->fetch(PDO::FETCH_ASSOC);
$user_edit->edit();
}
else{
header('location: user-user.php');
exit();
}
}
else{
header('location: user-user.php');
exit();
}
}
else{
header('location: user-user.php');
exit();
}




اینو زدم . کار میکنه ولی برای مثال من این لینک رو میزنم : user-edit.php?id=5
اگر توجه کنید من این echo $count; رو داخل کد های بالا نوشتم تا تعداد record ها با توجه به id رو بدونم .
من یک record با id=5 در هز 3 جدول دارم . اما 18 مینویسه .
اعداد دیگه رو تست کردم مشکل مقدار گیری داره .
به نظرتون مشکل از کجاست ؟ مشکل از گرفتن تعداد آرایه هست :


$count=$result2->rowCount();

T.Toosi
May 31st, 2016, 01:57
fetchAll بکنید خروجی را بررسی کنید.

<?php?>
May 31st, 2016, 02:01
fetchAll بکنید خروجی را بررسی کنید.

من تاحالا از fetch All استفاده نکردم . چطور باید ازش استفاده کنم در کدوم قسمت کد ممنون

T.Toosi
May 31st, 2016, 02:03
<?php
if(isset($_GET['id']) && !empty($_GET['id'])){
$id=(int) $_GET['id'];
$result2=$config->connect->prepare("SELECT db_user_user.id,db_user_author.id,db_user_admin.id FROM db_user_user,db_user_author,db_user_admin WHERE db_user_user.id=? OR db_user_author.id=? OR db_user_admin.id=?");
$result2->bindValue(1,$id);
$result2->bindValue(2,$id);
$result2->bindValue(3,$id);
$ss = $result2->execute();
$result = $ss->fetchAll();
print_r($result);

// if($result2->execute()){
// $count=$result2->rowCount();
// echo $count;
// if($count===1){
// $rows=$result2->fetch(PDO::FETCH_ASSOC);
// $user_edit->edit();
// }
// else{
// header('location: user-user.php');
// exit();
// }
// }
// else{
// header('location: user-user.php');
// exit();
// }
// }
// else{
// header('location: user-user.php');
// exit();
// }

<?php?>
May 31st, 2016, 02:07
این اررور رو میده کدتونو که کپی کردم :
Fatal error: Call to a member function fetchAll() on boolean in

T.Toosi
May 31st, 2016, 02:11
اشتباه از من بود، امتحان کنید :


<?php
if(isset($_GET['id']) && !empty($_GET['id'])){
$id=(int) $_GET['id'];
$result2=$config->connect->prepare("SELECT db_user_user.id,db_user_author.id,db_user_admin.id FROM db_user_user,db_user_author,db_user_admin WHERE db_user_user.id=? OR db_user_author.id=? OR db_user_admin.id=?");
$result2->bindValue(1,$id);
$result2->bindValue(2,$id);
$result2->bindValue(3,$id);
$result2->execute();
$result = $result2->fetchAll();
print_r($result);

// if($result2->execute()){
// $count=$result2->rowCount();
// echo $count;
// if($count===1){
// $rows=$result2->fetch(PDO::FETCH_ASSOC);
// $user_edit->edit();
// }
// else{
// header('location: user-user.php');
// exit();
// }
// }
// else{
// header('location: user-user.php');
// exit();
// }
// }
// else{
// header('location: user-user.php');
// exit();
// }

<?php?>
May 31st, 2016, 02:13
اینم خروجیشه :



Array
(
[0] => Array
(
[id] => 1
[0] => 5
[1] => 2
[2] => 1
)

[1] => Array
(
[id] => 1
[0] => 5
[1] => 3
[2] => 1
)

[2] => Array
(
[id] => 1
[0] => 5
[1] => 4
[2] => 1
)

[3] => Array
(
[id] => 2
[0] => 5
[1] => 2
[2] => 2
)

[4] => Array
(
[id] => 2
[0] => 5
[1] => 3
[2] => 2
)

[5] => Array
(
[id] => 2
[0] => 5
[1] => 4
[2] => 2
)

[6] => Array
(
[id] => 3
[0] => 5
[1] => 2
[2] => 3
)

[7] => Array
(
[id] => 3
[0] => 5
[1] => 3
[2] => 3
)

[8] => Array
(
[id] => 3
[0] => 5
[1] => 4
[2] => 3
)

[9] => Array
(
[id] => 4
[0] => 5
[1] => 2
[2] => 4
)

[10] => Array
(
[id] => 4
[0] => 5
[1] => 3
[2] => 4
)

[11] => Array
(
[id] => 4
[0] => 5
[1] => 4
[2] => 4
)

)

rezaonline.net
May 31st, 2016, 02:23
به جای


SELECT db_user_user.id,db_user_author.id,db_user_admin.id FROM db_user_user,db_user_author,db_user_admin WHERE db_user_user.id=? OR db_user_author.id=? OR db_user_admin.id=?


بنویسید

SELECT db_user_user.id _user_id,db_user_author.id _author_id,db_user_admin.id _admin_id FROM db_user_user,db_user_author,db_user_admin WHERE db_user_user.id=? OR db_user_author.id=? OR db_user_admin.id=?


البته union کردن خیلی راحتتر از اینه

<?php?>
May 31st, 2016, 02:27
به جای


SELECT db_user_user.id,db_user_author.id,db_user_admin.id FROM db_user_user,db_user_author,db_user_admin WHERE db_user_user.id=? OR db_user_author.id=? OR db_user_admin.id=?


بنویسید

SELECT db_user_user.id _user_id,db_user_author.id _author_id,db_user_admin.id _admin_id FROM db_user_user,db_user_author,db_user_admin WHERE db_user_user.id=? OR db_user_author.id=? OR db_user_admin.id=?


البته union کردن خیلی راحتتر از اینه

بازم تعداد نادرست میده :




if(isset($_GET['id']) && !empty($_GET['id'])){
$id=(int) $_GET['id'];
$result2=$config->connect->prepare("SELECT db_user_user.id _user_id,db_user_author.id _author_id,db_user_admin.id _admin_id FROM db_user_user,db_user_author,db_user_admin WHERE db_user_user.id=? OR db_user_author.id=? OR db_user_admin.id=?");
$result2->bindValue(1,$id);
$result2->bindValue(2,$id);
$result2->bindValue(3,$id);
if($result2->execute()){
$count=array();
$count=$result2->rowCount();
echo $count;
if($count===1){
$rows=$result2->fetch(PDO::FETCH_ASSOC);
$user_edit->edit();
}
else{
echo 'ss';
}
}
else{
header('location: user-user.php');
exit();
}
}
else{
header('location: user-user.php');
exit();
}

T.Toosi
May 31st, 2016, 02:27
چون or استفاده کردید اگر در این سه تیبیل db_user_user.id,db_user_author.id,db_user_admin.id حداقل آیدی وارد شده وجود داشته باشد یک ردیف برمی گردوند و حساب میکند، پس اگر در سه تیبیل id هر رکوردی با مقدار $_GET برابر باشد یه row داریم، حالا بالا 11 تا row پیدا کرده که حداقل یکی از db_user_user.id,db_user_author.id,db_user_admin.id اینا با مقدار $_GET برابر است، بازم چون من استراکچر دیتابیس شما را ندیدم بیشتر نمیتونم راهنمایی کنم باید ساختار دیتابیس همراه با رکورد ها را ببینیم یا عکس بگیرید قرار دهید اگر فکر میکنید اشتباه است.

<?php?>
May 31st, 2016, 02:30
حالا این روش union که دوستان گفتند چطور باید ازش استفاده کرد ؟

نمونه کدی برای استفاده ازش هست؟

ممنون از دوستان بابت پاسخاتون

T.Toosi
May 31st, 2016, 03:00
حالا این روش union که دوستان گفتند چطور باید ازش استفاده کرد ؟

نمونه کدی برای استفاده ازش هست؟

ممنون از دوستان بابت پاسخاتون


<?php

if(isset($_GET['id']) && !empty($_GET['id'])){
$id=(int) $_GET['id'];
$result2=$config->connect->prepare("Select id From db_user_user Where id=? Union Select id From db_user_author Where id=? Union Select id From db_user_admin Where id=?");
$result2->bindValue(1,$id);
$result2->bindValue(2,$id);
$result2->bindValue(3,$id);
if($result2->execute()){
$count=array();
$count=$result2->rowCount();
echo $count;
if($count===1){
$rows=$result2->fetch(PDO::FETCH_ASSOC);
$user_edit->edit();
}
else{
echo 'ss';
}
}
else{
header('location: user-user.php');
exit();
}
}
else{
header('location: user-user.php');
exit();
}