0

手動でデータを追加するデータベースがあります。フィールドの一部は次のとおりです。

ID AA Name Percentage(will be changing once a week)

1   2.  Me     10%

2   1.  You    40%

動的リストでデータベースを呼び出すと、すべての名前がパーセンテージでソートされます。この結果を得るために必要な AA 列:

1. You  40%
2. Me   10%

AA 列を手動で操作して (私のエントリは 10 ~ 15 以下であるため)、パーセンテージと一致させて、必要な正しい表示を取得するのは簡単です。

しかし、エントリがたとえば 30 になると、AA 列をパーセンテージ列と一致するように常に変更することは非常に困難になります。

1. 2. が自動的に生成されるように、dynamic_list.php に変更を加えることはできますか? これが私のdynamic_list.phpです:

$sql = mysql_query("SELECT * FROM clients WHERE Category='Deksioseis' ORDER BY percentage DESC");
$productCount = mysql_num_rows($sql);
// count the output amount
if ($productCount > 0) {
        $i=0;
            $dynamicListDeks = '<table id="pl_list" class="list">';
            while($row = mysql_fetch_array($sql)){
                $id = $row["ID"];
                $aa = $row["AA"];
                $client_name = $row["Client_Name"];
                $short_name = $row["Short_Name"];
                $details = $row["Details"];
                $percent = $row["Percentage"];
        $dynamicListDeks .= ($i==0) ? '<tr>':'';
        $dynamicListDeks .= '<td class="lst_aa">
                        ' . $aa . '
                     </td>
                                     <td class="lst_l">
                        <img src="../rooms/' . $short_name  . '.png" alt="' . $client_name . '" />
                     </td>
                     <td class="lst_nam">
                        <a id="' . $short_name . '" name="' . $short_name . '" class="room">' . $client_name . '</a>
                                     </td>
                     <td class="lst_det">
                    ' . $details . '
                     </td>
                         <td class="lst_per">
                    ' . $percent . '%
                    <br />
                     </td>';
        $dynamicListDeks .= ($i==1) ? '</tr>':'';
        $i++;
        ($i==2) ? $i=0:'';
        }
        $dynamicListDeks .='</table>';
        } else {
            $dynamicListDeks = "";
            }
        mysql_close();
4

2 に答える 2

2

ループの実行ごとにインクリメントするカウンターを PHP コードに保持します。

$aa = 0;
while($row = mysql_fetch_array($sql)){
  $id = $row["ID"];
  $aa++;
于 2012-06-20T11:51:51.637 に答える
0

AA をデータベースに保存する代わりに、後で表示できる AA の値を保持する変数を追加することができます。

        $sql = mysql_query("SELECT * FROM clients WHERE Category='Deksioseis' ORDER BY percentage DESC");
        $productCount = mysql_num_rows($sql);
        // count the output amount
        if ($productCount > 0) {
        $i=0;
        $aa=0;

        $dynamicListDeks = '<table id="pl_list" class="list">';
        while($row = mysql_fetch_array($sql)){
            $id = $row["ID"];
            $aa++;
            $client_name = $row["Client_Name"];
            $short_name = $row["Short_Name"];
            $details = $row["Details"];
            $percent = $row["Percentage"];
    $dynamicListDeks .= ($i==0) ? '<tr>':'';
    $dynamicListDeks .= '<td class="lst_aa">
                    ' . $aa . '
                 </td>
                                 <td class="lst_l">
                    <img src="../rooms/' . $short_name  . '.png" alt="' . $client_name . '" />
                 </td>
                 <td class="lst_nam">
                    <a id="' . $short_name . '" name="' . $short_name . '" class="room">' . $client_name . '</a>
                                 </td>
                 <td class="lst_det">
                ' . $details . '
                 </td>
                     <td class="lst_per">
                ' . $percent . '%
                <br />
                 </td>';
    $dynamicListDeks .= ($i==1) ? '</tr>':'';
    $i++;
    ($i==2) ? $i=0:'';
    }
    $dynamicListDeks .='</table>';
    } else {
        $dynamicListDeks = "";
        }
    mysql_close();
于 2012-06-20T11:50:42.807 に答える