0

我删除了一个旧的、措辞不好的问题,并重新发布以不浪费任何人的时间。

我正在尝试从两个表、房间和项目中查询内容。然后在嵌套循环中,使用前两个表中的信息在第三个表中创建一个条目。

'对于每个房间,插入所有标准项目'

<?php
mysql_connect("******", "****", "******") or die(mysql_error());
mysql_select_db("MaintenanceTracking") or die(mysql_error());// Check connection

//collect standard items names
$stditemdata = 'SELECT * FROM `StandardItems`';
$itemresult = mysql_query($stditemdata) or die("Couldn't execute query. ". mysql_error());
$itemarray = mysql_fetch_array( $itemresult ));

//collect room info
$roomdata = 'SELECT * FROM `Rooms`';
$roomresult = mysql_query($roomdata) or die("Couldn't execute query. ". mysql_error());

//repeat for each room
while($room = mysql_fetch_array( $roomresult )) 
{
    //repeat for each item
 for ($i = 0; $i <= count($itemarray); $i++)
   {
      mysqlquery("INSERT into Items 
      (ItemNumber, Name, LocationCode)
      VALUES 
      (NULL, $itemarray['Name'], $room['LocationCode'])");
   }
}
?>

我对 php 还很陌生,必须承认语法有时让我难过……例如,众所周知,我错过了行尾的分号。

一百万提前感谢任何可以帮助我的人。

最亲切的问候

4

1 回答 1

0
  mysqlquery("INSERT into Items 
  (ItemNumber, Name, LocationCode)
  VALUES 
  (NULL, $itemarray['Name'], $room['LocationCode'])");

它应该是

  mysql_query("INSERT into `Items` 
  (`ItemNumber`, `Name`, `LocationCode`)
  VALUES 
  (NULL, $itemarray['Name'], $room['LocationCode'])");

您使用mysqlquery而不是mysql_query

为避免 mysql 保留名称(fe 日期、表等)的重复,请使用此语法

`column_name` or `table_name`

更新

哦..我想念!看,你尝试在这里写一些字符串到 DB

  mysql_query("INSERT into `Items` 
  (`ItemNumber`, `Name`, `LocationCode`)
  VALUES 
  (NULL, $itemarray['Name'], $room['LocationCode'])");

查询中的所有字符串都必须用引号单'或双"结束,因此您的查询应如下所示

  mysql_query("INSERT into `Items` 
  (`ItemNumber`, `Name`, `LocationCode`)
  VALUES 
  (NULL, \"$itemarray['Name']\", \"$room['LocationCode']\")");

(我在 " 之前使用 \ 符号来转义引号),但我建议您使用如下语法:

  mysql_query("INSERT into `Items` 
  (`ItemNumber`, `Name`, `LocationCode`)
  VALUES 
  (NULL, '".$itemarray['Name']."', '".$room['LocationCode']."')");
于 2013-04-15T16:46:50.353 回答