PDA

View Full Version : طرز گزاشتن شرط برای نمایش یک مقدار خاص از 2 جدول به طور هم زمان



hamidhassas
سه شنبه 07 شهریور 1391, 09:31 صبح
من میخوام شرطی بزارم به شکلی که

اگر در جدول news فیلد gorup دارای مقدار مثلا 1 بود وارد جدول دوم به اسم news_gorup بشه و در داخل فیلد id هر کدام از رکورد ها دارای شماره رکورد 1 بود اطلاعات فیلد subject اون رکورد رو به نمایش بزاره


توضیح بیشتر:

کدی که خودم نوشتم فقط 50 درصد کار رو انجام میده و 50 دزصد بعدی رو نمیدونم باید چکار کنم

کدی که دارم این جوری است که اطلاعات جدول news رو فقط میخونه و اگر در داخل فیلد gorup این جدول مقدار مثلا 1 بود میاد مینویسه مثلا سیستم عامل حالا میخوام بجای اینکه بنویسه سیستم عامل برده داخل جدول news_gorup فیلد id رو نگاه کنه هر کدام از رکورد ها شماره اون 1 بود اطلاعات داخل فیلد subject اون رو نشون بده.




<?php
include 'Administrator/include/config.php';
connect($username,$password,$Mydb);
mysql_query('SET NAMES \'utf8\'');
$news= "select * from news ORDER BY id DESC LIMIT 0,3";
$news_group= "select * from news_group ORDER BY id DESC LIMIT 0,3]";
$tab=mysql_query($news);
$tab2=mysql_query($news_group);
?>
<table width="70%" border="1">
<tr>
<td align="center" width="20%"><p>زیر گروه</p></td>
<td align="center" width="52%"><p><font color="#333333">موضوع نرم افزار</font></p></td>
</tr>
<tr>
<?php
while ($row=mysql_fetch_array($tab, MYSQL_BOTH))
{
?>
<td><p align="center" dir="rtl">
<?PHP
if($row['Gorup']==1) echo "سیستم عامل";
if($row['Gorup']==2) echo "خبر فوری";
if($row['Gorup']==3) echo "کامپیوتر";
?></p></td>
<td dir="rtl"><p align="right" dir="rtl"><?php print $row[1]; ?></p></td>
</tr>
<?php }?>
</table>

hamidhassas
شنبه 11 شهریور 1391, 12:18 عصر
کسی نمیتونه کمک کنه؟؟؟؟؟

ULFSoft
شنبه 11 شهریور 1391, 13:26 عصر
کافیه از یه join ساده استفاده کنی تو کوئری.

<?php
include 'Administrator/include/config.php';
connect($username,$password,$Mydb);
mysql_query('SET NAMES \'utf8\'');
$news= "select news.*,news_group.subject from news,news_group WHERE news.Group=news_group.id ORDER BY id DESC LIMIT 0,3";
$tab=mysql_query($news);
?>
<table width="70%" border="1">
<tr>
<td align="center" width="20%"><p>زیر گروه</p></td>
<td align="center" width="52%"><p><font color="#333333">موضوع نرم افزار</font></p></td>
</tr>
<tr>
<?php
while ($row=mysql_fetch_array($tab, MYSQL_BOTH))
{
?>
<td><p align="center" dir="rtl">
<?php echo $row['subject']; ?>
</p></td>
<td dir="rtl"><p align="right" dir="rtl"><?php print $row[1]; ?></p></td>
</tr>
<?php }?>
</table>

hamidhassas
یک شنبه 12 شهریور 1391, 22:24 عصر
ممنون

میشه کمی توضیح بدین داره چه اتفاقی می افته؟

درضمن من کد رو استفاده کردم ولی کلا کدام از کار افتاد

من با کد زیر کل رکورد هام رو از داخل دیتابیس میخونم قسمت زیر گروه کار نمیکنه



<?php
include '../../Administrator/include/config.php';
connect($username,$password,$Mydb);
mysql_query('SET NAMES \'utf8\'');
$news= "select * from news ORDER BY id DESC LIMIT 0,10";
$tab=mysql_query($news);
$row=mysql_fetch_array($tab);

$news_gorup= "select news.*,news_group.subject from news,news_group WHERE news.Group=news_group.id ORDER BY id DESC LIMIT 0,10";
$tab_news=mysql_query($news_gorup);
$row_news=mysql_fetch_array($tab_news);
?>

<table width="70%" border="1">

<tr>

<td align="center" width="20%"><p>زیر گروه</p></td>

<td align="center" width="52%"><p><font color="#333333">موضوع نرم افزار</font></p></td>

</tr>

<tr>

<?php
while ($row=mysql_fetch_array($tab, MYSQL_BOTH))

{

?>

<td><p align="center" dir="rtl">

<?php echo $row['subject']; ?></p></td>

<td dir="rtl"><p align="right" dir="rtl"><?php print $row[1]; ?></p></td>

</tr>

<?php }?>

</table>

hamid_computer3
سه شنبه 14 شهریور 1391, 19:34 عصر
ببخشید من هم نمی فهمم که چه تافاقی می افته

کد رو استفاده کردم مال من هم جواب نمیده
باید چکار کنم

mohammadrasoul
چهارشنبه 15 شهریور 1391, 09:35 صبح
میشه بگید join چیه؟

mohammadrasoul
چهارشنبه 22 شهریور 1391, 15:03 عصر
کسی نیست کمک کنه کد درست رو بگه؟

hamidhassas
سه شنبه 28 شهریور 1391, 16:13 عصر
کسی نیست جواب ما رو بده؟

Arthas1990
سه شنبه 28 شهریور 1391, 18:38 عصر
میشه بگید join چیه؟
join در sql در جدول رو با یک اصطلاحا چسب به هم متصل کرده و خروجی میده
یک مثال ساده میزنم برات :

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

tblstudent
----------
stID stFname stLname stMelicode
1 ali ahmadi 0921233213
2 hasan sadeghi 09765567
tblscores
----------
scID scLessonName scScore stID
1 riazi 17 1
2 adabiat 20 1
3 riazi 20 2
4 adabiat 20 2


select tblscores.scLessonName , tblscores.scScore , tblstudent.stFname , tblstudent.stLname from tblstudent inner join tblscores on tblscores.stID=blstudent.stID

rizazi 17 ali ahmadi
adabiat 20 ali ahmadi
riazi 20 hasan sadeghi
adabiat 20 hasan sadeghi


در مثال بالا تو جدول دانش آموز و نمره داریم
که فیلد مشترکی به نام tsID دارند .
بنابرین با کمک اون و اصطلاحا چسب قرار دادنش میتونی یه کوئری مناسب از نمرات دروس خاص دانش آموزان رو بیاری


وا3 دونستن بیشتر یه نگاه با لینک زیر کن
http://www.w3schools.com/sql/sql_join.asp
http://www.w3schools.com/sql/sql_join_inner.asp

امیدوارم کمکی کرده باشم
موفق باشد

mohammadrasoul
پنج شنبه 30 شهریور 1391, 01:41 صبح
ببخشید من هم نمی فهمم که چه تافاقی می افته

کد رو استفاده کردم مال من هم جواب نمیده
باید چکار کنم


کسی نیست جواب بده؟

mohammadrasoul
چهارشنبه 05 مهر 1391, 08:02 صبح
این دیگه چطور تالاریه که تو هیچ پستی کسی نسیت کمک کنه

hamidhassas
شنبه 08 مهر 1391, 07:58 صبح
آقا من که نفهمیدم چی شد؟