很抱歉的令人难以置信的新手问题,但我可以看到自己漂流到不好的做法,如果我不问了。
我有我要回一个给定的数据库列的所有值,以放置内容的HTML形式的下拉菜单中选择PHP方法。 我能明显构建在PHP方法在整个HTML并返回一个字符串,但我想这是非常不好的做法。
由于PHP方法可以只返回一个值,我想我需要调用该方法多次来填充下拉菜单中,或者从方法传递一个数组。
这将是一个很好的解决这个(大概)常见的问题? 谢谢。
很抱歉的令人难以置信的新手问题,但我可以看到自己漂流到不好的做法,如果我不问了。
我有我要回一个给定的数据库列的所有值,以放置内容的HTML形式的下拉菜单中选择PHP方法。 我能明显构建在PHP方法在整个HTML并返回一个字符串,但我想这是非常不好的做法。
由于PHP方法可以只返回一个值,我想我需要调用该方法多次来填充下拉菜单中,或者从方法传递一个数组。
这将是一个很好的解决这个(大概)常见的问题? 谢谢。
那么,一个阵列是一个值,含有吨其他值。 因此,只要有你的方法返回结果的数组。
编辑:作为汉默斯坦指出,你可以使用对象,但其作为好/坏,根据上下文阵列。 非常相似。
你可以使用一个对象作为您的返回类型。 所以;
class MyReturnValue
{
public $Value1;
public $Value2;
}
function getMyValues()
{
$results = GetDatabaseValues( ); // Assume this returns an associative array
$result = new MyReturnValue();
$result.Value1 = $results["Value1"];
$result.Value2 = $results["Value2"];
}
然后在你的代码,你可以参考$ result.Value1等。
有没有PHP函数来做到这一点,所以你必须形成从结果的数组。
$column = array()
$query = mysql_query("SELECT * FROM table ORDER BY id ASC");
while($row = mysql_fetch_array($query)){
$column[] = $row[$key]
}
然后$柱传递到您的视图(HTML)
foreach($column as $value)
{
echo "<li>" . $value . "</li>";
}
你可以在阵列排列,所以如果你有几个列的表,你可以将它们分配到一个数组作为单独的数组:
$all_results = array();
foreach($rowInDatabase as $key => $value){
// each row will be an array with a key of column name and value of column content depending how you get the data from the DB.
$colname = $key;
$colVal = $value; //this is an array
$all_results[$colname] = $colVal; //append the current row to the array
}
}
这样的代码将填充每个表中的行的一个数组的数组所以如果有10两行五列,你可以用$得到行2列3 all_results [1] [2]; (当它们从0开始)。
不太明白你想完全做什么,但你总是结果从方法穿过它的背部,然后循环在你的HTML。
你的方法是这样的:
public function my_method()
{
$result = $db->query($sql_here);
return $result;
}
然后,你的HTML会
<select>
<?
$result = $class->my_method();
while($row = $result->fetch_assoc())
{
echo '<option>'.$row['some_col'].'</option>';
}
?>
</select>