2017-10-23 22 views
0

関数にコードを挿入しても機能しません。私が機能を取り除くと、それは正しく応答しています。私は間違っているの?関数でMysqli_fetch_assocが機能しない

function dayClosure() { 
$qClosure = 'SELECT * FROM timeRegistration WHERE department IN ("4")'; 
$rClosure = mysqli_query($conn, $qClosure); 

    while($row = mysqli_fetch_assoc($rClosure)) { 
     if ($row['status'] == '3' && $row['enddate'] == '23-10-2017') { 
      $totalWorkedTime += $row['worktime']; 
      return $totalWorkedTime; 
     } 
    } 
} 

echo dayClosure(); 
+0

どのようなエラーがありましたか? –

+0

'$ conn'は関数で定義されていないので、PHPはそれが何であるか分かりません。変数として渡すか、グローバルとして定義する必要があります([推奨されません](https://stackoverflow.com/questions/12445972/stop-using-global-in-php))。私はあなたがクラスを作ることをお勧めします。 – GrumpyCrouton

+0

関数のパラメータとして$ connを渡すようにしてください。グローバルとして定義する –

答えて

1

これは、関数が$conn変数にアクセスすることはできませんので、あなたは、パラメータとして関数に$conn変数を提供する必要がある:

function dayClosure($conn) { 
$qClosure = 'SELECT * FROM timeRegistration WHERE department IN ("4")'; 
$rClosure = mysqli_query($conn, $qClosure); 

    while($row = mysqli_fetch_assoc($rClosure)) { 
     if ($row['status'] == '3' && $row['enddate'] == '23-10-2017') { 
      $totalWorkedTime += $row['worktime']; 
      return $totalWorkedTime; 
     } 
    } 
} 

echo dayClosure($conn); 
+0

私は外部database.php(require_once)をロードしています。グローバルはどちらにも役立ちません。 – nhatimme

0

できない関数が$conn

にアクセスするためにためです

ベストプラクティスは、$connをグローバルとして宣言することです。

global $conn; 
$conn = mysqli_connect(......); 

もう一つの方法は、関数のパラメータとして$connを渡すことです:

function dayClosure($conn) { 
+2

これは確かにベストプラクティスではありません。グローバル変数は推奨されません(https://stackoverflow.com/questions/12445972/stop-using-global-in-php)。 – GrumpyCrouton

0

ソリューション:

<?php 

require_once('config.php'); 

function dayClosure($conn) { 
$qClosure = 'SELECT * FROM timeRegistration WHERE department IN ("4")'; 
$rClosure = mysqli_query($conn, $qClosure); 

    while($row = mysqli_fetch_assoc($rClosure)) { 
     if ($row['status'] == '3' && $row['enddate'] == '23-10-2017') { 
      $totalWorkedTime += $row['worktime']; 
      return $totalWorkedTime; 
     } 
    } 
} 

echo dayClosure($conn); 

?> 

私は自分のファイルを必要とし、関数に$をCONN変数を送りました。みんなありがとう!

関連する問題