簡體   English   中英

當我只想輸出一行時,MYSQL / PHP輸出整個表

[英]MYSQL/PHP outputting entire table when I only want to output one row

這絕對是一個初學者的問題。 有兩個問題。 即使我從表中刪除行(我正在使用phpmyadmin),我的MYSQL表中的id(設置為autoincrement)仍在增加。 至於另一個問題,我似乎找不到一種處理用戶最近輸入的行的方法。 代碼回顯了MYSQL中的所有現有行。 我加粗了最相關的代碼部分。

<?php
//establish connection to mysql
$con = mysql_connect("localhost","root","");
if (!$con)
{
  die('Could not connect: ' . mysql_error());
}

/*retrieve user input from input form
and initialize variables */  
$Word1 = $_POST["Word1"];
$Word2 = $_POST["Word2"];
$Word3 = $_POST["Word3"];
$Word4 = $_POST["Word4"];
$Word5 = $_POST["Word5"];

//select db
mysql_select_db("madlibs", $con);  

//insert user input for word 1
$sql = "INSERT INTO test (Word1, Word2, Word3, Word4, Word5)
VALUES
('$Word1', '$Word2', '$Word3', '$Word4', '$Word5')";
if(!mysql_query($sql,$con))
{
  die('Error: ' . mysql_error());
}

$result = mysql_query ("SELECT * FROM test");  

/* take note here */
while($row = mysql_fetch_array($result))
{
  echo $row['Word1'] . " " . $row['Word2'] . " " . $row['Word3'] . " " . 
       $row['Word4'] . " " . $row['Word5'] . " " . $row['id'];
  echo "<br />";
} /* take note here */
mysql_close($con);
?>
$result = mysql_query ("SELECT * FROM test order by id desc limit 1");

至於你的id問題......這就是id的工作原理。 他們沒有填補空白。

旁注:永遠不要將用戶提交的數據直接放入查詢字符串中。 總是使用mysql_real_escape_string()來逃避它們。

SELECT * FROM test ORDER BY Id DESC LIMIT 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM