การกดลิ้งโดยแสดงรายละเอียดของหัวข้อนั้นๆ ต้องส่งค่าตัวแปรยังไงคะ
ได้แล้วค่ะ ขอบคุณมากๆ ค่ะ
แต่ว่าตอนโชวรายละเอียดของลิ้งที่กดไป Code (SQL)
$sql = "SELECT * FROM project
WHERE projectID = '".$_GET["projectID"]."' ";
ลองเปลี่ยนให้มัน inner join กับตารางอื่นๆ แล้วดึงข้อมูลที่อยู่ในตารางอื่นด้วยออกมา แต่มันก็ Warning: mysql_fetch_assoc() expects parameter 1 to be resource อ่าค่ะ ก็คือจะดึงได้แต่ตาราง project
Date :
2016-03-04 20:38:03
By :
um0000um
งั้นคงต้องเอา sql join ที่เขียนไว้มาโพสต์ถามต่อครับ เดี๋ยวมีคนเก่ง sql มาช่วยตอบครับ
Date :
2016-03-05 09:54:38
By :
apisitp
Code (SQL)
SELECT member.Firstname ,itemreview.itemName,itemreview.subRole
FROM projectmembers
INNER JOIN project ON projectmembers.projectID = project.projectID
INNER JOIN role ON projectmembers.roleID = role.roleID
INNER JOIN member ON member.UserID = projectmembers.UserID
INNER JOIN itemreview ON projectmembers.projectmembersID = itemreview.projectmembersID
WHERE project.projectID =4
อยากให้แสดงค่า ประมาณนี้ค่ะ ต้องแก้ตรงไหนคะ
Mr.A | Item1,Item2 | Lead
Mr.A | Item 3, Item 4 | Backup
Date :
2016-03-05 23:55:05
By :
um0000um
Code (SQL)
SELECT member.Firstname ,group_concat(itemreview.itemName),itemreview.subRole
FROM projectmembers
INNER JOIN project ON projectmembers.projectID = project.projectID
INNER JOIN role ON projectmembers.roleID = role.roleID
INNER JOIN member ON member.UserID = projectmembers.UserID
INNER JOIN itemreview ON projectmembers.projectmembersID = itemreview.projectmembersID
WHERE project.projectID =4
group by member.UserID
Date :
2016-03-06 09:25:11
By :
Chaidhanan
group by member.UserID, member.subRole
Date :
2016-03-07 02:00:26
By :
Chaidhanan
ตอบความคิดเห็นที่ : 7 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-03-07 02:00:26
รายละเอียดของการตอบ ::
Code (PHP)
SELECT project.projectName , project.projectUnit , project.projectYear , project.startDate,project.endDate , project.projectDescription ,
member.Title ,member.Firstname ,member.Lastname,group_concat(itemreview.itemName),itemreview.subRole
FROM projectmembers
INNER JOIN project ON projectmembers.projectID = project.projectID
INNER JOIN role ON projectmembers.roleID = role.roleID
INNER JOIN member ON member.UserID = projectmembers.UserID
INNER JOIN itemreview ON projectmembers.projectmembersID = itemreview.projectmembersID
WHERE project.projectID =5
group by member.UserID , itemreview.subRole
ได้แบบนี้ค่ะ
แต่ตอนใส่โค้ดในโปรแกรม ได้แบบนี้ ชื่อคนแรกแสดง subRole แค่ตำแหน่งเดียว
Code (PHP)
<table border="1">
<tr>
<th> Assessor Name </th>
<th> Item </th>
<th> Role </th>
</tr>
<?php while($fetch = mysql_fetch_assoc($result)){ ?>
<tr>
<td> <?php $str_fullname = $fetch["Title"]." ".$fetch["Firstname"]." ".$fetch["Lastname"];
echo $str_fullname;?>
</td>
<td><?php echo $fetch["group_concat(itemreview.itemName)"]; ?></td>
<td> <?php echo $fetch["subRole"]; ?></td>
</tr>
<?php
}
?>
</table>
Date :
2016-03-07 15:44:03
By :
um0000um
ก่อนบันทัดที่ 1 มีการใช้คำสั่ง mysql_fetch_assoc() หรือเปล่าครับ
ควรจะได้ 4 บันทัดเหมือนกัน
ราย การ item 1 item 2 lead หายไป เช็คโค๊ดให้ดีครับ
Date :
2016-03-07 15:54:23
By :
Chaidhanan
ตอบความคิดเห็นที่ : 9 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-03-07 15:54:23
รายละเอียดของการตอบ ::
Code (PHP)
มันต้องดึงค่า projectID มาก่อนด้วยอ่าค่ะ แล้วค่อยดึงไปใส่ใน query
<?php
include("db_connect_edpex.php");
$sql = "SELECT * FROM project
WHERE projectID = '".$_GET["projectID"]."' ";
$objQuery = mysql_query($sql);
//echo $objQuery;
while($fetch = mysql_fetch_assoc($objQuery))
{
$projectID = $fetch["projectID"];
}
//echo $projectID;
?>
<?php
$sql= "SELECT project.projectName , project.projectUnit , project.projectYear , project.startDate,project.endDate , project.projectDescription ,
member.Title ,member.Firstname ,member.Lastname,group_concat(itemreview.itemName),itemreview.subRole
FROM projectmembers
INNER JOIN project ON projectmembers.projectID = project.projectID
INNER JOIN role ON projectmembers.roleID = role.roleID
INNER JOIN member ON member.UserID = projectmembers.UserID
INNER JOIN itemreview ON projectmembers.projectmembersID = itemreview.projectmembersID
WHERE project.projectID ='$projectID'
group by member.UserID , itemreview.subRole";
$result = mysql_query($sql);
$objResult = mysql_fetch_array($result);
?>
<p>Project Detail</p>
<table border="1">
<tr>
<td> Project Name</td>
<td> <?php echo $objResult["projectName"]; ?></td>
</tr>
<tr>
<td> Unit</td>
<td> <?php echo $objResult["projectUnit"]; ?></td>
</tr>
<tr>
<td> Year</td>
<td> <?php echo $objResult["projectYear"]; ?></td>
</tr>
<tr>
<td> Start Date </td>
<td> <?php echo $objResult["startDate"]; ?></td>
</tr>
<tr>
<td> End Date </td>
<td> <?php echo $objResult["endDate"]; ?></td>
</tr>
<tr>
<td> Description </td>
<td> <?php echo $objResult["projectDescription"]; ?></td>
</tr>
</table>
<br/>
<table border="1">
<tr>
<th> Assessor Name </th>
<th> Item </th>
<th> Role </th>
</tr>
<?php while($fetch = mysql_fetch_assoc($result)){ ?>
<tr>
<td> <?php $str_fullname = $fetch["Title"]." ".$fetch["Firstname"]." ".$fetch["Lastname"];
echo $str_fullname;?>
</td>
<td><?php echo $fetch["group_concat(itemreview.itemName)"]; ?></td>
<td> <?php echo $fetch["subRole"]; ?></td>
</tr>
<?php
}
?>
</table>
Date :
2016-03-07 16:08:28
By :
um0000um
งั้นต้องเปลี่ยนจาก
Code (PHP)
while(....){
...
...
}
เป็น
Code (PHP)
do{
...
...
}while( .... )
ปล. ทั้งบนและล่าง ใช้ ตัวแปรตัวเดียวกัน
ประวัติการแก้ไข 2016-03-07 16:16:31
Date :
2016-03-07 16:14:56
By :
Chaidhanan
ใช่ครับ แต่ต้องใช้ตัวแปรเดียวกันกับอันนี้
27.$result = mysql_query($sql);
28.$objResult = mysql_fetch_array($result);
เพราะต้องอ้างอิง กลุ่มข้อมูลเดียวกัน
Date :
2016-03-07 16:52:00
By :
Chaidhanan
ได้แล้วค่ะ แยก query ของแต่ละก้อนเลย ขอบคุณมากๆค่ะ
Date :
2016-03-07 21:19:50
By :
um0000um
ติดอีหที่คะ เรื่องการส่งค่าตัวแปรไปหน้าอื่นๆ
อันนี้คือลิสโปรเจค ถ้ากด มันก็จะไปโชวรายละเอียด
Code (PHP)
Project Lists
<?php
while($fetch = mysql_fetch_assoc($result)){
?>
<p><a href="showProjectDetail.php?projectID= <?php echo $fetch["projectID"];?>">
Project Name : <?php echo $fetch['projectName']; ?>
</a>
<br>
<br />
</p>
<?php
}
?>
ถ้ากด มันก็จะไปโชวรายละเอียดประมาณนี้ค่ะ
Code (PHP)
<?php
include("db_connect_edpex.php");
$sql = "SELECT * FROM project
WHERE projectID = '".$_GET["projectID"]."' ";
$objQuery = mysql_query($sql);
//echo $objQuery;
while($fetch = mysql_fetch_assoc($objQuery))
{
$projectID = $fetch["projectID"];
}
//echo $projectID;
?>
<?php
$sql= "SELECT project.projectName , project.projectUnit , project.projectYear , project.startDate,project.endDate , project.projectDescription
FROM project
WHERE project.projectID ='$projectID'";
$objQuery = mysql_query($sql) or die(mysql_error());
while($result = mysql_fetch_array($objQuery)){ ?>
<p>Project Detail</p>
<table border="1">
<tr>
<td> Project Name</td>
<td> <?php echo $result["projectName"]; ?></td>
</tr>
<tr>
<td> Unit</td>
<td> <?php echo $result["projectUnit"]; ?></td>
</tr>
<tr>
<td> Year</td>
<td> <?php echo $result["projectYear"]; ?></td>
</tr>
<tr>
<td> Start Date </td>
<td> <?php echo $result["startDate"]; ?></td>
</tr>
<tr>
<td> End Date </td>
<td> <?php echo $result["endDate"]; ?></td>
</tr>
<tr>
<td> Description </td>
<td> <?php echo $result["projectDescription"]; ?></td>
</tr>
<?php
}
?>
</table>
<br/>
<table border="1">
<tr>
<th> Assessor Name </th>
<th> Item </th>
<th> Role </th>
</tr>
<?php
$sql= "SELECT project.projectName , project.projectUnit , project.projectYear , project.startDate,project.endDate , project.projectDescription ,
member.Title ,member.Firstname ,member.Lastname,group_concat(itemreview.itemName),itemreview.subRole
FROM projectmembers
INNER JOIN project ON projectmembers.projectID = project.projectID
INNER JOIN role ON projectmembers.roleID = role.roleID
INNER JOIN member ON member.UserID = projectmembers.UserID
INNER JOIN itemreview ON projectmembers.projectmembersID = itemreview.projectmembersID
WHERE project.projectID ='$projectID'
group by member.UserID , itemreview.subRole";
$objQuery = mysql_query($sql) or die(mysql_error());
while($result = mysql_fetch_array($objQuery)){ ?>
while($objResult = mysql_fetch_array($result)){ ?>
<tr>
<td> <?php $str_fullname = $result["Title"]." ".$result["Firstname"]." ".$result["Lastname"];
echo $str_fullname;?>
</td>
<td><?php echo $result["group_concat(itemreview.itemName)"]; ?></td>
<td> <?php echo $result["subRole"]; ?></td>
</tr>
<?php
}
?>
</table>
ตรงลิ้ง สองอันข้างล่างอ่าค่ะ อยากให้เวลากดไปแล้ว เอาค่า projectID จากตอนที่เรากดตั้งแต่หน้าแรกไปด้วย เพราะมันต้องเอาค่านั้นไปใส่ db อ่าค่ะ ต้องทำยังไงคะ ถึงจะส่งค่ามาหน้านั้นได้
Date :
2016-03-07 21:30:19
By :
um0000um
17.<?php } ?>
18.
19.<?php while($objResult = mysql_fetch_array($result)); ?>
เขียนแบบข้างบนไม่ได้ครับ มันมองเห็นเป็นคนละคำสั่งไม่ต่อเนื่องกัน
ต้องเขียนติดกันตามนี้
Code (PHP)
<?php
do{
// โค๊ดอื่นๆ
}while( $objResult = mysql_fetch_array($result) );
?>
ประวัติการแก้ไข 2016-03-07 22:05:03
Date :
2016-03-07 22:03:49
By :
Chaidhanan
Load balance : Server 00