1

嗯,这是我第一个用 php 构建动态页面的倡议。由于我是 php 的新手,我对 php 编程了解不多。我创建了一个名为“动态”的数据库,它的表名是“答案”,之后我插入了四个字段,即“id”、“A1”、“A2”、“A3”。

我在 id=1 中插入了 A1=1,A2 和 A3-0 的值,

在 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 为 1”,仅此而已....

谁能帮帮我?

我也注意到了

         $id=$_GET['id'];

它是什么以及如何使用它。谁能给我解释一下..提前非常感谢:)

4

1 回答 1

0

在深入研究之前,最好从这里开始对 php 有一个很好的了解。但要回答你在这里提出的具体问题......

php变量在这里$_GET定义得很好:

在 PHP 中,预定义的 $_GET 变量用于以 method="get" 的形式收集值。

这意味着通过 URL 中的查询字符串(在 GET 请求上)传递的任何参数都可以通过$_GETphp.ini 中的变量访问。例如,请求dynamic.php?id=1将允许您通过 访问 id $_GET['id']

由此我们可以得出一个简单的解决方案。在以下解决方案中,answer如果 id 参数作为 url 的一部分传递,我们使用相同的 php 页面来显示数据库中表或单行中的项目列表。

<!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>

好的,这可能不是您想要的,但它应该可以帮助您更好地了解事物的工作原理。如果我们在页面中添加一点 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 回答