Php 循环通过mysql数组并将每一行打印到<;选择>;
我想从一个表中的一列中检索每一行,并将它们全部放在一个元素中。 我现在几乎在黑暗中挣扎,我做错了什么/错过了什么Php 循环通过mysql数组并将每一行打印到<;选择>;,php,html,mysql,Php,Html,Mysql,我想从一个表中的一列中检索每一行,并将它们全部放在一个元素中。 我现在几乎在黑暗中挣扎,我做错了什么/错过了什么 $db_connect = mysql_connect("$host", "$db_username", "$db_password"); $db_select = mysql_select_db("$db_name"); mysql_set_charset('utf8', $db_connect); $db_query_project="SELECT * FROM $tbl_na
$db_connect = mysql_connect("$host", "$db_username", "$db_password");
$db_select = mysql_select_db("$db_name");
mysql_set_charset('utf8', $db_connect);
$db_query_project="SELECT * FROM $tbl_name";
print('<form name="report" method="post" action="">');
print('<label for="project">Projekt </label>');
print('<select name="project_select">');
print('<option>Test</option>');
foreach ($db_query_project as $key => $value){
print('<option>'.$key['project_name'].'</option>');
}
print('</select>');
print('</form>');
$db\u connect=mysql\u connect(“$host”、“$db\u username”、“$db\u password”);
$db_select=mysql_select_db($db_name”);
mysql\u set\u字符集('utf8',$db\u connect);
$db\u query\u project=“从$tbl\u name中选择*”;
打印(“”);
打印(“项目”);
打印(“”);
打印(“测试”);
foreach($db\u query\u项目作为$key=>$value){
打印('.$key['project_name'].');
}
打印(“”);
打印(“”);
是否有更好的方法执行此操作?
您需要连接到数据库并执行查询,以便检索数据并获取数据。为此,可以使用或。下面是一个示例,介绍如何使用mysqli从带有列project\u name
的表$tbl\u name
中获取数据
<?php
$db_query_project= mysql_query("SELECT * FROM $tbl_name");
echo '<form name="report" method="post" action="">';
echo '<label for="project">Projekt </label>';
echo '<select name="project_select">';
echo '<option>Test</option>';
while( $row = mysql_fetch_assoc( $db_query_project ) )
{
echo '<option>'.$row['project_name'].'</option>';
}
echo '</select>';
echo '</form>';
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ")";
exit();
}
$query = "SELECT * FROM `$tbl_name`";
if ($result = $mysqli->query($query)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
printf ("%s \n", $row["project_name"]);
}
/* free result set */
$result->free();
}
/* close connection */
$mysqli->close();
我更喜欢这个:
function getFieldSelect($name, $selected, $values, $attributes) {
$r = "<select name=\"$name\" $attributes>";
foreach ($values as $k => $v) {
if ($k == $selected) {
$sel = "selected";
} else {
$sel = "";
}
$r .= "<option value=\"$k\" $sel>$v</option>\n";
}
$r .= "</select>";
return $r;
}
函数getFieldSelect($name、$selected、$values、$attributes){
$r=“”;
foreach($k=>v){
如果($k==$selected){
$sel=“已选定”;
}否则{
$sel=“”;
}
$r.=“$v\n”;
}
$r=”;
返回$r;
}
我从DB中获取了值,并以数组格式将其提供给我的函数。我认为这是打印选定字段最灵活的方法。您可以使用数据库获取值或任何数组。您缺少执行查询的部分?我是?我对php和mysql非常陌生,我将如何执行它?插入强制性的“使用未弃用的而不是”注释here@jterry是的,我知道,我想我会用mysql做一些基础工作,因为我对mysql有点熟悉,以后再“移植”它。很抱歉,我实际上忘记了粘贴连接的部分。我复制了你的代码并输入了主机、用户等,但我什么也没有得到。请检查PHP错误日志并报告你得到的任何错误。在原始代码中,您仍然没有获取数据并执行查询。您的表是否有“项目名称”列?变量$db_name、$host、$db_password是否在代码的其他地方声明?我注意到代码中有一个未闭合的括号-请重试并报告。顺便说一句,这个错误应该出现在您的PHP错误控制台中:您应该非常期待在编写代码时找到PHP日志文件的位置来检查错误。我注意到缺少括号仍然不起作用。表中确实有一个名为project_name的列,变量声明在我处理的同一文档的顶部。在哪里可以找到错误日志?数据库位于共享主机上,因此我不使用本地主机。这取决于您的php.ini配置,我不知道您的服务器如何工作。如果找不到错误日志,请尝试在不同的行中调用var_dump($mysqli),并查看error属性是否显示一些代码。不过,查找PHP控制台日志会更好。