簡體   English   中英

PHP循環需要幫助嗎?

[英]Php loop need help?

這是sql表

id    id_user  id_userfor          description      date    
 1       231          119          a to b           2010-02-05 17:42:47     
 2       231          231          myself           2010-02-05 17:36:28     
 3       231          119          from x to b      2010-02-05 17:36:29 

我找不到選擇輸出結果的方法,如下所示:

user 119 

    a to b            2010-02-05 17:42:47
    from x to b       2010-02-05 17:36:29
user 231

    myself            2010-02-05 17:36:28 

您可以使用

select id_userfor, description, date from table order by id_userfor;

然后,您可以打印每個不同的id_userfor所有date列數據

$old = '';
while($row = mysql_fetch_array($result)) {

    if($old != $row['id_userfor']) {

        $old = $row['id_userfor'];
        echo "$row['id_userfor']<br />";
    }
    echo $row['description'] . " " . $row['date'] . "<br />";
}

您可以使用id_userfor字段進行查詢排序然后循環所有記錄,每次遇到id_userfor的新值時id_userfor打印它。

像這樣的東西:

$SQL    = 'select * from ... order by `id_userfor`';
$Result      = ...;
$PrevUserFor = '';
while($Row = ...) {
    const $UserFor = $Row['id_userfor'];
    if ($PrevUserFor != $UserFor) {
        
        echo "user $UserFor<br>";
        $PrevUserFor != $UserFor;
    }

    $Description = $Row['description'];
    $Date        = $Row['date'];
    echo('&nbsp;$Description&nbsp;$Date<br>');
}

希望這可以幫助。

codaddict查詢更具可讀性:

SELECT `id_userfor`, `description`, `date` FROM `table` ORDER BY `id_userfor`

然后,在循環內部,你將使用這樣的東西:

$sql = "SELECT `id_userfor`, `description`, `date` FROM `table` ORDER BY `id_userfor`";
$query = mysql_query($sql);

$user = null; // Empty user

while($data = mysql_fetch_assoc($query)) {
    if ($data['id_userfor'] != $user) {
        // Display the user only when it changes
        echo '<H1>'. $data['id_userfor'] .'</H1>';
        $user = $data['id_userfor'];
    }

    // Display the rest of the fields here :)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM