返回MySQL查询作为特定表行单击的数组

时间:2018-09-16 01:29:55

标签: javascript php jquery mysql

我已经进行了大约3天的研究,即使我进行了所有搜索,仍然不知道该怎么做。

这是我已经完成的事情:

我在index.php中有一个表,该表从MySQL数据库中获取数据。当用户单击表中的任何给定行时,我希望打开eventDetail.php页。

这是我还没有想到的:

当我需要eventDetail.php运行一个MySQL查询时,该查询将获取在上一个index.php页面上单击的表行的数据并将其存储在数组中,这样我就可以在eventDetail.php页面。

这是index.php页面上打开我的eventDetail.php页面的代码:

index.php

    <script>
    $(document).ready(function onClickRow() {

    $('.clickDetail').click(function(){
    var str=$(this).attr("value"); /* Find out which button is clicked, stores 
    its value in variable 'str'*/

    $(window.location = 'eventDetail.php').load('eventDetail.php?str='); /* To 
    collect data from database */
    })
    })
    </script>

这是我到目前为止在eventDetail.php中所拥有的,但是甚至不确定我是否已经正确开始:

eventDetail.php

    <?php

        $db_host = '127.0.0.1'; // Server Name
        $db_user = 'root'; // Username
        $db_pass = 'password'; // Password
        $db_name = 'mydb'; // Database Name

        $conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
        if (!$conn) {
            die ('Failed to connect to MySQL: ' . mysqli_connect_error());
        }

    $str=$_GET['str']; // collect the row id

    $queryRow = ("SELECT id, eventName, description FROM mytable WHERE 
    id=:id");

我需要将前一页上单击的行中的id, eventName, description返回到数组,以便我可以实际在此页上使用该数据。

1 个答案:

答案 0 :(得分:0)

最后通过@BobRodes解决了这个问题。

这是您在index.php中需要的脚本:

            <script>
            $(document).ready(function onClickRow() {

            $('.clickDetail').click(function(){

            var str=$(this).attr('value'); // Find out which button is clicked, stores its value in variable 'str'

            $(window.location = 'eventDetail.php?str='+str).load('eventDetail.php?str='+'/'+str); // To collect data from database
            })
            })
            </script>

这是您在eventDetail.php中需要的php代码:

  <?php

$db_host = '127.0.0.1'; // Server Name
$db_user = 'root'; // Username
$db_pass = 'password'; // Password
$db_name = 'mydb'; // Database Name

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
    die ('Failed to connect to MySQL: ' . mysqli_connect_error());
}

   $str = $_GET['str']; // collect the row id

   $queryRow = ("SELECT id, eventName, description FROM mytable WHERE id='$str'"); // SQL Statement

  $result = mysqli_query($conn, $queryRow); // Execute SQL Query
  $items = array(); // Create an array and store in a variable called $items
  // Statement below fetches the row that was clicked and stores the data in the array $items
  if (mysqli_num_rows($result) > 0) {
  while($row = mysqli_fetch_assoc($result)) {
    $items[] = $row;
  }
  }

  // Statement below separates each item in the array and converts it to a string and stores in variable named $item
  foreach ($items as $item) {
    echo $item['id'];
    echo $item['eventName'];
    echo $item['description'];
  }
   mysqli_close($conn);
   ?>

这将打开eventDetail.php并返回在URL中单击的数据库中的表行。然后,您可以编辑页面其余部分中的代码,以根据需要在页面上返回该行中的数据。