whileループはこの例でうまく動作します。whileループは関数phpで動作しません。atherのグローバルフィックス
$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;
が、私は機能にそれを置くしようとしたときに、私は複数の値が
を返さ取得するために、配列を使用してから出るの機能を阻止する場合 $query="SELECT * FROM `ex`"; //new
$result=mysqli_query($link, $query);
function count_vote($Q_X) {
$cont=0;
global $result; //new
$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;
動作しません。 whileループが終了する前に
私はQ1、Q2で何回も使用するようにしようとしています。
誰かが私はループが関数PHPで
を動作しませんが、このリゾートに
Q1---> X1 >2
---> X2 >1
---> X3 >0
---> X4 >0
---> X5 >0
Q2---> X1 >1
---> X2 >1
---> X3 >1
---> X4 >0
---> X5 >0
Q3,Q4....
を取得したい問題
Q1 . Q2 . Q3 . Q4
user1 | X1 . X3 . X5 . X4
user2 | X2 . X2 . X3 . X2
user3 | X1 . X1 . X1 . X1
を見つけるのを助けることができます
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 . '<br>';
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>';
が動作しない、それは、
2の
2,1,0,0,0
0,0,0,0,0
insedを与えます1,0,0,0
1,1,1,0,0
'関数名は文字列でなければならない ' –
@MoazMabrok' count_vote( "Q1");の前のドル記号を取り除いた – bucketman
これで '0,0,0,0、 Q1のための2,1,0,0,0のような数字の代わりに「0」を入力してください。 –