2013-01-20 1 views
0

처음으로 호출 한 긴 시간 리스너. "로스터"라는 mysql 테이블에서 "Rep_IP"라는 열을 가져 와서 배열로 변환 한 다음 해당 배열을 사용하여 html로 드롭 다운을 채우는 데 문제가 있습니다. 나는 다른 장소뿐만 아니라 여기에 나열된 몇 가지 제안을 시도하고 나는 어떤 행운을 가지고 있지 않다. 페이지는 잘 보이지만 드롭 다운에는 선택할 옵션이 없습니다. 당신 중 한 명이 내가 여기서 잘못하고있는 것을 말해 줄 수있을 것이라고 생각했습니다.mysql 열을 배열로 바꾸고 배열을 드롭 다운에 사용

<html> 
<body> 

<form action="insert.php" method="post"> 
<p>Rep ID:</p> 

<?php 
$con = mysql_connect("localhost", "root"); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("rep_stats", $con); 
$query = "SELECT Rep_ID FROM roster"; 

$result = mysql_query($query) or die ("no query"); 

$result_array = array(); 
echo "$query" 
while($row = mysql_fetch_assoc($result)) 
{ 
$result_array[] = $row; 
} 
?> 
<select name="Rep_ID"> 
<?php 

foreach($result_array as $rep) 
{ 
echo "<option value=" . $rep['Rep_ID'] . ">" . $rep['Rep_ID'] . "</option>"; 
} 

?> 
</select> 
Issues Handled: <input type="number" name="IssuesHandled"> 
Hours Worked: <input type="number" step="any" name="HoursWorked"> 
<input type="submit"> 
</form> 

</body> 
</html> 

위에서 볼 수 있듯이 드롭 다운은 새 테이블에 항목을 만드는 데 사용되는 양식의 일부입니다. 나는 그것이 차이를 만들지 모르지만 나는 그것을 지적했다.

+0

괜찮습니다. – Strawberry

+1

1.'echo "$ query"'의 끝에 세미콜론이 없습니다. 2. 배열에 값을 넣는 것은 불필요한 단계입니다 .Ian에서 제안한 결과 세트를 탐색하면서 옵션을 렌더링하십시오. 새 코드에 mysql_ * 함수를 사용하지 마십시오. [PHP 5.5.0에서 더 이상 사용되지 않습니다.] (http://php.net/m anual/en/intro.mysql.php). 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 배우고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/mysqli)를 사용하십시오. . – peterm

+0

개인적으로, 나는 mysql을하는 사람과 PHP를하는 사람이 별개의 사람이라고 가장하는 것을 좋아한다. mysqler는 phper에게 그들이 원하는 것을 사용할 수있는 배열을 전달합니다. 그래서 나를 위해, 배열 구축 단계는 완벽하게 훌륭합니다. – Strawberry

답변

1

시도해보십시오.

<select name="Rep_ID"> 
    <?php 
    while($row = mysql_fetch_assoc($result)) 
    { 
     echo "<option value=" . $row['Rep_ID'] . ">" . $row['Rep_ID'] . "</option>"; 
    } 
    ?> 
    </select> 
0

이 시도 :

<?php 


function select_list(){ 
$host = "host"; 
$user = "user"; 
$password = "password"; 
$database = "database"; 

$link = mysqli_connect($host, $user, $password, $database); 
IF (!$link) 
{ 
echo ('Could not connect'); 
} 
ELSE { 
$query = "SELECT Rep_ID FROM roster"; 

$result = mysqli_query($link, $query); 

while($row = mysqli_fetch_array($result, MYSQLI_BOTH)){ 
    echo "<option value=" . $row['Rep_ID'] . ">" . $row['Rep_ID'] . "</option>"; 
} 

} 
mysqli_close($link); 
} 

$begin_form = 
<<< EODBEGINFORM 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head><title>Insert data </title></head> 
<body> 

<form action="insert.php" method="post" name="form1"> 
<p>Rep ID:</p> 

<select name="reps" form="form1"> 
EODBEGINFORM; 


$end_form = 
<<< EODENDFORM 
</select><br> 
Issues Handled: <input type="text" size="12" name="IssuesHandled"><br> 
Hours Worked: <input type="text" size="12" name="HoursWorked"><br> 
<input type="submit" name="submit" value="submit"> 
</form> 
</body> 
</html> 
EODENDFORM; 


echo $begin_form; 
echo select_list(); 
echo $end_form; 
?> 

당신은 내가 이유는이 새로운 코드에 대한 더 나은 위의 의견을 볼 수 있다는 것입니다 mysql_로의 MYSQLI_의 istead을 사용하는 것을 알 수 있습니다.

내가 코드를 디버깅하고 많은 문제에 I을 실행 가장 큰 문제였다 :-(:.
echo "$query" 귀하의 잊어 버린 줄 끝에 세미콜론

당신이 프로젝트

행운

..
+0

감사합니다. 이것은 완벽하게 작동했습니다. 모든 오류에 관해서는, 나는 mysql에 대한 멍청한 생각이다. 나는 건설적인 피드백에 감사한다. 내 모든 다른 코드를 mysqli로 바꾼다. – Kevin

+0

@ 케빈 나는 내가 너를 도울 수있어서 다행이다. 내 답을 수락 표식으로 표시해주십시오. 당신은 내 대답의 왼쪽에 그것을 찾을 수 있습니다. 미리 감사드립니다. –

관련 문제