Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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与HTML列表?_Php_Html_Mysql_List - Fatal编程技术网

PHP和MySQL与HTML列表?

PHP和MySQL与HTML列表?,php,html,mysql,list,Php,Html,Mysql,List,我试图为MySQL表中的每个元素创建一个HTML列表,但是我返回了一个错误,我不知道如何修复它。它表示“警告:mysql\u fetch\u assoc():在第214行的/home/rmbennin/htdocs/labs/dataDesign/dbLib.php中提供的参数不是有效的mysql结果资源” 此处的代码正在调用列表: global $connect; $output = ""; $output .= '<form method="post" action="sendD

我试图为MySQL表中的每个元素创建一个HTML列表,但是我返回了一个错误,我不知道如何修复它。它表示“警告:mysql\u fetch\u assoc():在第214行的/home/rmbennin/htdocs/labs/dataDesign/dbLib.php中提供的参数不是有效的mysql结果资源”

此处的代码正在调用列表:

 global $connect;
 $output = "";
 $output .= '<form method="post" action="sendData.php">';

 //process a query just to get field names
 $query = "SELECT * FROM $tableName";
 $result = mysql_query($query, $connect) or die(mysql_error());

if($tableName == "meals"){
    $theField = mysql_fetch_field($result);
    $fieldName = $theField->name;
    $Name = fieldToList($tableName, "Name", "foodsID", $fieldName);

    $output .= <<< HERE

    * Name of meal:<br>
    $Name<br>

    * How many servings did you have?:<br>
    <input type="number" name="Servings" required><br>

HERE;
global$connect;
$output=“”;
$output.='';
//处理查询只是为了获取字段名
$query=“从$tableName中选择*”;
$result=mysql\u query($query,$connect)或die(mysql\u error());
如果($tableName==“膳食”){
$theField=mysql\u fetch\u字段($result);
$fieldName=$theField->name;
$Name=fieldToList($tableName,“Name”,“foodsID”,$fieldName);

$output.=尝试将单元格名和表名放入

例如:

$query = "SELECT * FROM $tableName";
变成

$query = "SELECT * FROM `$tableName`";
而且

$query = "SELECT `$keyName`, `$fieldName` FROM `$tableName`";

其他可能的解决方案:
global$connect;
是否也连接


其他可能的解决方案:尝试
var\u dump($fieldName)
和在查询中传递的其他变量。它们是否与数据库中的变量相对应



此外,您应该停止使用mysql_*函数。它们已被弃用,可能会对系统的安全造成隐患。相反,请切换到PDO或Mysqli。这可能会帮助您决定选择哪一个。

根据我的说法,您的查询中有一些错误。请更改以下部分代码

 while ($row = mysql_fetch_assoc($result)){

这将检查查询结果参数是1还是0,如果查询将正确执行,则此部分将工作,否则将不工作。
总之,您不会得到任何错误。

添加一些调试代码

echo $query; //to make sure its correct. 


 if (!$connect)
   {
   die('could not connect: ' . mysql_error());
   }

$query = "SELECT $keyName, $fieldName FROM $tableName";
$result = mysql_query($query,$connect)  or die(mysql_error());
print_r(mysql_fetch_assoc($result));

您的查询失败了;您在那里没有任何错误检查,因此您假设它总是有效的-您应该添加对
mysql\u error()的调用
如果没有。你也应该考虑移动到PDO或mysqli,因为
mysql\u
函数正在被弃用。对我来说这似乎是一个合法的问题,不理解否决票…不起作用。我相信问题是我在fielToList中调用了错误的东西,但我不确定我应该调用什么。这只是练习,不是为了一个商业网站。别担心,我知道我不应该使用mysql_*函数!你有没有在你所有的查询中打勾?查看更新的答案,尝试复制粘贴它。
 if($result)
 {
   while ($row = mysql_fetch_assoc($result)){
echo $query; //to make sure its correct. 


 if (!$connect)
   {
   die('could not connect: ' . mysql_error());
   }

$query = "SELECT $keyName, $fieldName FROM $tableName";
$result = mysql_query($query,$connect)  or die(mysql_error());
print_r(mysql_fetch_assoc($result));