2010-12-05 3 views
0

これは間違いなく初心者の質問です。 2つの問題があります。テーブルから行を削除しても、MYSQLテーブルのid(autoincrementに設定されている)は上がり続けます(phpmyadminを使用しています)。他の問題については、ユーザーが最後に入力した行を処理する方法が見つからないようです。コードは、MYSQLの既存の行をすべてエコーします。 私はコードの最も関連する部分を太字にしました。あなたのid質問についてはMYSQL/PHPは1行だけを出力したいときにテーブル全体を出力します

<?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); 
?> 
+0

あなたは全体のコードを 'between' – andrewk

答えて

2
$result = mysql_query ("SELECT * FROM test order by id desc limit 1"); 

...それはIDがどのように動作するかです。彼らはギャップを埋めることはありません。

注:ユーザーが送信したデータをクエリ文字列に直接入力することはありません。常にmysql_real_escape_string()でエスケープしてください。

0
SELECT * FROM test ORDER BY Id DESC LIMIT 1 
関連する問題