Partage
  • Partager sur Facebook
  • Partager sur Twitter

fixé le warning count

    30 novembre 2020 à 16:20:45

    bonjour à tous, 

    j'ai l'erreur count() en php, et pour fixer le problème je dois me rendre sur ce fichier /usr/share/phpmyadmin/libraries/sql.lib.php, 

    mais comment faire sous windows, le tuto suivie sur internet pour fixer count se passe sur linux et mac os.

    Merci

    EDIT:

    Lamecarlate a écrit:

    Bonjour,

    de quelle erreur parles-tu ? Il nous faut beaucoup plus d'infos :

    • le message d'erreur
    • ton code, coloré à l'aide du bouton </>
    • le tuto que tu as suivi

    Slt, en fait je souhaite réaliser une pagination en utilisant Ajax, voici un code que j'ai récuperer sur internet : 

    <?php
    
    $connect = new PDO("mysql:host=localhost; dbname=db_gavvao", "root", "");
    $connect->exec("set names utf8");
    
    /*function get_total_row($connect)
    {
      $query = "
      SELECT * FROM tbl_webslesson_post
      ";
      $statement = $connect->prepare($query);
      $statement->execute();
      return $statement->rowCount();
    }
    
    $total_record = get_total_row($connect);*/
    
    $limit = '5';
    $page = 1;
    if($_POST['page'] > 1)
    {
      $start = (($_POST['page'] - 1) * $limit);
      $page = $_POST['page'];
    }
    else
    {
      $start = 0;
    }
    
    $query = "
    SELECT * FROM tbl_webslesson_post 
    ";
    
    if($_POST['query'] != '')
    {
      $query .= '
      WHERE webslesson_post_title LIKE "%'.str_replace(' ', '%', $_POST['query']).'%" 
      ';
    }
    
    $query .= 'ORDER BY webslesson_post_id ASC ';
    
    $filter_query = $query . 'LIMIT '.$start.', '.$limit.'';
    
    $statement = $connect->prepare($query);
    $statement->execute();
    $total_data = $statement->rowCount();
    
    $statement = $connect->prepare($filter_query);
    $statement->execute();
    $result = $statement->fetchAll();
    $total_filter_data = $statement->rowCount();
    
    $output = '
    <label>Total Records - '.$total_data.'</label>
    <table class="table table-striped table-bordered">
      <tr>
        <th>ID</th>
        <th>Post Title</th>
      </tr>
    ';
    if($total_data > 0)
    {
      foreach($result as $row)
      {
        $output .= '
        <tr>
          <td>'.$row["webslesson_post_id"].'</td>
          <td>'.$row["webslesson_post_title"].'</td>
        </tr>
        ';
      }
    }
    else
    {
      $output .= '
      <tr>
        <td colspan="2" align="center">No Data Found</td>
      </tr>
      ';
    }
    
    $output .= '
    </table>
    <br />
    <div align="center">
      <ul class="pagination">
    ';
    
    $total_links = ceil($total_data/$limit);
    $previous_link = '';
    $next_link = '';
    $page_link = '';
    
    //echo $total_links;
    
    if($total_links > 4)
    {
      if($page < 5)
      {
        for($count = 1; $count <= 5; $count++)
        {
          $page_array[] = $count;
        }
        $page_array[] = '...';
        $page_array[] = $total_links;
      }
      else
      {
        $end_limit = $total_links - 5;
        if($page > $end_limit)
        {
          $page_array[] = 1;
          $page_array[] = '...';
          for($count = $end_limit; $count <= $total_links; $count++)
          {
            $page_array[] = $count;
          }
        }
        else
        {
          $page_array[] = 1;
          $page_array[] = '...';
          for($count = $page - 1; $count <= $page + 1; $count++)
          {
            $page_array[] = $count;
          }
          $page_array[] = '...';
          $page_array[] = $total_links;
        }
      }
    }
    else
    {
      for($count = 1; $count <= $total_links; $count++)
      {
        $page_array[] = $count;
      }
    }
    
    for($count = 0; $count < count($page_array); $count++)
    {
      if($page == $page_array[$count])
      {
        $page_link .= '
        <li class="page-item active">
          <a class="page-link" href="#">'.$page_array[$count].' <span class="sr-only">(current)</span></a>
        </li>
        ';
    
        $previous_id = $page_array[$count] - 1;
        if($previous_id > 0)
        {
          $previous_link = '<li class="page-item"><a class="page-link" href="javascript:void(0)" data-page_number="'.$previous_id.'">Previous</a></li>';
        }
        else
        {
          $previous_link = '
          <li class="page-item disabled">
            <a class="page-link" href="#">Previous</a>
          </li>
          ';
        }
        $next_id = $page_array[$count] + 1;
        if($next_id >= $total_links)
        {
          $next_link = '
          <li class="page-item disabled">
            <a class="page-link" href="#">Next</a>
          </li>
            ';
        }
        else
        {
          $next_link = '<li class="page-item"><a class="page-link" href="javascript:void(0)" data-page_number="'.$next_id.'">Next</a></li>';
        }
      }
      else
      {
        if($page_array[$count] == '...')
        {
          $page_link .= '
          <li class="page-item disabled">
              <a class="page-link" href="#">...</a>
          </li>
          ';
        }
        else
        {
          $page_link .= '
          <li class="page-item"><a class="page-link" href="javascript:void(0)" data-page_number="'.$page_array[$count].'">'.$page_array[$count].'</a></li>
          ';
        }
      }
    }
    
    $output .= $previous_link . $page_link . $next_link;
    $output .= '
      </ul>
    
    </div>
    ';
    
    echo $output;
    
    ?>
    
    

    du coup le probleme se situe sur cette ligne : "for($count = 0; $count < count($page_array); $count++)" où j'ai un warning count(): Parameter must be an array or an object that implements Countable


    -
    Edité par Manu Dev 30 novembre 2020 à 17:48:43

    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2020 à 16:35:40

      Bonjour,

      de quelle erreur parles-tu ? Il nous faut beaucoup plus d'infos :

      • le message d'erreur
      • ton code, coloré à l'aide du bouton </>
      • le tuto que tu as suivi
      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        30 novembre 2020 à 16:51:31

        Mettre à jour ton installation ? (phpMyAdmin avant tout)

        Le code de ta version de phpMyAdmin n'a pas dû être très strict et n'est pas "compatible" avec PHP > 7.2.0, version depuis laquelle count a été rendue plus stricte pour n'accepter que les tableaux et objets dont la classe implémente l'interface Countable. Plus le reste comme avant (il faut dire que count renvoyait précédemment 1 pour toutes les valeurs scalaires comme TRUE et FALSE ...)

        En clair, tu as une version de PHP récente (PHP >= 7.2.0) et une version probablement un peu datée de phpMyAdmin parce qu'ils ont dû corriger ça depuis, donc une MàJ de phpMyAdmin, si possible, devrait arranger ça.

        EDIT : le pourquoi ne t'intéresse pas je pense mais plutôt que de bidouiller à la main un fichier, j'en profiterais pour faire la MàJ de phpMyAdmin. Sinon, tu reproduis les circonstances qui conduisent à l'obtention de cette erreur et ça devrait te donner le chemin complet du fichier à éditer, non ? (si les erreurs PHP sont toutes affichées)

        -
        Edité par julp 30 novembre 2020 à 17:08:34

        • Partager sur Facebook
        • Partager sur Twitter

        fixé le warning count

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown