2014-07-18 52 views
0

我假設這是另一個noob錯誤,我有一個窗體,由於某種原因有兩個副本,在這個意義上應該有一個,但有一個精確的副本。我已經拿出PHP來檢查它是什麼,它又回到了原來的狀態。窗體與php複製

感謝您的幫助,非常感謝!

<?php 
    $con = mysql_connect('localhost', 'user', 'pass'); 
    if(!$con) { 
     die('Could not connect: ' . mysql_error()); 
    } else { 
     user = $_SESSION['username']; 
     mysql_select_db('db_name', $con); 
     $result = mysql_query("SELECT * FROM users WHERE username='$user'"); 
     while($row = mysql_fetch_array($result)) { 
?> 
      <form> </form> 
<?php 
     } 
    } 
?> 
+3

[請停止使用mysql_ *函數](http://stackoverflow.com/q/12859942/1238019)在新代碼中,它們[正式棄用](https://wiki.php.net/rfc/) mysql_deprecation)。而不是,看看[準備好的陳述](http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html),並使用[Mysqli](http:///php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php)。 – zessx

+0

用戶名= $ user有兩個用戶?大概。 – Sugar

+0

它在while循環中,

將爲數據集中的每條記錄打印。 – Jim

回答

0

嘗試使用此

$result = mysql_query("SELECT * FROM users WHERE username='$user' LIMIT 1"); 

也許你可能有2個用戶使用相同的用戶名。

+1

請不要這樣做,你隱藏了問題,而不是修復它。相反,在用戶名字段上創建一個唯一約束,這種方式將來不會發生。 – scragar

+3

@scragar我明白。並根據最佳做法,你也是正確的。但是,由於我們沒有表格和數據庫的模式,這是最適合解決問題的模式。但我很感激你的關心。請嘗試將您的反饋意見反饋回 –

+0

我沒有對任何人下決心,您的代碼正確地回答了問題,儘管我不喜歡這種不合法的理由來降低投票率(這應該是爲失敗的答案保留的解決問題)。 – scragar

1

試試這個:

<?php 
$con = mysql_connect('localhost', 'user', 'pass'); 
if(!$con) { 
    die('Could not connect: ' . mysql_error()); 
} else { 
    $user = $_SESSION['username']; 
    mysql_select_db('db_name', $con); 
    $result = mysql_query("SELECT * FROM users WHERE username='$user'"); 

    echo "<form>"; // open form tag outside of loop 

    while($row = mysql_fetch_array($result)) { 
?> 


<?php 
    } 

    echo "</form>"; // close form tag when loop completes 

} 
?>