Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 循环通过mysql数组并将每一行打印到<;选择>;_Php_Html_Mysql - Fatal编程技术网

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控制台日志会更好。