возврат PHP останавливает цикл - PullRequest
0 голосов
/ 24 февраля 2019

добрый день Я пишу функцию, в которой я хочу отображать записи, которые будут соответствовать датам на прошлой неделе, но это будет цикл только один раз.Есть ли способ вернуть все даты и показать все записи, которые будут соответствовать датам?Вот мой код.

function fetch_week(){

$today = date('F d Y');

for($i = 1; $i <= 7; $i++)
{
    $repeat = strtotime("-1 day",strtotime($today));
    $today = date('F d Y',$repeat);
    $output = '';
    $conn = mysqli_connect("localhost", "root", "", "sample");
    $sql = "SELECT * FROM list WHERE datee = '".$today."' ORDER BY id DESC";
    $result = mysqli_query($conn, $sql);
    if(empty(mysqli_num_rows($result))){
    echo '<td colspan="6"><h5><center>NO RECORDS.</center></h5></td>';
    }
    else{

    while($row = mysqli_fetch_assoc($result)){

    $output .= '<tbody id="appTable">
                <tr class="content" style="font-weight: normal text-align: center">  
                      <td>'.$row["name"].'</td>  
                      <td>'.$row["address"].'</td> 
                      <td>'.$row["contact"].'</td>
                      <td>'.$row["datee"].'</td> 
                </tr>  
             </tbody>
                      ';

    }
    return $output;
    }
}

}

1 Ответ

0 голосов
/ 24 февраля 2019

Вы можете создать массив и вернуть его после окончания цикла.Проверьте ниже код:

function fetch_week() {

    $today = date('F d Y');
    $response = [];
    for ($i = 1; $i <= 7; $i++) {
        $repeat = strtotime("-1 day", strtotime($today));
        $today = date('F d Y', $repeat);
        $output = '';
        $conn = mysqli_connect("localhost", "root", "", "sample");
        $sql = "SELECT * FROM list WHERE datee = '" . $today . "' ORDER BY id DESC";
        $result = mysqli_query($conn, $sql);
        if (empty(mysqli_num_rows($result))) {
            echo '<td colspan="6"><h5><center>NO RECORDS.</center></h5></td>';
        } else {
            $output = '<tbody id="appTable">';
            while ($row = mysqli_fetch_assoc($result)) {

                $output .= '<tr class="content" style="font-weight: normal text-align: center">  
                      <td>' . $row["name"] . '</td>  
                      <td>' . $row["address"] . '</td> 
                      <td>' . $row["contact"] . '</td>
                      <td>' . $row["datee"] . '</td> 
                </tr>';
            }
            $output .= '</tbody>';
            $response[] = $output;
        }
    }
    return $response;
}

Вам нужно пройтись по выходным данным, чтобы распечатать свои данные.Но помимо всего этого, ваш код широко открыт для SQL-инъекций.Пожалуйста, будьте осторожны и делайте изменения для этого.Также вам не нужно создавать tbody снова и снова в цикле.Вы можете сделать это только в первый раз, что я также изменил в приведенном выше коде.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...