-2

jQuery Mobileでリストビューを作成し、PHPを使用してコンテンツをフィードしました。正常に動作しますが、コードが長すぎて、ほとんどの部分が互いに非常に似ています。コードを単純化する方法はありますか?コードを見てから、私が本当に行う必要があることを説明します。

<ol data-role="listview">
            <?php
            while ($row = mysql_fetch_array($result)){
                echo "<li><a href=\"#\">";
                // first column check
                switch ($row[1]) {
                    case "Behnam":
                        echo " B . ";
                        break;
                    case "Tarin":
                        echo " T . ";
                        break;
                }
                // second column check
                switch ($row[2]) {
                    case "Behnam":
                        echo " B . ";
                        break;
                    case "Tarin":
                        echo " T . ";
                        break;
                    default:
                        echo " N . ";
                }
                // third column check
                switch ($row[3]) {
                    case "Behnam":
                        echo " B . ";
                        break;
                    case "Tarin":
                        echo " T . ";
                        break;
                    default:
                        echo " N . ";
                }
                // fourth column check
                switch ($row[4]) {
                    case "Behnam":
                        echo " B . ";
                        break;
                    case "Tarin":
                        echo " T . ";
                        break;
                    default:
                        echo " N . ";
                }
                // fifth column check
                switch ($row[5]) {
                    case "Behnam":
                        echo " B . ";
                        break;
                    case "Tarin":
                        echo " T . ";
                        break;
                    default:
                        echo " N . ";
                }
                // sixth column check
                switch ($row[6]) {
                    case "Behnam":
                        echo " B ";
                        break;
                    case "Tarin":
                        echo " T ";
                        break;
                    default:
                        echo " N ";
                }
                echo "</li></a>";
            }
            ?>
            </a></li>
        </ol>

結果は次のとおりです。

ここに画像の説明を入力してください

を使用するwhile ($row = mysql_fetch_array($result)){ことで、SQLテーブルの各行を1つずつフェッチできます。ただし、各セル(列)の値も確認する必要があります。

4

5 に答える 5

1

コードを2パラメーター関数にグループ化します。

  function checkRowValue($row, $checkDefault) {
      switch ($row) {
          case "Behnam":
              echo " B . ";
              break;
          case "Tarin":
              echo " T . ";
              break;
          default:
              if ($checkDefault)
                  echo " N . "; 
      }
  } 

次のように呼び出します。

 <ol data-role="listview">
        <?php
        while ($row = mysql_fetch_array($result)){
            echo "<li><a href=\"#\">";
            // first column check
            for ($i = 0; $i < 7; $i++)
                checkRowValue($row[i], $i > 0);
        }
于 2012-10-19T03:42:55.663 に答える
1

これは、行のすべての列に関数を適用して(最初にスキップして)、次にそれらを。と一緒に文字列化することによって一般化されます" . "

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    echo "<li><a href=\"#\">";
    echo join(' . ', array_map(function($v) {
        if ($v == 'Behnam') {
            return 'B';
        elseif ($v == 'Tarin') {
            return 'T';
        else {
            return 'N';
        }
    }, array_slice($row, 1));
    echo "</li></a>";
}
于 2012-10-19T03:50:02.297 に答える
0

これを試して

   if(in_array("Behnam",$row) {
        echo " B . ";
    }
    else if(in_array("Train",$row) {
       echo " T . ";
    }
    else {
        echo " N . ";
    }
于 2012-10-19T05:01:40.993 に答える
0

これが最終結果です。

<ul id="competition_list" data-role="listview" data-inset="true" data-theme="a">
            <?php
            // using the returned value from database to feed the list.
            // showing the competiton rounds' outcome.
            while ($row = mysql_fetch_array($result)){
                    echo "<li><a href=\"#\">";
                    echo $row[0] . ".";  //this is the id column in the table and will give me the number of the row
                    for($i = 1; $i <= 5; $i++){
                        switch ($row[$i]) {
                        case "Behnam":
                            echo "&nbsp;&nbsp; B &nbsp;&nbsp;";
                            break;
                        case "Tarin":
                            echo "&nbsp;&nbsp; T &nbsp;&nbsp;";
                            break;
                        }
                    } // end for()
                    echo "</a></li>";
            } // end while()
            ?>
        </ul>
于 2012-10-28T04:17:25.167 に答える
-1
    <?php
                while ($row = mysql_fetch_array($result)){
                    echo "<li><a href=\"#\">";
                    // first column check
            foreach($row as r)
            {


                    switch (r) {
                        case "Behnam":
                            echo " B . ";
                            break;
                        case "Tarin":
                            echo " T . ";
                            break;
                    }
}
    ?>
于 2012-10-19T03:41:13.827 に答える