虽然循环在函数PHP中不起作用 [英] While loop does not work in function PHP

查看:51
本文介绍了虽然循环在函数PHP中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在此示例中,while循环正常工作。







 $ query =   SELECT * FROMex`; 
$ result = mysqli_query($ link,$ query);

$ Q_X = ' Q1';
$ res = array(0,0,0,0,0);
while($ report = mysqli_fetch_array($ result)){
print_r($ report [$ Q_X]。' <峰; br>');

if($ report [$ Q_X] == ' X1') {
$ res [0] = $ res [0] +1;

} elseif($ report [$ Q_X] == ' X2' ){
$ res [1] = $ res [1] +1;

} elseif($ report [$ Q_X] == ' X3' ){
$ res [2] = $ res [2] +1;

} elseif($ report [$ Q_X] == ' X4' ){
$ res [3] = $ res [3] +1;

} elseif($ report [$ Q_X] == ' X5' ){
$ res [4] = $ res [4] +1;
}
}
列表($ Q1_1,$ Q1_2,$ Q1_3,$ Q1_4,$ Q1_5)= $ res ;

echo $ Q1_1。' ;
echo $ Q1_2。' ,'< /跨度>;
echo $ Q1_3。' ,'< /跨度>;
echo $ Q1_4。' ,'< /跨度>;
echo $ Q1_5 ;







但是当我试图将它放入一个函数中时不起作用







 $ query =   SELECT * FROMex`; 
$ result = mysqli_query($ link,$ query);

函数count_vote($ Q_X){
$ cont = 0;

$ res = array(0,0,0,0,0);
while($ report = mysqli_fetch_array($ result)){

if($ report [$ Q_X] == ' < span class =code-string> X1'){
$ res [0] = $ res [0] +1;

} elseif($ report [$ Q_X] == ' X2' ){
$ res [1] = $ res [1] +1;

} elseif($ report [$ Q_X] == ' X3' ){
$ res [2] = $ res [2] +1;

} elseif($ report [$ Q_X] == ' X4' ){
$ res [3] = $ res [3] +1;

} elseif($ report [$ Q_X] == ' X5' ){
$ res [4] = $ res [4] +1;
}
}
if(mysqli_num_rows($ result)== $ cont){
return $ RES ;
}
}


count_vote( Q1 );
列表($ Q1_1,$ Q1_2,$ Q1_3,$ Q1_4,$ Q1_5)= $ res ;

echo $ Q1_1。' ;
echo $ Q1_2。' ,'< /跨度>;
echo $ Q1_3。' ,'< /跨度>;
echo $ Q1_4。' ,'< /跨度>;
echo $ Q1_5 ;



我使用数组来获取多个值返回



以及是否阻止该功能从while循环结束之前退出



我试图让它成为一个在Q1,Q2上多次使用它的函数。



有人可以帮我找到问题



----------------- mysql表-----------------



............... ...... Q1。 Q2。 Q3。 Q4

----------------------------------------

...... user1 | X1。 X3。 X5。 X4



...... user2 | X2。 X2。 X3。 X2



...... user3 | X1。 X1。 X1。 X1





我想要这个度假村



Q1-- - > X1> 2

---> X2> 1

---> X3> 0

---> X4> 0

---> X5> 0



Q2 ---> X1> 1

---> X2> 1

---> X3> 1

---> X4> 0

---> X5> 0

Q3,Q4 ....





while循环不起作用php



我尝试过:



 <?php 包括'  ../ mysqCode / masterlink.php'; mysqli_set_charset($ link,'  utf8'); 
if (mysqli_connect_error()){
die( Coud没有连接到数据库,服务器错误);

} else {

$ query = SELECT * FROM `ex`;
$ result = mysqli_query($ link,$ query);

函数count_vote($ result,$ Q_X)
{
$ res = array(0,0,0) ,0,0);
while ($ report = mysqli_fetch_array($ result)){
if ( $ report [$ Q_X] == ' X1'){
$ res [0] = $ res [0] + 1 ;

} elseif($ report [$ Q_X] == ' X2' ){
$ res [1] = $ res [1] + 1 ;

} elseif($ report [$ Q_X] == ' X3' ){
$ res [2] = $ res [2] + 1 ;

} elseif($ report [$ Q_X] == ' X4' ){
$ res [3] = $ res [3] + 1 ;

} elseif($ report [$ Q_X] == ' X5' ){
$ res [4] = $ res [4] + 1 ;
}
}
if (mysqli_num_rows($ result)> 1){
return $ res ;
}
}



列表($ Q1_1,$ Q1_2,$ Q1_3,$ Q1_4,$ Q1_5)= count_vote($ result,< span class =code-string>
Q1);

echo $ Q1_1 ' ,';
echo $ Q1_2 ' ,';
echo $ Q1_3 ' ,';
echo $ Q1_4 ' ,';
echo $ Q1_5 ;

列表($ Q2_1,$ Q2_2,$ Q2_3,$ Q2_4,$ Q2_5)= count_vote($ result, Q2\" );

echo $ Q2_1 ' ,';
echo $ Q2_2 ' ,';
echo $ Q2_3 ' ,';
echo $ Q2_4 ' ,';
echo $ Q2_5 ' < br>';






}



?>





第一个工作,但其余的不是

解决方案

query = SELECT * FROMex`;

结果= mysqli_query(

链路,

The while loop works fine in this example.



                $query="SELECT * FROM `ex`";
    $result=mysqli_query($link, $query);

    $Q_X='Q1';
                $res=array(0,0,0,0,0);
            while($report=mysqli_fetch_array($result)){
                print_r($report[$Q_X].'<br>');

                if($report[$Q_X]=='X1'){
                    $res[0]=$res[0]+1;

                }elseif($report[$Q_X]=='X2'){
                    $res[1]=$res[1]+1;

                }elseif($report[$Q_X]=='X3'){
                    $res[2]=$res[2]+1;

                }elseif($report[$Q_X]=='X4'){
                    $res[3]=$res[3]+1;

                }elseif($report[$Q_X]=='X5'){
                    $res[4]=$res[4]+1;
                }
            }
list($Q1_1,$Q1_2,$Q1_3,$Q1_4,$Q1_5) = $res;

echo $Q1_1.',';
echo $Q1_2.',';
echo $Q1_3.',';
echo $Q1_4.',';
echo $Q1_5;




but when I try to put it in a function in doesn't work



               $query="SELECT * FROM `ex`";
    $result=mysqli_query($link, $query);

        function count_vote($Q_X) {
            $cont=0;

            $res=array(0,0,0,0,0);
            while($report=mysqli_fetch_array($result)){

                if($report[$Q_X]=='X1'){
                    $res[0]=$res[0]+1;

                }elseif($report[$Q_X]=='X2'){
                    $res[1]=$res[1]+1;

                }elseif($report[$Q_X]=='X3'){
                    $res[2]=$res[2]+1;

                }elseif($report[$Q_X]=='X4'){
                    $res[3]=$res[3]+1;

                }elseif($report[$Q_X]=='X5'){
                    $res[4]=$res[4]+1;
                }
            }
            if(mysqli_num_rows($result)==$cont){
            return $res;
            }
        }


count_vote("Q1");
list($Q1_1,$Q1_2,$Q1_3,$Q1_4,$Q1_5) = $res;

echo $Q1_1.',';
echo $Q1_2.',';
echo $Q1_3.',';
echo $Q1_4.',';
echo $Q1_5;


I using an array to get multiple values returned

and if to prevent the function from exiting before the while loop ending

I am trying to make it into a function to use it multiple times on Q1,Q2,..

can someone help me find the problem

-----------------mysql table-----------------

................... Q1 . Q2 . Q3 . Q4
----------------------------------------
......user1 | X1 . X3 . X5 . X4

......user2 | X2 . X2 . X3 . X2

......user3 | X1 . X1 . X1 . X1


I want to get this resort

Q1---> X1 >2
---> X2 >1
---> X3 >0
---> X4 >0
---> X5 >0

Q2---> X1 >1
---> X2 >1
---> X3 >1
---> X4 >0
---> X5 >0
Q3,Q4....


while loop does not work in function php

What I have tried:

 <?php include '../mysqCode/masterlink.php';mysqli_set_charset($link,'utf8');
	if (mysqli_connect_error()){
		die("Coud not connect to Database,server error");

	}else{
		
$query="SELECT * FROM `ex`";
$result=mysqli_query($link, $query);
			        
function count_vote($result ,$Q_X)
{
    $res = array(0, 0, 0, 0, 0);
    while ($report = mysqli_fetch_array($result)) {
        if ($report[$Q_X] == 'X1') {
            $res[0] = $res[0] + 1;

        } elseif ($report[$Q_X] == 'X2') {
            $res[1] = $res[1] + 1;

        } elseif ($report[$Q_X] == 'X3') {
            $res[2] = $res[2] + 1;

        } elseif ($report[$Q_X] == 'X4') {
            $res[3] = $res[3] + 1;

        } elseif ($report[$Q_X] == 'X5') {
            $res[4] = $res[4] + 1;
        }
    }
    if (mysqli_num_rows($result) > 1) {
        return $res;
    }
}



list($Q1_1, $Q1_2, $Q1_3, $Q1_4, $Q1_5) = count_vote($result ,"Q1");

echo $Q1_1 . ',';
echo $Q1_2 . ',';
echo $Q1_3 . ',';
echo $Q1_4 . ',';
echo $Q1_5;

list($Q2_1, $Q2_2, $Q2_3, $Q2_4, $Q2_5) = count_vote($result ,"Q2");

echo $Q2_1 . ',';
echo $Q2_2 . ',';
echo $Q2_3 . ',';
echo $Q2_4 . ',';
echo $Q2_5 . '<br>';
		
		
		    
		    
		    
		    
	}
	
	
		    
?>



the fist one work but the rest does not

解决方案

query="SELECT * FROM `ex`";


result=mysqli_query(


link,


这篇关于虽然循环在函数PHP中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆