Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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_Mysql_Sql_Database - Fatal编程技术网

在使用PHP查询MySQL数据库时,如何解决这个未定义的索引错误?

在使用PHP查询MySQL数据库时,如何解决这个未定义的索引错误?,php,mysql,sql,database,Php,Mysql,Sql,Database,我正在通过新的波士顿Youtube视频教程学习PHP 当我在本地主机上用PHP脚本(脚本在错误消息下面)运行查询时,我得到一条重复两次的错误消息。请参阅下面的错误消息 我希望能够在PHP脚本中运行此查询,并返回我查询的信息 运行index.php时出现错误消息: 注意:第10行未定义索引:carries in/Applications/XAMPP/xamppfiles/htdocs/Database_To_Server/index.php 注意:第10行未定义索引:carries in/Appl

我正在通过新的波士顿Youtube视频教程学习PHP

当我在本地主机上用PHP脚本(脚本在错误消息下面)运行查询时,我得到一条重复两次的错误消息。请参阅下面的错误消息

我希望能够在PHP脚本中运行此查询,并返回我查询的信息

运行index.php时出现错误消息:

注意:第10行未定义索引:carries in/Applications/XAMPP/xamppfiles/htdocs/Database_To_Server/index.php

注意:第10行未定义索引:carries in/Applications/XAMPP/xamppfiles/htdocs/Database_To_Server/index.php

代码

index.php

<?php
require 'connect.inc.php';

$query = "SELECT 'food' 'calories' FROM `food` ORDER BY 'id'";

if ($query_run = mysql_query($query)) {

    while ($query_row = mysql_fetch_assoc($query_run)) {
        $food = $query_row['food'];
        $calories = $query_row['calories'];
    }

} else {
    echo mysql_error();
}

?>
<?php
$conn_error = "Could not connect."; 

$mysql_host = 'localhost';
$mysql_user =  'root';
$mysql_pass = '';

$mysql_db = 'a_database';

if (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass) || !@mysql_select_db($mysql_db)) {
    die($conn_error);
} 
?>

connect.inc.php

<?php
require 'connect.inc.php';

$query = "SELECT 'food' 'calories' FROM `food` ORDER BY 'id'";

if ($query_run = mysql_query($query)) {

    while ($query_row = mysql_fetch_assoc($query_run)) {
        $food = $query_row['food'];
        $calories = $query_row['calories'];
    }

} else {
    echo mysql_error();
}

?>
<?php
$conn_error = "Could not connect."; 

$mysql_host = 'localhost';
$mysql_user =  'root';
$mysql_pass = '';

$mysql_db = 'a_database';

if (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass) || !@mysql_select_db($mysql_db)) {
    die($conn_error);
} 
?>

您使用了错误的for(以及列名之间缺少逗号)

执行/并从about
id

$query = "SELECT `food`, `calories` FROM `food` ORDER BY id";
  • 如果您的列中没有食品(似乎是您的表名)

  • 只是一种洞察力

脚注:

您当前的代码对开放。
使用,或


编辑

要修复当前查询,请执行以下操作:

require 'connect.inc.php';

$query = "SELECT `food`, `calories` FROM `food` ORDER BY `id`"; 

$result = mysql_query($query) or die(mysql_error());

while($query_row = mysql_fetch_assoc($result)){
    echo $query_row['food']. " - ". $query_row['calories'];
    echo "<br />";
}
或者从-
mysql\u error()


上面的示例将输出类似于:

1049:未知数据库“不存在数据库”
1146:表“kossu.nonexistenttable”不存在

您使用了错误的for(列名称之间缺少逗号)

执行/并从about
id

$query = "SELECT `food`, `calories` FROM `food` ORDER BY id";
  • 如果您的列中没有食品(似乎是您的表名)

  • 只是一种洞察力

脚注:

您当前的代码对开放。
使用,或


编辑

要修复当前查询,请执行以下操作:

require 'connect.inc.php';

$query = "SELECT `food`, `calories` FROM `food` ORDER BY `id`"; 

$result = mysql_query($query) or die(mysql_error());

while($query_row = mysql_fetch_assoc($result)){
    echo $query_row['food']. " - ". $query_row['calories'];
    echo "<br />";
}
或者从-
mysql\u error()


上面的示例将输出类似于:

1049:未知数据库“不存在数据库”
1146:表“kossu.nonexistenttable”不存在

解决方案是isset(),用于检查数组是否具有请求的元素。 您的SQL中也有一个缺陷。您尝试选择的字段必须用逗号分隔

例如:

<?php
require 'connect.inc.php';

$query = "SELECT food, calories FROM `food` ORDER BY 'id'";

if ($query_run = mysql_query($query)) {

    while ($query_row = mysql_fetch_assoc($query_run)) {
        $food = isset($query_row['food'])?$query_row['food']:'';
        $calories = isset($query_row['calories'])?$query_row['calories']:'';
    }

} else {
    echo mysql_error();
}

?>
解决方案是isset(),用于检查数组是否具有请求的元素。
您的SQL中也有一个缺陷。您尝试选择的字段必须用逗号分隔

例如:

<?php
require 'connect.inc.php';

$query = "SELECT food, calories FROM `food` ORDER BY 'id'";

if ($query_run = mysql_query($query)) {

    while ($query_row = mysql_fetch_assoc($query_run)) {
        $food = isset($query_row['food'])?$query_row['food']:'';
        $calories = isset($query_row['calories'])?$query_row['calories']:'';
    }

} else {
    echo mysql_error();
}

?>

将列和表名改为`

您的食物和卡路里变量在每个循环迭代中都会被覆盖

<?php
require 'connect.inc.php';

$query = "SELECT `food` `calories` FROM `food` ORDER BY 'id'";

if ($query_run = mysqli_query($query)) {

    while ($query_row = mysqli_fetch_assoc($query_run)) {
        $food[] = $query_row['food']; // Food and calories variable transmored into an array
        $calories[] = $query_row['calories'];
    }

} else {
    echo mysqli_error();
}

?>

connect.inc.php

<?php
$conn_error = "Could not connect."; 

$mysql_host = 'localhost';
$mysql_user =  'root';
$mysql_pass = '';

$mysql_db = 'a_database';

if (!@mysqli_connect($mysql_host, $mysql_user, $mysql_pass) || !@mysqli_select_db($mysql_db)) {
    die($conn_error);
} 
?>

将列和表名改为`

您的食物和卡路里变量在每个循环迭代中都会被覆盖

<?php
require 'connect.inc.php';

$query = "SELECT `food` `calories` FROM `food` ORDER BY 'id'";

if ($query_run = mysqli_query($query)) {

    while ($query_row = mysqli_fetch_assoc($query_run)) {
        $food[] = $query_row['food']; // Food and calories variable transmored into an array
        $calories[] = $query_row['calories'];
    }

} else {
    echo mysqli_error();
}

?>

connect.inc.php

<?php
$conn_error = "Could not connect."; 

$mysql_host = 'localhost';
$mysql_user =  'root';
$mysql_pass = '';

$mysql_db = 'a_database';

if (!@mysqli_connect($mysql_host, $mysql_user, $mysql_pass) || !@mysqli_select_db($mysql_db)) {
    die($conn_error);
} 
?>

首先,您在查询中选择的表之间缺少一个coma,然后,您使用的是一个不推荐使用的类(很快就会消失)。 如果你正在学习,你应该检查的数据计算,你应该试试

然后,您应该习惯于使用表或字段名以及字符串/VARCHAR或insert/updates/where等文本


希望这有帮助。

首先,您在查询中选择的表之间缺少一个coma,然后,您使用的是一个不推荐使用的类(很快就会消失)。 如果你正在学习,你应该检查的数据计算,你应该试试

然后,您应该习惯于使用表或字段名以及字符串/VARCHAR或insert/updates/where等文本


希望这能有所帮助。

我碰巧跟你学的是同一个教程。我花了一点时间才弄明白,但在看了他的示例并比较了这里的一些答案之后,我发现在运行查询时,需要使用“`”而不是单引号

(回答不正确) $query=“按“id”从“食品”订单中选择“食品”、“卡路里”

(正确答案)

$query=“选择
食品
热量
来自
食品
订购人
id

我碰巧跟你学的是同一个教程。我花了一点时间才弄明白,但在看了他的示例并比较了这里的一些答案之后,我发现在运行查询时,需要使用“`”而不是单引号

(回答不正确) $query=“按“id”从“食品”订单中选择“食品”、“卡路里”

(正确答案)

$query=“选择
食品
热量
来自
食品
订购人
id

您在这一行中缺少逗号和括号“按id从
食品
订单中选择“食品”“卡路里”;“另外,强烈建议将表名和列名包装在后面。您应该使用
mysqli\u*
函数,而不是
mysql\u*
。顺便说一句,除了答案之外,这个示例代码不会让您在循环中覆盖变量。谢谢大家的评论。@Ra”phaelMüller,我将对此进行研究,但你能告诉我为什么该函数更好吗?在PHP中仍然非常新。我只做了几个星期。@jeroen,是的。我仍在继续教程,但因为我收到了错误消息(如上所述),我必须先解决这个问题,然后才能继续。感谢您的反馈!您在这一行中缺少了一个逗号和括号“从
食品中选择“食品”“卡路里”
按“id”订购”另外,强烈建议将表名和列名包装在背面勾选框中。您应该使用
mysqli\u*
函数,而不是
mysql\u*
,除了