Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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/63.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查询-不是唯一的表别名mysql_Php_Mysql_Sql_Html Table - Fatal编程技术网

Php 在表中输入高级SQL查询-不是唯一的表别名mysql

Php 在表中输入高级SQL查询-不是唯一的表别名mysql,php,mysql,sql,html-table,Php,Mysql,Sql,Html Table,在尝试将数据从MySQL数据库显示到表时,出现错误“notunique table/alias”。假设它与外键有关 下面是用于创建表的SQL,后面插入了一些值。SQL运行得很好,没有出现任何问题,但我添加了代码,因为这一切都与在屏幕上获取表密切相关 CREATE TABLE city ( id int not null primary key auto_increment, name varchar(30) not null ) type=innodb; CREATE TABLE

在尝试将数据从MySQL数据库显示到表时,出现错误“notunique table/alias”。假设它与外键有关

下面是用于创建表的SQL,后面插入了一些值。SQL运行得很好,没有出现任何问题,但我添加了代码,因为这一切都与在屏幕上获取表密切相关

CREATE TABLE city (
   id int not null primary key auto_increment,
   name varchar(30) not null
) type=innodb;

CREATE TABLE cinema (
   id int not null  primary key auto_increment,
   name varchar(50) not null,
   city int not null,
   foreign key(city) references city(id)
) type=innodb;

CREATE TABLE movie (
   id int not null primary key auto_increment,
   name varchar(30) not null
) type=innodb;

CREATE TABLE relationship (
   whattime time NOT NULL,
   whichdate date NOT NULL,
   movieid int not null,
   cinemaid int not null,
   primary key (cinemaid, movieid),
   foreign key(movieid) references movie(id),
   foreign key(cinemaid) references cinema(id)
) type=innodb;

INSERT INTO city (id, name) VALUES (1, 'Paris'), (2, 'Copenhagen'), (3, 'London'), (4, 'Lisbon') 
INSERT INTO movie (id, name) VALUES (1, 'The Church')
INSERT INTO cinema (id, name, city) VALUES (1, 'Pathé', 1), (2, 'Cinemaxx', 2), (3, 'Cineworld', 3), (4, 'ZON Lusomundo', 4)
INSERT INTO relationship (whattime, whichdate, movieid, cinemaid) VALUES ('21:00:00', '2011-12-27', 1, 1), ('19:30:00', '2011-12-28', 1, 2), ('20:00:00', '2011-12-27', 1, 3), ('21:00:00', '2012-01-02', 1, 4)
这里是php,它给了我一个不唯一的表/别名:“cinema”错误。知道为什么会这样吗

<?php
include "inc/mysql_con.php";
mysql_select_db($db) or die(mysql_error());

$query = "select city.name, cinema.name, movie.name, date, time from city, cinema, relationship, movie";
$query .= "where cinema.city = city.id";
$query .= "and cinemaid = cinema.id";
$query .= "and movieid = movie.name";
$query .= "order by date";
mysql_query($query) or die(mysql_error()); 

echo "<table id='premiere'>";
echo "<tr> <th>CITY</th> <th>CINEMA</th> <th>DATE</th> <th>TIME</th></tr>";
 while($result = mysql_fetch_array( $query )) {
    echo "<tr><td>"; 
    echo $result['city.name'];
    echo "</td><td>"; 
    echo $result['cinema.name'];
    echo "</td><td>";
    echo $result['date'];
    echo "</td><td>";
    echo $result['time'];
    echo "</td></tr>";
}
echo "</table>";    
?>
它在SQL中显示table fine,但在PHP中不显示:

错误:警告:mysql_fetch_array()希望参数1是资源,第75行content.php中给出的参数为null
第75行:while($query=mysql\u fetch\u数组($result)){


非常感谢您的帮助。

看起来您的字符串连接遗漏了空格,因此前两行将给出…cinema,relationship,moviewhere cinema.city=city.id。在这种情况下,sql会读取两次cinema…会像这样简单吗?我会在发送查询之前回显它。

看起来您的字符串连接遗漏了空格,因此前两行将给出…cinema,relationship,moviewhere cinema.city=city.id。在这种情况下,sql会读取两次cinema…这样简单吗?我会在发送之前回显查询。

是的,你在这方面是对的!但是,出现了新错误。警告:mysql\u fetch\u array()预期参数1是资源,第75行file.php中给出的字符串。第75行:虽然($result=mysql\u fetch\u array($query)){Checked sql result,它给出0,没有条目。mysql\u query接受2个参数,第二个是连接句柄,这是缺少的。在包含的mysql\u con.php中,必须有一行类似于$cx=mysql\u connect($host,$user,$password),您需要调用mysql\u query($query,$cx)。是的,您在这方面是对的!但是,出现了新的错误。警告:mysql\u fetch\u array()希望参数1是resource,字符串在file.php的第75行给出。第75行:while($result=mysql\u fetch\u array($query)){Checked sql result,它给出0,没有条目。mysql\u query需要2个参数,第二个是连接句柄,这就是缺少的。在包含的mysql\u con.php中,必须有一行像$cx=mysql\u connect($host,$user,$password),您需要调用mysql\u query($query,$cx)。mysql_*函数已被弃用很长时间,并且在PHP 7中已被完全删除。您不应使用mysql_*函数。尤其是如果您希望您的代码在当前版本的PHP中工作,请将其替换为mysqli或PDO。mysql_*函数已被弃用很长时间,并且已被完全删除在PHP7中,您不应该使用mysql_*函数。尤其是如果您希望您的代码在当前版本的PHP中工作,请使用mysqli或PDO替换它们
SELECT city.name, cinema.name, whichdate, whattime
FROM city, cinema, relationship, movie
WHERE cinema.city = city.id
AND cinemaid = cinema.id
ORDER BY whichdate