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

Php 循环数组未给出所需的结果

Php 循环数组未给出所需的结果,php,mysql,arrays,json,foreach,Php,Mysql,Arrays,Json,Foreach,我正在编写一个脚本,它从一个表(release_dates)获取信息,但也从另一个表(release_screenshots)获取X个屏幕截图的列表。然后,它将所有信息放入一个数组中,并将其编码为JSON 但是,每个JSON条目都有完全相同的屏幕截图列表 以下是我的代码片段: $json_response = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $row_array['id'] = $row

我正在编写一个脚本,它从一个表(release_dates)获取信息,但也从另一个表(release_screenshots)获取X个屏幕截图的列表。然后,它将所有信息放入一个数组中,并将其编码为JSON

但是,每个JSON条目都有完全相同的屏幕截图列表

以下是我的代码片段:

$json_response = array();

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $row_array['id'] = $row['id'];
    $row_array['game_title'] = $row['game_title'];
    $row_array['game_platform'] = $row['game_platform'];
    $row_array['game_genre'] = $row['game_genre'];
    $row_array['game_publisher'] = $row['game_publisher'];
    $row_array['release_eu'] = $row['release_eu'];
    $row_array['release_us'] = $row['release_us'];
    $row_array['rrp_gbp'] = $row['rrp_gbp'];
    $row_array['rrp_eur'] = $row['rrp_eur'];
    $row_array['rrp_usd'] = $row['rrp_usd'];
    $row_array['link_address'] = $row['link_address'];
    $row_array['logo_image'] = $row['logo_image'];
    $row_array['box_art'] = $row['box_art'];

    //Build incrementing variable name
    $ssno = 1;
    $ss = "ss_".$ssno;

    //Get the list of screenshots where the referring ID is = to the current ID
    $query2 = "SELECT * FROM release_screenshots WHERE parent_id = '$row_array[id]'";
    $result2 = mysql_query($query2);
    while($row2 = mysql_fetch_array($result2)){
        $array[] = $row2;
    }

    //Add each Screenshot link to the array build and increment the variable name
    foreach($array as $x){

        $row_array[$ss] = $x['link'];
        $ssno = $ssno + 1;
        $ss = "ss_".$ssno;
    }

    $row_array['youtube_link'] = $row['youtube_link'];
    $row_array['notes'] = $row['notes'];
    $row_array['entry_created'] = $row['entry_created'];


    array_push($json_response,$row_array);
}
echo json_encode($json_response);

我希望我已经解释得足够清楚了。如果没有,我可以提供进一步的信息。
非常感谢您的帮助。

您需要在第二次
循环之前清除
$array
。否则,您将从上一个游戏添加到阵列中

$query2 = "SELECT * FROM release_screenshots WHERE parent_id = '$row_array[id]'";
$result2 = mysql_query($query2);
$array = array();
while($row2 = mysql_fetch_array($result2)){
    $array[] = $row2;
}
您还需要在外部
循环开始时清除
$row\u array

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $row_array = array();
    ...

您需要在第二个
while
循环之前清除
$array
。否则,您将从上一个游戏添加到阵列中

$query2 = "SELECT * FROM release_screenshots WHERE parent_id = '$row_array[id]'";
$result2 = mysql_query($query2);
$array = array();
while($row2 = mysql_fetch_array($result2)){
    $array[] = $row2;
}
您还需要在外部
循环开始时清除
$row\u array

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $row_array = array();
    ...

您需要在第二个
while
循环之前清除
$array
。否则,您将从上一个游戏添加到阵列中

$query2 = "SELECT * FROM release_screenshots WHERE parent_id = '$row_array[id]'";
$result2 = mysql_query($query2);
$array = array();
while($row2 = mysql_fetch_array($result2)){
    $array[] = $row2;
}
您还需要在外部
循环开始时清除
$row\u array

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $row_array = array();
    ...

您需要在第二个
while
循环之前清除
$array
。否则,您将从上一个游戏添加到阵列中

$query2 = "SELECT * FROM release_screenshots WHERE parent_id = '$row_array[id]'";
$result2 = mysql_query($query2);
$array = array();
while($row2 = mysql_fetch_array($result2)){
    $array[] = $row2;
}
您还需要在外部
循环开始时清除
$row\u array

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $row_array = array();
    ...


不是两个查询,而是执行一个连接两个表的查询。。。。是的,只需一次查询就可以节省时间(加快页面速度)。但是你能不能提供“SHOW CREATE TABLE release_screenshot”或者澄清一下“parent_id”在人类语言中的含义?@Barmar-我对MYSQL和PHP都很陌生。我知道连接表是什么,但我不知道如何通过连接表来实现我想要实现的目标。@v.sheldeshov“parent_id”是release_屏幕截图表中的一列名称。它用于引用屏幕截图所属条目的id。请参阅:不要执行两个查询,而是执行连接两个表的单个查询。。。。是的,只需一次查询就可以节省时间(加快页面速度)。但是你能不能提供“SHOW CREATE TABLE release_screenshot”或者澄清一下“parent_id”在人类语言中的含义?@Barmar-我对MYSQL和PHP都很陌生。我知道连接表是什么,但我不知道如何通过连接表来实现我想要实现的目标。@v.sheldeshov“parent_id”是release_屏幕截图表中的一列名称。它用于引用屏幕截图所属条目的id。请参阅:不要执行两个查询,而是执行连接两个表的单个查询。。。。是的,只需一次查询就可以节省时间(加快页面速度)。但是你能不能提供“SHOW CREATE TABLE release_screenshot”或者澄清一下“parent_id”在人类语言中的含义?@Barmar-我对MYSQL和PHP都很陌生。我知道连接表是什么,但我不知道如何通过连接表来实现我想要实现的目标。@v.sheldeshov“parent_id”是release_屏幕截图表中的一列名称。它用于引用屏幕截图所属条目的id。请参阅:不要执行两个查询,而是执行连接两个表的单个查询。。。。是的,只需一次查询就可以节省时间(加快页面速度)。但是你能不能提供“SHOW CREATE TABLE release_screenshot”或者澄清一下“parent_id”在人类语言中的含义?@Barmar-我对MYSQL和PHP都很陌生。我知道连接表是什么,但我不知道如何通过连接表来实现我想要实现的目标。@v.sheldeshov“parent_id”是release_屏幕截图表中的一列名称。它用于引用屏幕截图所属条目的id。看:太棒了!但是,在此处添加行“$array=array();”后,我仍然得到相同的结果。您还需要重置
$row\u array
。太棒了!这非常有效。非常感谢,;非常感谢:)太好了!但是,在此处添加行“$array=array();”后,我仍然得到相同的结果。您还需要重置
$row\u array
。太棒了!这非常有效。非常感谢,;非常感谢:)太好了!但是,在此处添加行“$array=array();”后,我仍然得到相同的结果。您还需要重置
$row\u array
。太棒了!这非常有效。非常感谢,;非常感谢:)太好了!但是,在此处添加行“$array=array();”后,我仍然得到相同的结果。您还需要重置
$row\u array
。太棒了!这非常有效。非常感谢,;非常感谢:)