2016-09-09 10 views
0

これはプログラミングに関する私の最初の経験であり、私はこの問題を解決できません。私はチュートリアルでコードを見つけましたが、それは私にとってはうまくいかないでしょう。PHPクエリが機能しません

リストにはデータベースのデータは表示されませんが、テーブルにはすべてのデータが表示されます。

​​

マイコード:

<?php 
$servername = "111"; 
$username = "1111"; 
$password = "111"; 
$dbname = "1111"; 

try { 
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $conn->prepare("SELECT Region_ID, Region_Name FROM Regions"); 
    $stmt->execute(); 

    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    echo "<select name='Choose Region'>"; 
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
    echo "<option value='" . $v['Region_Namee'] ."'>" . $v['Region_Name'] ."</option>"; 

} 
} 

catch(PDOException $e) { 
    echo "Error: " . $e->getMessage(); 
} 
$conn = null; 
echo "</select>"; 
?> 
+0

'キャッチ(PDOException $ e)の{ エコー「エラーによって処理されます。 " $ e-> getMessage(); } 'これはエラーを返していますか? – Santi

+3

これはいくつかの愚かなチュートリアルです。 foreach行を 'foreach($ stmt as $ v)'に変更してください。 –

+0

ページのソースを見てください。たぶん、あなたが思うものではないでしょうか。なぜ、あなたがそれをフェッチしていないときに 'Region_Namee'を使用していますか? – aynber

答えて

0

念のため。 PDOは優れた拡張機能であり、コードを大幅に短縮できます。それはあなたのために多くのことをすることができます。しかし、多くのチュートリアルでは、すでにPDOに存在する多くのホイールを再考するよう教えてくれます。すべてのゴミを取る場合は、PDOが実際にあなたの可能性クリーンコードを与えていることがわかります:

<?php 
$servername = "111"; 
$username = "1111"; 
$password = "111"; 
$dbname = "1111"; 

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
// everything above this line should go into separate file 
// and just gets included here 

$stmt = $conn->query("SELECT Region_ID, Region_Name FROM Regions"); 
echo "<select name='Choose Region'>"; 
foreach ($stmt as $v) { 
    echo "<option value='" . $v['Region_ID'] ."'>" . $v['Region_Name'] ."</option>"; 
} 
echo "</select>"; 

残りはPDO

関連する問題