Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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通过数据集递增 global$mysqli; $building=$position['buildingID']; 如果($level=='room'){ //获取建筑尺寸 $buildingQuery=“从buildingID='$building'的建筑物中选择*; $buildingArea=$mysqli->query($buildingQuery)或die(mysqli_error($mysqli)); $Area=$buildingArea->fetch_数组(MYSQLI_ASSOC); $AreaX=$Area['AreaX']; $AreaY=$Area['AreaY']; $sql=“从buildingID=“$building”的房间中选择*; $result=$mysqli->query($sql)或die(mysqli_error($mysqli)); $rooms=$result->fetch_数组(MYSQLI_ASSOC); 对于($y=0;$y_Php_Arrays_For Loop_Mysqli - Fatal编程技术网

PHP通过数据集递增 global$mysqli; $building=$position['buildingID']; 如果($level=='room'){ //获取建筑尺寸 $buildingQuery=“从buildingID='$building'的建筑物中选择*; $buildingArea=$mysqli->query($buildingQuery)或die(mysqli_error($mysqli)); $Area=$buildingArea->fetch_数组(MYSQLI_ASSOC); $AreaX=$Area['AreaX']; $AreaY=$Area['AreaY']; $sql=“从buildingID=“$building”的房间中选择*; $result=$mysqli->query($sql)或die(mysqli_error($mysqli)); $rooms=$result->fetch_数组(MYSQLI_ASSOC); 对于($y=0;$y

PHP通过数据集递增 global$mysqli; $building=$position['buildingID']; 如果($level=='room'){ //获取建筑尺寸 $buildingQuery=“从buildingID='$building'的建筑物中选择*; $buildingArea=$mysqli->query($buildingQuery)或die(mysqli_error($mysqli)); $Area=$buildingArea->fetch_数组(MYSQLI_ASSOC); $AreaX=$Area['AreaX']; $AreaY=$Area['AreaY']; $sql=“从buildingID=“$building”的房间中选择*; $result=$mysqli->query($sql)或die(mysqli_error($mysqli)); $rooms=$result->fetch_数组(MYSQLI_ASSOC); 对于($y=0;$y,php,arrays,for-loop,mysqli,Php,Arrays,For Loop,Mysqli,请尝试此操作。我获取房间并将其置于循环之外。然后我生成了房间坐标图。这样,您只需在房间中循环一次,而无需对网格的每行和每列执行此操作 然后,为了取整它,我在网格上迭代,检查坐标是否在地图上。如果是,我们找到了一个房间,否则我们找到了一个空白 global $mysqli; $building = $position['buildingID']; if($level == 'room') { // Get building size

请尝试此操作。我获取房间并将其置于循环之外。然后我生成了房间坐标图。这样,您只需在房间中循环一次,而无需对网格的每行和每列执行此操作

然后,为了取整它,我在网格上迭代,检查坐标是否在地图上。如果是,我们找到了一个房间,否则我们找到了一个空白

    global $mysqli;
    $building = $position['buildingID'];     
    if($level == 'room') {

        // Get building size 
        $buildingQuery = "SELECT * FROM buildings WHERE buildingID = '$building'";
        $buildingArea = $mysqli->query($buildingQuery) or die(mysqli_error($mysqli));
        $Area = $buildingArea->fetch_array(MYSQLI_ASSOC);
        $AreaX = $Area['areaX'];
        $AreaY = $Area['areaY'];

        $sql = "SELECT * FROM rooms WHERE buildingID = '$building'";
        $result = $mysqli->query($sql) or die(mysqli_error($mysqli));
        $rooms = $result->fetch_array(MYSQLI_ASSOC);

        for($y = 0; $y <= $AreaY; $y++){
            for($x = 0; $x <= $AreaX; $x++) {
                //See if room exists for coordinates
                    if(($rooms['position_x'] == $x) && ($rooms['position_y'] == $y)
                        && ($position['room_x'] == $x) && ($position['room_y'] == $y)) {
                        echo '<img src="../../resources/images/inroom.php" id="'.$x.'_'.$y.'" />';
                        echo ' ';
                    } else if (($rooms['position_x'] == $x) && ($rooms['position_y'] == $y)) {
                            echo '<img src="../../resources/images/inroom.php" id="'.$x.'_'.$y.'" />';
                            echo ' ';
                    } else {
                        echo "(".$x.","." ".$y.")";
                        if ($x == $AreaX) {
                            echo '<br />'; 
                        }
                    }
            }
        }
    }
}
$rooms=$result->fetch_数组(MYSQLI_ASSOC);
$map=array();
foreach($room作为$room)
{
$position_x=$room['position_x'];
$position_y=$room['position_y'];
$map[$position\u x][$position\u y]=$room;
}

对于($y=0;$yI不知道当前它是一个无限循环。为什么要在for循环中检索房间信息?它可能会发生变化吗?为什么不在循环外执行?您还应该查看while条件。如果我正确理解您的问题,那么有一组房间,您需要找到具有s的房间ame x和y位置,对吗?可能会改变,每个建筑都有不同的示意图,你是对的,是的,while循环被破坏了,但我不确定如何/为什么。要重申这个问题,我需要从建筑表中提取房间信息,房间的默认状态是空的,所以我只有两个不是空的条目,但是坐标不同。我需要输出“房间”、“空白”、“空白”、“房间”如果room等于循环x和y。^是的,我暂时在dev服务器上删除了它,它确实会永远运行,因为我不知道如何增加到下一个结果集。效果非常好,有时您只需要一个新的透视图。谢谢:DYou's welcome.:)
$rooms = $result->fetch_array(MYSQLI_ASSOC);

$map = array();

foreach($rooms as $room)
{
    $position_x = $room['position_x'];
    $position_y = $room['position_y'];
    $map[$position_x][$position_y] = $room;
}

for($y=0;$y<=$AreaY;$y++)
{
    for($x = 0; $x <= $AreaX; $x++) 
    {
        if(isset($map[$x][$y]))
        {
            // room
        }
        else {
            // blank
        }
    }
}