我正在创建一个函数,其中我以逗号分隔的单词形式从mysql表中获取结果。我通过使用explode将它们分开,然后尝试在for循环的if和else语句中进行条件检查。但条件检查不起作用我试图回应来自数据库的结果,结果是V
并且我的函数中有V
的条件检查但是它在这里不起作用是我的代码
function partner_diet($page,$user_id)
{
$getrow=mysql_query("SELECT * from partner_prefrences where uid='$user_id'");
$results=mysql_fetch_array($getrow);
$string=$results['diet'];
$string = preg_replace('/\.$/', '', $string); //Remove dot at end if exists
$array = explode(',', $string); //split string into array seperated by ', '
//loop over values
?>
<select name="mipdiet" class="mipdiet" multiple="multiple">
<option <?php foreach($array as $value) { if($value=='V') {?> checked <?php } } ?> name="pdiet" value="V"> Vegetarian </option>
<option <?php foreach($array as $value) { if($value=='N') {?> checked <?php } } ?> name="pdiet" value="N"> Non Vegetarian </option>
<option <?php foreach($array as $value) { if($value=='J') {?> checked <?php } } ?> name="pdiet" value="J"> Jain </option>
<option <?php foreach($array as $value) { if($value=='E') {?> checked <?php } } ?> name="pdiet" value="E"> Eggetarian </option>
</select>
<?php
}
答案 0 :(得分:3)
一些提示。
*
,尤其是在您打算使用一个字段时。在select语句中指定字段。mysql_fetch_assoc()
in_array()
var_dump()
查看每个变量的内容。我建议你从上到下。Goodluck,希望这会有所帮助。干杯!
答案 1 :(得分:1)
我不是php的专家,但$ string是数据库中列的数组 你不需要循环吗???因为你知道你有一个数组,你尝试删除数组末尾的点。
另外在您的html上你的选择我不记得该选项的属性检查更像是选择=选择。