【问题标题】:MySQL selecting single data?MySQL选择单个数据?
【发布时间】:2015-09-23 10:25:52
【问题描述】:

我正在尝试找出一个解决方案,说明我将如何从数据库中显示我的数据。但是我想展示一个特定的条目。这是我的数据库设计:

我正在使用 PHP 将其与网站连接。在网站上,我希望它从故事表中显示:“这是一本关于互联网的书!”只有那个没有别的只有那个特定的条目。 book_number 是一个主键并且是自动递增的。

这是我当前的代码:

<?php
// Change variables if going to a server.
$username = "root";
$password = "";
$hostname = "localhost";

//connect
$dbhandle = mysql_connect($hostname, $username, $password)
  or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";

//Select book database.
$selected = mysql_select_db("book",$dbhandle)
  or die("Could not select examples");

  //select all the records from the book database
$result = mysql_query("SELECT book_name, story, time_track FROM book");
//fetch data
while ($row = mysql_fetch_array($result)) {
   echo "ID:".$row{'book_name'}." Name:".$row{'story'}."
   ".$row{'time_track'}."<br>";
}

//close
mysql_close($dbhandle);

?>

我当前的代码连接并显示我希望它按照上面指定的方式显示的所有条目。

我还希望它一次从故事表中显示一个条目,因为我将制作不止一本书,并且故事将分为多页。

【问题讨论】:

标签: php mysql database


【解决方案1】:

你需要像这样通过 SQL 过滤你的记录:

$book_number = $_GET['book_number'];
$result = mysql_query("SELECT book_name, story, time_track FROM book
WHERE book_number = '$book_number'
");

您可以通过 URL (GET) 传递此 book_number 变量,无论是否加密。

最好在通过 URL 发送变量时对其进行加密。

【讨论】:

  • 您应该通过 URL 传递 $book_number。否则。只需将 $book_number = $_GET['book_number']; 更改为 $book_number = 1; 即可。
  • 对不起,请改成$book_number = 1,它必须工作。
【解决方案2】:

使用这个

SELECT book_name, story, time_track FROM book WHERE book_name='your book'

此查询将有助于选择特定书名的详细信息。

【讨论】:

    【解决方案3】:

    试试这个

    <?php
    // Change variables if going to a server.
    $username = "root";
    $password = "";
    $hostname = "localhost";
    
    //connect
    $dbhandle = mysql_connect($hostname, $username, $password)
      or die("Unable to connect to MySQL");
    echo "Connected to MySQL<br>";
    
    //Select book database.
      mysql_select_db("book",$dbhandle)
      or die("Could not select examples");
    
      //select single record from the book table which book_number is 1. 
    $result = mysql_query("SELECT book_name, story, time_track FROM book WHERE book_number='1'");
    //fetch data
    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
      echo "ID:".$row['book_name']." Name:". $row['story'].$row['time_track']."<br>";  
    }
    
    //close
    mysql_close($dbhandle);
    
    ?>
    

    【讨论】:

    • 注意:未定义索引:第 20 行 D:\Program\xamp\htdocs\c\story\c.php 中的 book_name 注意:未定义索引:D:\Program\xamp\htdocs\ 中的故事c\story\c.php on line 20 注意:未定义索引:time_track in D:\Program\xamp\htdocs\c\story\c.php on line 20 ID: Name:
    • 谢谢。数组使用方括号
    • 为什么 OP 应该“试试这个”?一个好的答案总是会解释所做的事情以及这样做的原因,不仅适用于 OP,而且适用于 SO 的未来访问者。
    猜你喜欢
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2017-07-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多