Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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 $WYNIK.=''; } } $WYNIK.=''; } $WYNIK.=''; $WYNIK.=''; } $WYNIK.=''; $WYNIK.=''; $SRODEK.=$WYNIK;_Php_Mysql_Loops - Fatal编程技术网

Php $WYNIK.=''; } } $WYNIK.=''; } $WYNIK.=''; $WYNIK.=''; } $WYNIK.=''; $WYNIK.=''; $SRODEK.=$WYNIK;

Php $WYNIK.=''; } } $WYNIK.=''; } $WYNIK.=''; $WYNIK.=''; } $WYNIK.=''; $WYNIK.=''; $SRODEK.=$WYNIK;,php,mysql,loops,Php,Mysql,Loops,您需要更改阵列构建代码,使其看起来像这样(对于执行此任务的所有位置都相同): 原因是上次运行mysql时,它返回false(因为没有更多的行),并在数组中添加false结果作为一项 这是因为它会在检查while循环中的条件之前添加到数组中,而您希望相反的情况是,您希望它在添加到数组之前检查条件。为什么要使用长期不推荐的mysql\ucode>代码库?它在许多年前就已经停止使用,并在PHP7中被完全删除。不应使用此库编写新代码。它使您容易受到SQL注入攻击(由于缺少参数化查询支持)和其他潜在的未修

您需要更改阵列构建代码,使其看起来像这样(对于执行此任务的所有位置都相同):

原因是上次运行mysql时,它返回false(因为没有更多的行),并在数组中添加
false
结果作为一项


这是因为它会在检查while循环中的条件之前添加到数组中,而您希望相反的情况是,您希望它在添加到数组之前检查条件。

为什么要使用长期不推荐的
mysql\ucode>代码库?它在许多年前就已经停止使用,并在PHP7中被完全删除。不应使用此库编写新代码。它使您容易受到SQL注入攻击(由于缺少参数化查询支持)和其他潜在的未修补漏洞的攻击。尽快切换到使用
mysqli
PDO
,然后学习如何编写参数化查询以保护数据免受恶意输入。有关风险的简单解释和一些安全编写查询的PHP示例代码,请参阅。请使用英语编写代码好吗?读起来很不舒服,我不知道哪里出了问题,但我知道为什么会出问题:你把数据和输出混为一谈。首先将数据放在一个数组中,然后根据该数组格式化输出。在这种情况下,捕获任何错误都要容易得多。哪个数组的元素太多?这不是很清楚。我使用mysql而不是mysqli,因为我必须在非常旧的项目中添加模块,而且我没有时间修改整个代码。我知道这是非常错误的。。。每个数组至少有一个额外的元素,我只是想知道为什么,也许我忘了什么。从第一个查询开始,它应该返回14个元素,并且在phpmyadmin中返回。当我将查询结果放入数组时,我接收到15个元素。
$WYNIK = '
            <h2 class="site-title">Kandydaci</h2>
            <div id="kandydaci_lista" class="row">
                <ul class="rejon">';
    $zapytanie='SELECT * FROM komitety';
        $wynik=mysql_query($zapytanie) or die('błąd bazy');
        $komitety=array();

        while($komitety[]=mysql_fetch_assoc($wynik));


        foreach($komitety as $komitet){
            $WYNIK.='<li><span id="komitet_'.$komitet['id'].'">'.$komitet['nazwa'].'<img src="'.$ADR.'img/arrow_bot.png"></span>';

                $zapytanie='
                    SELECT kandydat_do
                    FROM kandydaci
                    WHERE komitet="'.$komitet['id'].'"
                    GROUP BY kandydat_do
                ';
                //echo"<pre>";
                $wynik=mysql_query($zapytanie) or die('błąd bazy');

                $kandydaci_do=array();
                array_pop($kandydaci_do);
                print_r($kandydaci_do);
                while($kandydaci_do[]=mysql_fetch_assoc($wynik));
                   //print_r($kandydaci_do);


                $WYNIK.='<ul class="kandydat_do">';
                    foreach($kandydaci_do as $kandydat_do){

                                        $WYNIK.='<li><span>'.$kandydat_do['kandydat_do'].'</span>';

                                        $zapytanie2='
                                            SELECT k.okreg, ok.granice_okregu from kandydaci k
                                            LEFT JOIN okregi as ok ON k.komitet=ok.teryt
                                            where k.komitet= "'.$komitet['id'].'" and k.okreg=ok.nr_okregu
                                            group by k.okreg
                                        ';
                                        $wynik2=mysql_query($zapytanie2);
                                        $okregi=array();

                                        while($okregi[]=mysql_fetch_assoc($wynik2));

                                            foreach($okregi as $okreg){

                                                if($okreg['okreg']==0)
                                                {
                                                    $zapytanie='
                                                        SELECT k.*, ko.nazwa as komitet
                                                        FROM kandydaci as k
                                                        LEFT JOIN komitety as ko ON ko.id=k.komitet
                                                        WHERE k.komitet="'.$komitet['id'].'" AND k.kandydat_do="'.$kandydat_do['kandydat_do'].'" AND k.status=1
                                                        group by k.id
                                                    ';
                                                }
                                                else{
                                                    $zapytanie='
                                                        SELECT k.*, ko.nazwa as komitet
                                                        FROM kandydaci as k
                                                        LEFT JOIN komitety as ko ON ko.id=k.komitet
                                                        WHERE k.komitet="'.$komitet['id'].'" AND k.kandydat_do="'.$kandydat_do['kandydat_do'].'" AND k.status=1 AND k.okreg='.$okreg['okreg'].'
                                                        group by k.id
                                                    ';
                                                }
                                                //echo $zapytanie.'<br />';
                                                $wynik=mysql_query($zapytanie);
                                                $kandydaci=array();
                                                while($kandydaci[]=mysql_fetch_assoc($wynik));
                                                $arr = explode(' ',trim($kandydat_do['kandydat_do']));
                                                //echo $arr[0];
                                                if($okreg['okreg']==0 || $arr[0]=='Burmistrz' || $arr[0]=='Wójt'){

                                                }
                                                else{
                                                    $WYNIK.='
                                                    <ul class="okreg"><span>Nr okręgu: '.$okreg['okreg'].'</span>
                                                    <br>
                                                    <span class="granice">'.$okreg['granice_okregu'].'</span>';
                                                }

                                                    foreach($kandydaci as $kandydat){

                                                        if($kandydat['imie']==''){

                                                        }
                                                        else{
                                                            $WYNIK.='
                                                            <li class="kandydat '.($kandydat['platny']?'platny':'').'">
                                                                <a href="kandydaci,'. $kandydat['id'] .'.html">
                                                                <span>'.$kandydat['imie'].' '.$kandydat['nazwisko'].'</span>
                                                                </a>
                                                            </li>'; 
                                                        }

                                                    }
                                                    if($okreg['okreg']==0 || $arr[0]=='Burmistrz' || $arr[0]=='Wójt'){

                                                    }
                                                    else{
                                                        $WYNIK.='</ul>';
                                                    }
                                            }
                                        $WYNIK.='</li>';

                                    }

                $WYNIK.='</ul>';
            $WYNIK.='</li>'; 
        }
        $WYNIK.='</ul>';

        $WYNIK.='</div>'; 
        $SRODEK.=$WYNIK;
$komitety=array(); 
while ($row = mysql_fetch_assoc($wynik)) { 
  $komitety[] = $row; 
}