@Chesterfield25

Как получить массив?

Рабочий исходный код

<?php
                                $con = mysqli_connect("localhost","root","root","demo");

                                $brand_query = "SELECT * FROM xf_category";
                                $brand_query_run  = mysqli_query($con, $brand_query);

                                if(mysqli_num_rows($brand_query_run) > 0)
                                {
                                    foreach($brand_query_run as $brandlist)
                                    {
                                        $checked = [];
                                        if(isset($_GET['category']))
                                        {
                                            $checked = $_GET['category'];
                                        }
                                        ?>
                                            <div>
                                                <input type="checkbox" name="category[]" value="<?= $brandlist['id']; ?>" 
                                                    <?php if(in_array($brandlist['id'], $checked)){ echo "checked"; } ?>
                                                 />
                                                <?= $brandlist['title']; ?>
                                            </div>
                                        <?php
                                    }
                                }
                                else
                                {
                                    echo "No Brands Found";
                                }
                            ?>


Исправил на этот код

<?php
                                
                                if(mysqli_num_rows($category_query) > 0)
                                {
                                    foreach($category_query as $categorylist)
                                    {
                                        $checked = [];
                                        if(isset($_GET['category']))
                                        {
                                            $checked = $_GET['category'];
                                        }
                                        ?>
                                            <div>
                                                <input type="checkbox" name="category[]" value="<?= $categorylist['id']; ?>" 
                                                    <?php if(in_array($brandlist['id'], $checked)){ echo "checked"; } ?>
                                                 />
                                                <?= $categorylist['title']; ?>
                                            </div>
                                        <?php
                                    }
                                }
                                else
                                {
                                    echo "No Categorys Found";
                                }
                            ?>


А в function.php

//Read xf_category
$sql = $pdo->prepare("SELECT * FROM xf_category");
$sql->execute();
$category_query = $sql->fetchAll(PDO::FETCH_OBJ);


Получаю ошибку
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, array given in


60c121e891ae5263797808.png

Подскажите что я неправильно сделал?
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
dyuriev
@dyuriev
A posteriori
Подскажите что я неправильно сделал?


https://www.php.net/manual/ru/mysqli-result.num-ro...
result
Только для процедурного стиля: Объект mysqli_result, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result() или mysqli_stmt_get_result().


https://www.php.net/manual/ru/pdostatement.fetchall.php
PDOStatement::fetchAll — Возвращает массив, содержащий все строки результирующего набора


вместо mysqli_num_rows просится count() на худой конец
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы