2010-12-01 8 views
2

私のドロップダウンリストにテーブルの値が表示されないようです。 エラーは表示されず、空のドロップダウンリストのみが表示されます。 これは私のコードです:データベースからのアイテムを含むPHPのドロップダウン

<?php    
include_once ("classes/Keten.class.php"); 
$keten = new Keten(); 
$allKet = $keten->getAllKetens(); 

echo '<select name="fk_keten_id">';    
while($row = mysql_fetch_array($allKet)) 
{ 
    echo '<option value="' . 
     $row['pk_keten_id'] . '">' . $row['keten_naam'] . '</option>'; 
} 
echo '</select>'; 
?> 

機能getAllKetensの作品、私は他のページでそれを使用しているため。事前に

感謝:)

リクエストに応じて、クラス内getAllKet()関数/ Keten.class.php

public function getAllKetens() 
    { 
     include ("connection.php"); 
     $sSql = "SELECT * FROM tblKetens;"; 
     $vResult = mysqli_query($link, $sSql); 
     mysqli_close($link); 
     return($vResult); 
    } 
+1

$ allKetをデバッグして、入手したことをお知らせください。 – RabidFire

+1

do print_r($ allket); 何と言いますか? – Breezer

答えて

2

mysqliとmysqlコマンドを混在させることができないのではないか、あなたのfetch_arrayでは、mysqli_fetch_arrayの代わりにmysql_fetch_arrayを使用しました。

+0

Doh、ちょうど私が投稿したように:/ – brett

+0

はい:私の愚かな –

0
  • は必ずエラーが
  • オンにされていることを確認し、ソースを見ます、エラーがある場合は、selectタグによって隠されます
  • print_r($allket);を実行して、getAllKeten()が実際に返されたかどうかを確認します。ヒンジ。
+0

とprint_r($ allket); "1"を取得します。 –

+0

@Glenn:次に、あなたの 'getAllKetens'関数をチェックする必要があります。おそらくあなたの質問にコードを投稿してください。 – casablanca

0

あなたのコードのこの部分は正常に見える:

echo '<select name="fk_keten_id">';    
while($row = mysql_fetch_array($allKet)) 
{ 
    echo '<option value="' . 
     $row['pk_keten_id'] . '">' . $row['keten_naam'] . '</option>'; 
} 
echo '</select>'; 

あなたの問題は、$ allKetであるべきです。

何かを初期化するためにKeten()に引数を与える必要がありますか?

+0

何Ketenは()の引数を必要としません –

0

私は$ allKetがあなたの考えではないと思っています。

まず、HTMLをチェックします。 <選択名= "???">

a)$ allKetがリソースであることを確認してください。 b)SQLが行を選択していることを確認します。 (phpmyadminで試してください) c)フィールド名のスペルが間違っていないか確認してください。その後、

あなたは<オプションの値が表示される場合=「??」> < /オプション>エントリ、

a)は、あなたが印刷されているフィールド名が正しい bは確認してください)あなたがそれらを隠していないか確認してくださいエイリアス(最後のフィールドが表示されます)。

エラーの報告を(php.infで)上書きし、報告されたエラーを削除します。

+0

私は、HTML内のエラーを発見:<選択名= "fk_keten_id">
警告:は、mysql_fetch_array():に与えられた引数が有効なMySQLの結果リソースではありませんが/ライン上の家/ ****/addLocatie.php
私は、ローカルホスト上で動作していないよ ので、私は、エラーを有効にすることはできません –

0

私はそれ

利用持っOK:($行= mysqli_fetch_assoc($ allKet))しばらく

の代わり:

($行=は、mysql_fetch_array($ allKet))しばらくはあなたのすべてをありがとうあなたの速い返信のために!

+0

それがコミュニティにうれしいです(と私たちの評判は)どちらかの答えをマークします緑色のチェックマーク – zanlok

+0

ええ、私は知っているが、私はそれを行うためにもっと多くのポイントが必要です:)私は将来それを行うでしょう –

1

あなたの機能getAllKetens()がデータベースを閉じています。データベースへの接続を閉じた後に行をフェッチしないでください。

石鹸ボックスを別にしておけば、そこにはさらにいくつかの標準的な命名規則が適用されることがうれしいかもしれません。 mysqlクエリオブジェクトにハンドルを返す場合は、$ allKetよりもずっとわかりにくいものの代わりに、$ queryまたは$ hQueryを考慮してください。 IMO、関数が "getAllKetens()"と呼ばれる場合は、クエリのハンドルではなく、データの配列を返す必要があります。

+0

補遺:間違いなく接続を閉じる必要がありますが、その接続に対して使用されたすべてのクエリリソース($リンク) – snarkback

関連する問題