2014-04-04 34 views
1

這段代碼工作正常,我想要的是爲什麼如果我刪除foreach($行爲$ row)我gt錯誤,有沒有辦法顯示數據而不使用它。在輸入中顯示數據的PHP錯誤

<?php 
require("coneccion.php"); 

if(empty($_SESSION['user'])) 
{ 
    header("Location: index.php"); 
    die("Redirecting to index.php"); 
} 

$id = $_GET['id']; 
$nombre = $_SESSION['user']['username']; 
$query = "SELECT c.coursename FROM courses as c WHERE c.courseid = $id and c.id = (SELECT id FROM users WHERE username = '$nombre') "; 

try 
{ 
    $stmt = $db->prepare($query); 
    $stmt->execute(); 
} 
catch(PDOException $ex) 
{ 
    die("Error"); 
} 

$rows = $stmt->fetchAll(); 
?> 
    <?php 
    foreach($rows as $row):  
    echo '<input type="text" name="coursename" value="' .htmlentities($row['coursename']) . '" />'; 

    endforeach; 
+0

你需要foreach來獲得數組的每個結果,爲什麼你想要刪除foreach? – Brovoker

+0

您必須使用循環結構來獲取所有細節..您可以使用foreach()或while()循環來執行此操作。 – Jenz

+0

因爲我只需要顯示一個結果 –

回答

0

假設你用標準的PDO的設置工作,你可以訪問返回的第一個結果,像這樣:

echo '<input type="text" name="coursename" value="' .htmlentities($rows[0]['coursename']) . '" />'; 
0

要在數組中返回的第一行,你可以這樣做:

echo '<input type="text" name="coursename" value="' 
.htmlentities($rows[0]['coursename']) . '" />'; 

哪個會返回第一行,但我不推薦這個。 PHP數組是哈希表,它們非常快速,通過讓代碼不易維護,您不會節省任何樣式點。