1

PHPで動的ページを構築するのは、私の最初のイニシアチブでした。私はPHPの初心者なので、PHPプログラミングについてあまり知りません。「動的」という名前のデータベースを作成しました。その後、「id」、「A1」、「A2」、「A3」という4つのフィールドを挿入しました。

A1=1、A2、A3-0であるid=1に値を挿入し、

id=2 に、A1=0、A2=1、A3=0 を挿入しました

id-3 に、A1 と A2=0 A3=1 を挿入しました

だから今私が望んでいたのは、id = 1のリンクをクリックするたびに、id = 1のコンテンツが表示されるなどです...私がこれまでに行ったことは次のとおりです:-

     $conn= mysql_connect("localhost","root", "");
      $db= mysql_select_db("dynamic", $conn);
      $id=$_GET['id'];
      $sql= "select * from answer order by id";
      $query= mysql_query($sql);

       while($row=mysql_fetch_array($query, MYSQL_ASSOC))
      {
          echo "<a href='dynamic.php?lc_URL=".$row['id']."'>Click Here</a>"; 
          if($row['A1']==1)
          {
              echo "A1 is 1";
          }
          else if($row['A2']==1)
          {
              echo "A2 is 1";

          }
          else if($row['A3']==1)
          {
              echo "A3 is 1";
          }
          else {
              echo "Wrong query";

            }

        }

       ?>

このコードを実行すると、正確なIDが表示され、正確なIDになりますが、値は変更されていません..

IDをクリックすると、id = 2をクリックした場合のように正確な値が表示され、「A2 is 1」とエコーアウトされます....

誰でも私を助けてもらえますか?

私も気になった点

         $id=$_GET['id'];

それは何ですか、それをどのように使用しますか。誰でも私を説明できますか..事前にたくさん感謝します:)

4

1 に答える 1

0

深く掘り下げる前に、ここから始めて php を十分に理解することをお勧めします。しかし、あなたがここで尋ねた特定の質問に答えるために...

php変数は、ここで$_GETかなり適切に定義されています。

PHP では、事前定義された $_GET 変数を使用して、method="get" を含むフォームで値を収集します。

これが意味することは、URL の (GET 要求で) クエリ文字列を介して渡されるすべてのパラメーターは$_GET、php の変数を介してアクセスできるということです。たとえば、 のリクエストでdynamic.php?id=1は、 で ID にアクセスできます$_GET['id']

このことから、簡単な解決策を導き出すことができます。次のソリューションでは、同じ php ページを使用してanswer、データベース内のテーブルから項目のリストを表示するか、id パラメーターが URL の一部として渡される場合は単一の行を表示します。

<!DOCTYPE HTML>
<html>
  <head>
  </head>
  <body>
  <?php
    $mysqli = new mysqli("localhost", "user", "password", "dynamic");

    $query = 'SELECT * FROM answer';
    if ($_GET['id']) {
      $query .= ' WHERE id = '.$_GET['id'];
    } else {
      $query .= ' ORDER BY id';
    }
    $res = $mysqli->query($query);

    if ($res->num_rows == 0) {
      echo '<p>No Results</p>';
    } else if ($res->num_rows == 1) {
      // Display Answer
      $row = $res->fetch_assoc();
      echo '<h3>Answer for '.$row['id'].'</h3>';
      echo '<ul>';
      echo '<li>A1 = '.$row['A1'].'</li>';
      echo '<li>A2 = '.$row['A2'].'</li>';
      echo '<li>A3 = '.$row['A3'].'</li>';
      echo '</ul>';
    } else {
      // Display List
      echo '<ul>';
      while ($row = $res->fetch_assoc()) {
        echo '<li><a href="dynamic.php?id='.$row['id'].'">Answers for '.$row['id'].'</a></li>';
      }
      echo '</ul>';
    }
  ?>
  </body>
</html>

OK、これはまさにあなたが探しているものではないかもしれませんが、物事がどのように機能するかについて少し理解を深めるのに役立つはずです. ページに小さな JavaScript を追加すると、GET パラメータや追加のページ リクエストを使用せずに回答を表示/非表示にすることができます。

<!DOCTYPE HTML>
<html>
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
  </head>
  <body>
  <?php
    $mysqli = new mysqli("localhost", "user", "password", "dynamic");

    $query = 'SELECT * FROM answer ORDER BY id';
    $res = $mysqli->query($query);

    if ($res->num_rows == 0) {
      echo '<p>No Results</p>';
    } else {
      // Display List
      echo '<ul>';
      while ($row = $res->fetch_assoc()) {
        echo '<li><a href="javascript:toggleAnswers('.$row['id'].')">Answers for '.$row['id'].'</a>';
        echo '<ul id="answers_'.$row['id'].'" style="display:none;">';
        echo '<li>A1 = '.$row['A1'].'</li>';
        echo '<li>A2 = '.$row['A2'].'</li>';
        echo '<li>A3 = '.$row['A3'].'</li>';
        echo '</ul>';
        echo '</li>';
      }
      echo '</ul>';
    }
  ?>

    <script>
      function toggleAnswers(answer) {
        $('#answers_' + answer).toggle();
      }
    </script>
  </body>
</html>

他にも多くの解決策があり、それぞれがここで紹介したものよりも複雑です。たとえば、アイテムがクリックされた場合にのみリスト ページに回答をロードする ajax リクエストを設定できます。私のアドバイスは、PHP の初心者向けチュートリアルをいくつか見て、一般的な PHP フレームワーク (Zend、CodeIgniter、CakePHP など) を調べることです。

ここで提供されるコードは、あなたが求めていたことを達成する方法の例に過ぎないことに注意してください。すべての (もしあれば) ベスト プラクティスに従っているわけではありません。

于 2012-11-17T04:39:51.230 に答える