我的系统从错误的表中获取数据

时间:2014-10-10 06:11:30

标签: php sql fetch

不是从DOC_PROGRESS表中获取数据,而是继续从DOCUMENT表中获取数据。我需要来自两个表的数据,但我认为我做错了。顺便说一下,我的查询如下。请帮帮我。

("SELECT * FROM document AS dd JOIN doc_progress AS dp ON dd.p_id = dp.p_id WHERE (dd.p_id = '".$_SESSION['currentUser']."') AND (dp.progress = 'Read')");
<?php
$select1 = "SELECT * FROM doc_progress AS dp JOIN document AS dd ON dd.p_id = dp.p_id WHERE (dd.p_id = '".$_SESSION['currentUser']."') AND (dp.progress = 'Unread')";
$sql= mysql_query($select1) or die (mysql_error());
while($row2 = mysql_fetch_array($sql)){

?>

<tr class="odd gradeX">
    <td><?php echo $row2['date_created'] ?></td>

    <td><a href=""><?php 
    echo "<b>" . $row2['doc_title']. "</b>"; ?></a></td>

    <td> <?php 
    echo $row2['status'] ?></td>

    <td> <?php
    echo $row2['progress']; ?></td>

    <td> <?php echo $row2['time_created']; ?></td>
</tr>

3 个答案:

答案 0 :(得分:0)

如果要从DOC_PROGRESS中选择数据,为什么在FROM语句中使用DOCUMENT表?

试试这个:

'SELECT DP.* 
FROM doc_progress DP
INNER JOIN document DOC ON DOC.p_id = DP.p_id
WHERE 
    DOC.p_id = ' . $_SESSION['currentUser'] . 'AND
    DP.progress = \'Read\'';

答案 1 :(得分:0)

使用此

("SELECT DD.*, DP.* FROM document DD INNER JOIN doc_progress DP ON DD.p_id = DP.p_id WHERE DD.p_id = '".$_SESSION['currentUser']."' AND DP.progress = 'Read'");

答案 2 :(得分:0)

查询的第一部分要求您从数据库中获取所需的列。你现在有;

SELECT * FROM document

这就是你得到的。

要从已连接的表中选择所有列,您可以使用;

SELECT * FROM document, doc_progress

但您最好选择特定的列,例如;

SELECT document.colname1, document.colname2, doc_progress.colname FROM document

希望这有帮助。