Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/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 致命错误的备选方案:[]字符串不支持运算符?_Php_Mysql - Fatal编程技术网

Php 致命错误的备选方案:[]字符串不支持运算符?

Php 致命错误的备选方案:[]字符串不支持运算符?,php,mysql,Php,Mysql,我有一个名为gs的表,其中包含各种符号的信息,例如亚利桑那州的国旗、亚利桑那州的州花等,其中亚利桑那州由值(IDArea)us az表示 第二个表格-gw_geog-提供了更多关于地方的信息,包括全名(如亚利桑那州)和家长(如美国) 第三个表——gs2_latin——简单地标准化了拉丁名称。例如,两个州可能对同一朵花有不同的名称(存储在表gs中),但两朵花都有相同的拉丁名称(存储在gs2_拉丁语中) 我有一个查询,它显示一个表,按字母顺序列出所有50个州,以及它们的州符号(本例中为州鸟),如下所

我有一个名为gs的表,其中包含各种符号的信息,例如亚利桑那州的国旗、亚利桑那州的州花等,其中亚利桑那州由值(IDArea)us az表示

第二个表格-gw_geog-提供了更多关于地方的信息,包括全名(如亚利桑那州)和家长(如美国)

第三个表——gs2_latin——简单地标准化了拉丁名称。例如,两个州可能对同一朵花有不同的名称(存储在表gs中),但两朵花都有相同的拉丁名称(存储在gs2_拉丁语中)

我有一个查询,它显示一个表,按字母顺序列出所有50个州,以及它们的州符号(本例中为州鸟),如下所示

阿拉巴马|黄锤

阿拉斯加|帕尔米根

内布拉斯加州西部草地云雀

怀俄明州|西部草地云雀

现在,我想编写第二个查询,将所有位置分组在一起,因此我的第二个表显示如下:

阿拉巴马州黄锤镇

普塔米甘|阿拉斯加

怀俄明州内布拉斯加州西部草地云雀

我还没有弄清楚查询将是什么样子,甚至不确定是否需要包含表gs2_latin。但我的第一个实验遇到了一个让我困惑的问题

在我的原始表格中,以下命令GName将显示一个州或国家的名称

$Place = $row['GName'];
由于我现在希望显示与特定符号关联的每个州或国家,因此我将其更改为:

$Place[] = $row['GName'];
但我得到了以下错误:

致命错误:[]字符串不支持运算符

我的查询尚未完成,可能有点草率。但是你能看到这个错误消息的明显原因吗?还是有更好的方法来做我想做的事情?Thx

注意:下面查询中最重要的值是GS.Symbol(特定符号的名称;例如sunflower)、GS.Latin(符号的学名)和GName(州或国家的名称)


如果要使用
$Place[]=$row['GName']
那么
$Place
必须是一个数组错误消息是不言自明的
$Place
$Place[]=…
行前面的一个字符串,它应该是一个数组,如Mark所说。从该行向后退一步,找到要将其设置为字符串值的位置。
$Place
是一个已经存在的变量,是一个字符串。如果使用
$Place=array()初始化变量没有问题(但可能您应该将此变量命名为与现有变量不同的名称,或者可能您意外地将其设置为字符串)。您可以使用MySQL创建管道分隔字符串:
GROUP_CONCAT(“|”,GName)
@Wrikken-我认为您的建议就是解决方案。我将Place重命名为PlaceGroup,不再收到该错误消息。不幸的是,我现在有另一个问题要解决。在第一行,$PlaceGroup正确显示阿拉巴马州。在阿拉斯加州行中,它显示的不是阿拉斯加州,而是阿拉巴马州阿拉斯加州。事情一直在堆积,直到最后一行列出所有50个州。但我可能可以通过简单地使用代码来解决这个问题。
SELECT GG.N, GG.IDArea, GG.URL GURL, GG.Name GName, GG.Type, GG.IDParent, GG.Parent, GG.ParentName, GG.IDReg,
GS.N, GS.IDArea SymArea, GS.URL, GS.IDSymbol, GS.Title, GS.PageKind3, GS.Symbol, GS.Latin,
GS.Desig, GS.DesigGen, GS.DesigGroup, G4.Common, G4.Latin
FROM gw_geog AS GG
LEFT JOIN gs AS GS ON GS.IDArea = GG.IDArea
LEFT JOIN gs2_latin AS G4 ON G4.Common = GS.Symbol
WHERE GG.IDParent = 'usa' AND GS.DesigGen = :RefCat
GROUP BY GS.IDSymbol ORDER BY GS.N