Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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 有关SQL语法错误消息的帮助_Php_Sql - Fatal编程技术网

Php 有关SQL语法错误消息的帮助

Php 有关SQL语法错误消息的帮助,php,sql,Php,Sql,假设上面的插入是dkb的三个项目,请参见在查询dbl.id=dkb.id中它在dkb.id上连接的dbl.id Well dbl.id对于dkb表中的一个项目有三个价格,在本例中是项目1的三个价格、项目136的三个价格和项目2的三个价格。因此,它有三种不同的种类,并对dkb中的每一项进行了描述。从现在起,如果您查看一下查询下面while循环中分配的字段,其中一些是dkb字段,另一些是cdkb和dbl字段。正如我所说,从dkb表的信息来看,while循环中的设置是可以的,因为dkb表只有一个价格和

假设上面的插入是dkb的三个项目,请参见在查询dbl.id=dkb.id中它在dkb.id上连接的dbl.id Well dbl.id对于dkb表中的一个项目有三个价格,在本例中是项目1的三个价格、项目136的三个价格和项目2的三个价格。因此,它有三种不同的种类,并对dkb中的每一项进行了描述。从现在起,如果您查看一下查询下面while循环中分配的字段,其中一些是dkb字段,另一些是cdkb和dbl字段。正如我所说,从dkb表的信息来看,while循环中的设置是可以的,因为dkb表只有一个价格和一个名称。我想的是安排一个if语句条件来检测信息来自page1.php的位置,这是一个名称和价格,或者来自page2.php的位置,这将是一个名称,从一个到三个价格和种类,取决于用户选择的小型、中型或大型托盘。每个托盘都有一个价格,但它将是一个名称1、136或2,这些是来自dkb表的id。在while循环中的if语句中,显示page2.php中需要一到三种价格和品种的信息将有一个foreach循环,或者可能有一个for循环,但不知道用户在page2.php中选择了多少品种,以便在购物车中的while循环中显示这些信息,并使用if语句检测天气从page1.php或page2.php中选择

INSERT INTO `dbl` (`id`, `price`, `variety`, `description`) VALUES
(1, 20.30, 'Small Tray', 'Serves 6 to 8 people' ),
(1, 25.90, 'Medium Tray', 'Serves 12 to 15 people'),
(1, 30.90, 'Large Tray', 'Serves 18 to 21 people'),
(136, 0.00, 'Small Tray', '', 'small'),
(136, 0.00, 'Medium Tray', '' ),
(136, 0.00, 'Large Tray', ''),
(2, 0.00, 'Small Tray', ''),
(2, 0.00, 'Medium Tray', ''),
(2, 0.00, 'Large Tray', '');

给我最后一手资料。

在我看来,你在以下内容之后加了太多逗号:

 while($row = mysql_fetch_array($result))
{  
if (table cdkb) { 
  [1]qyt         image      name          price        remove
     1            ---       marina        $18.90        remove?    
     }end of if statement
Else table dkb {
   1]qyt            Image         Name             Price                  Remove
     1               ---         marina         Small Tray  $18.90        remove? 
                                                Medium Tray $30.24
                                                Large Tray  $35.90
                  } // end of else statement

                  }//end of while loop
编辑:查询中的另一个错误是,您正在引用表dbl中的字段:

dbl.id dbl_id

但是您没有将该表加入查询,因此
dbl.id
是一个未知的实体。

在我看来,您在以下内容之后的逗号太多了:

 while($row = mysql_fetch_array($result))
{  
if (table cdkb) { 
  [1]qyt         image      name          price        remove
     1            ---       marina        $18.90        remove?    
     }end of if statement
Else table dkb {
   1]qyt            Image         Name             Price                  Remove
     1               ---         marina         Small Tray  $18.90        remove? 
                                                Medium Tray $30.24
                                                Large Tray  $35.90
                  } // end of else statement

                  }//end of while loop
编辑:查询中的另一个错误是,您正在引用表dbl中的字段:

dbl.id dbl_id

但是您没有将该表加入查询,因此
dbl.id
是一个未知实体。

您的选择在最后一个字段的末尾有一个逗号。你应该去掉那个逗号

dbl.id dbl_id
选择
cart.id cart\u id,
dkb.id dkb_id,
cdkb.id cdkb_id,

dbl.id dbl_id,您的选择在最后一个字段的末尾有一个逗号。你应该去掉那个逗号

dbl.id dbl_id
选择
cart.id cart\u id,
dkb.id dkb_id,
cdkb.id cdkb_id,

dbl.id dbl_id,如果未设置$\u GET['is'],您的查询也将崩溃。您将null值分配给$is和$ic,而不是字符串“null”。字符串上下文中的空值是一个空字符串(“”),因此您将得到
ON(cart.id=dkb.id和dkb.id=)
,这是一个语法错误

您必须将初始分配更改为以下内容:

SELECT
cart.id    cart_id,
dkb.id     dkb_id,
cdkb.id    cdkb_id,
dbl.id     dbl_id, <-- comma here isn't needed

如果未设置$\u GET['is'],您的查询也会爆炸。您将null值分配给$is和$ic,而不是字符串“null”。字符串上下文中的空值是一个空字符串(“”),因此您将得到
ON(cart.id=dkb.id和dkb.id=)
,这是一个语法错误

您必须将初始分配更改为以下内容:

SELECT
cart.id    cart_id,
dkb.id     dkb_id,
cdkb.id    cdkb_id,
dbl.id     dbl_id, <-- comma here isn't needed

非常感谢你,逗号停止了查询的执行,现在请友好一点,看看第一篇文章中编辑的部分。我有dkb.id dkb_id,dkb.price price1,dkb.name name1,但是他们不会通过php显示html上的任何数据。我不知道为什么。你发布的代码中仍然有逗号。您没有检查查询是否实际执行,因此mysql\u fetch\u数组将抛出警告,但如果将error\u reporting设置为不显示错误,则可能看不到警告。确保在mysql_查询后检查$result===false,这表明是否发生了错误。该命令已被修复。我将最后一个代码放入服务器,但我已修复了该命令。谢谢。这就像($result==false){echo“
mysql\u error:”
“echo”mysql\u errno:“.mysql\u errno:”
“;}请友好一点,并举例说明你在说什么。非常感谢逗号阻止了查询的执行,现在请友好一点,看看post one中编辑的部分。我有dkb.id dkb_id,dkb.price price1,dkb.name name1,但是他们不会通过php显示html上的任何数据。我不知道为什么。你发布的代码中仍然有逗号。您没有检查查询是否实际执行,因此mysql\u fetch\u数组将抛出警告,但如果将error\u reporting设置为不显示错误,则可能看不到警告。确保在mysql_查询后检查$result===false,这表明是否发生了错误。该命令已被修复。我将最后一个代码放入服务器,但我已修复了该命令。谢谢。这就像($result==false){echo“
mysql\u error:”
“echo”mysql\u errno:“.mysql\u errno:”
“;}如果你很友善,请举例说明你在说什么。非常感谢,逗号正在停止查询执行,现在请友善地看一下post one中编辑的部分。我有dkb.id dkb_id,dkb.price price1,dkb.name name1,但是他们不会通过php显示html上的任何数据。我不知道为什么。为什么不自己运行查询呢?启动mysql监视器,剪切并粘贴查询,然后查看有哪些数据通过。如果您首先没有检查查询本身是否正常工作,那么试图弄清楚PHP为什么没有输出东西是没有用的。可能是您的PHP代码工作正常,查询返回null或空字符串或其他任何内容。在phpmyadmin中运行mysql查询/查询框的mysql监视器会是什么?如果我有许多其他字段,但我不会在购物车中使用,我将不得不在“选择任何方式”(SELECT any ways)中指定它们,即使我不会使用它们,该怎么办