2017-03-04 6 views
0

mySQLデータベースからselectオプションを取るフォームを作成して、1つの列のすべての異なる値がリストされるようにする必要があります。動作しないコードは次のとおりです。選択のためにmysqlを区別する

<form class="form-horizontal" method="get" action="startlist.php"> 
<select id="selectbasic" name="klass" class="form-control"> 
<?PHP 
$connection = mysqli_connect("link","dbuser","pass","dbname"); 
mysqli_set_charset($connection,"utf8"); 
$sql = "SELECT DISTINCT Klass FROM Voistlejad"; 
$result = mysqli_query($connection,$sql); 
while ($row = mysqli_fetch_array($connection,$result)) { 
echo $row["Klass"]; 
echo "<option value='".$row[0]."'>".$row[0]."</option>"; 
} 
mysqli_close($connection); 
?> 
    <option value='32KK5B'>32KK5B</option><!--This is how it needs to be--> 
</select> 
<button type='submit' class="btn btn-primary">Move on</button> 
</form> 

何が問題なのですか。

+4

"動作していません"というのは、あなたが観察した動作の非常に不正確な記述です。あらゆる種類のものが間違っている可能性があります。ここにいくつかのヒントがあります:phpエラー報告を可能にする。 mysqli_connectからの戻り値をテストし、そのFALSEの場合はmysql_connect_errorを使用してエラーを取得します。 mysqli_queryを呼び出した後、$ resultsがFALSEならば、mysqli_errorを使ってエラーを取得します。デバッグの証拠はほとんどありません。 StackOverflowは質問応答サイトであり、デバッグサービスではありません。 "私のコードに何か問題があります"とは、質問ではありません。 – spencer7593

+0

それを分解し始め、TOPから始めて断片を取り出し、どの行が失敗するのかを見つけます。それからGoogleにその問題を具体的に話してください。 – usumoio

答えて

0

私は、一重引用符と二重引用符を使用する場所を混同していると思います。 一般的に、$ rowのような配列/オブジェクトの場合、引用符をつけないか、一重引用符で配列の値を取得します。echo $ row [ものが発生したため、 'クラース']

while ($row = mysqli_fetch_array($connection,$result)) { 

echo $row['Klass']; // single quotes 

echo "<option value='". $row['Klass'] ."'>". $row['Klass'] ."</option>"; 
} 
// shows sql error ONLY if there is one to show 
printf(" %s\n", mysqli_error($link)); 

PSは強く、MySQLiをエラーを表示するようにコードを追加することをお勧めします!

+0

助けてくれてありがとう! – user7656286

関連する問題