2013-06-17 5 views
0

내 드롭 다운 목록에 테이블 데이터가 채워지지 않습니다. (드롭 다운 상자가 비어 있습니다) 그리고 무슨 일이 다운이 드롭 아이템의 선택에 따라 데이터를 표시하는 데 사용됩니다 -내 드롭 다운 목록이 테이블 데이터로 채워지지 않는 이유는 무엇입니까?

내 코드를 (내가 배울 수있는 학습 링크를 제공 해주세요) 그것은 "VIEW"입니다

<?php 
$con=mysqli_connect("localhost","root","","ismat_db"); 
//check connection 
if(mysqli_errno($con)) 
{ 
echo "Can't Connect to mySQL:".mysqli_connect_error(); 
} 
else 
{ 
echo "Connected to mySQL</br>"; 
} 

//$query = 'SELECT FirstName FROM persons'; 
//$result = mysqli_query($con,$query); 

$query = mysqli_query($con,"SELECT 'FirstName' FROM persons"); 

//print_r($query); 

//echo '<select name="FirstName">'; 
echo "<select name= 'FirstName'>"; 
//while($row=mysqli_fetch_array($result)) 
while($row=mysqli_fetch_array($query)) 
{ 
echo $row; 
//echo "<option value='".$row['FirstName']."'>".'</option>'; 
} 
echo '</select>'; 

?> 
+0

1. 데이터베이스의 데이터를 가져 왔습니까? 2. 옵션 텍스트를 인쇄하지 않는 이유는 무엇입니까? '? – user4035

+0

echo $ row [ ' FirstName '] – sinisake

+0

@ user4035 - 그냥 그 줄을 시도하고 두 번 쓰여진 "FirstName"을 얻었습니다 ... –

답변

0

작동하는지 확인 :

echo "<option value='". $row['FirstName']."'>".$row['FirstName'] 
. '</option>'; 
:이 코드를 사용해야합니다 옵션을 인쇄 :

내가 코멘트에서 처음으로 지적

두 번째는 SQL에 있습니다. 데이터베이스에서 FirstName 필드를 선택하지 않고 대신 'FirstName'문자열을 선택하십시오. 그래서 당신이 말한대로 두 번 인쇄됩니다. 현장을 얻기 위해이 SQL을 사용

$query = mysqli_query($con,"SELECT FirstName FROM persons"); 

또한 보통 사람들은 <option>의 값으로 가능한 중복이있을 수 있습니다 기록이 아닌 필드의 ID를 넣어. 그래서 나는 다음과 같이 사용했을 것이다 :

echo "<option value='". $row['id']."'>".$row['FirstName'] 
. '</option>'; 

데이터베이스에서 id와 함께 이름을 선택했다.

+0

$ 쿼리에 사람이 오면 점이 표시됩니까? 그리고 시도했지만이 오류가 발생했습니다 - mysqli_fetch_array()는 매개 변수 1이 mysqli_result가 될 것으로 예상하고 부울 그리고 첫 번째 주석을 변경했습니다 - 단지 Firstname을 두 번 표시합니다 –

+0

@AbbasAnsari 도트 및 따옴표없이 사용할 수 있습니다 . 나는 대답을 업데이트하고, 지금 시도해보십시오. – user4035

+0

@AbbasAnsari 예, 점이 있으며 내 쿼리가 올바르게 작동해야합니다. 나는 당신이 정확하게 대답하지 않았다고 대답했다. 나는 역 인용 부호를 사용했기 때문에 직선 따옴표를 사용하지 않았으므로 사용했습니다. – user4035

0

이 시도 :

echo "<option value='".$row['FirstName']."'>".$row['FirstName']."</option>"; 

은 또한 데이터베이스 쿼리에 문제가있는 것 같다. 다음으로 while 루프를 바꿔 그것은 당신이 오류를했다

if ($result = $mysqli->query($query)) { 

    while ($row = $result->fetch_assoc()) { 
    echo "<option value='".$row['FirstName']."'>".$row['FirstName']."</option>"; 
    } 

$result->free(); 
} 
+0

이것은 무엇입니까? 더 이상 비어 있지 않고 'FirstName'열의 테이블 값을 가져 오는 대신 FirstName을 두 번 나타냅니다 (테이블에 두 개의 레코드가 있기 때문에 두 번) –

+0

코드가 $ row [ ' FirstName ']을 옵션 값에 추가하고 $ row ['FirstName ']을 양식에 사용자에게 표시하도록 허용합니다. 선택 옵션을 사용하면 게시되고 표시되는 옵션의 값을 설정해야합니다 선택하려는 사용자에게 – Cbomb

+0

echo mysqli-> error();를 입력하십시오. 데이터베이스 쿼리를 사용하여 쿼리에서 mysqli 오류가 발생하는지 확인하십시오. – Cbomb

관련 문제