从SQL数据库填充下拉列表

时间:2015-02-24 16:07:26

标签: php mysql

所以我正在为社交网络创建一个照片库。在那一刻我正在创建一个预上传页面。我已经设置了5个字段来输入带有适当字幕的图像。但是,我的主要问题是填充下拉列表。下拉列表应包含数据库中的照片类别(photo_category),但下拉列表显示为空。关于我哪里出错的任何建议?

编辑:所以现在我通过添加category_id和category_name改变了$ row中的内容,但它现在说“解析错误:语法错误,意外的T_ENCAPSED_AND_WHITESPACE,期望第16行的T_STRING或T_VARIABLE或T_NUM_STRING”。问题中的界线前面有2颗星。

<?php
require 'configphot.inc.php';



$_photo_upload_fields='';
$count=1;

$nofields=(isset($_GET['number_of_fields']))?
(int) ($_GET['number_of_fields']):5;
$result = mysqli_query($link,"SELECT category_id, category_name FROM photo_category");


while($row=mysqli_fetch_array($result)){
$_photo_category_list .= <<<__HTML_END
**<option value="$row['category_id']">$row['category_name']**</option>n
__HTML_END;

}

mysqli_free_result($result);


while($counter<=$nofields)
{
$photo_upload_fields .= <<<__HTML_END

<tr><td>
Photo{$counter}:
<input name = "photo_filename[]" type= "file" />
</td></tr>
<tr><td>
Caption:
<textarea name ="photo_caption[]" cols = "30" rows ="1"></textarea>
</td></tr>
__HTML_END;
$counter++;
}

//End output

echo <<<__HTML_END

<html>
<head>
<title> Upload photos here</title>
</head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post" name= "upload_form">
<table width="90%" border="0" align="center" style="width: 90%;">
<tr>
<td>Select Category
<select name="category">
$photo_category_list</select></td>
</tr>

<!image fields here -->

$photo_upload_fields
<tr><td>
<input type ="submit" name="submit" value= "Add photos">
</td></tr>
</table>
</form>
</body>
</html>
__HTML_END;








?>

2 个答案:

答案 0 :(得分:0)

首先:Plase格式化您的代码。一些选项卡确实有助于跟踪代码。

在您的SQL语句中,您只选择一列:SELECT category_name FROM photo_category

2行之后您引用了两列:$row[0](来自您的SQL查询的category_name)和$row[1]$row[1]不存在,因此是空的(至少应该生成PHP通知)。

答案 1 :(得分:0)

您只选择category_name,因此数组不会看到$ row [1]尝试将查询更改为

SELECT id_category,category_name FROM photo_category

所以你现在数组0是id_category而数组1是类别名