Ошибка в PHP коде при выводе данных из БД PhpMyAdmin

274
26 ноября 2016, 19:43
?php 
require_once"include/db_connect.php";
require_once"functions/functions.php";
$cat = clear_string($_GET["cat"]);
$type = clear_string($_GET["type"]);
$sorting = $_GET["sort"];
switch($sorting){
    case 'price-asc';
    $sorting = 'price ASC';
    $sort_name = 'Від дешевих до дорогих';
    break;
    case 'price-desc';
    $sorting = 'price DESC';
    $sort_name = 'Від дорогих до дешевих';
    break;
    case 'popular';
    $sorting = 'count DESC';
    $sort_name = 'Популярні';
    break;
    case 'news';
    $sorting = 'datatime DESC';
    $sort_name = 'Новинки';
    break;
    case 'brand';
    $sorting = 'brand';
    $sort_name = 'Від А до Я';
    break;
    default:
    $sorting = 'products_id DESC';
    $sort_name = 'Нема сортування';
    break;
}

?> PhpShop

            <ul id="block-tovar-grid">
                <?php 
                    if(!empty($cat) && !empty($type)){
                        $query_cat = "AND brand='$cat' AND type_tovara='$type'";
                    }
                    else{
                        if(!empty($type)){
                            $query_cat = "type_tovara='$type'";
                        }else{
                            $query_cat = "";
                        }
                        if(!empty($cat)){
                            $catlink = "cat='.$cat.'&";
                        }else{
                            $catlink = "";
                        }
                    }
                    $result = mysql_query("SELECT * FROM table_products WHERE visible='1' $query_cat ORDER BY $sorting", $link);
                    if(mysql_num_rows($result) > 0){
                        $row = mysql_fetch_array($result);
                        echo
                        '
                                <div id="block-sorting">
                <p id="nav-breadcrumbs"><a href="index.php">Головна сторінка</a> \ <span>Всі товари</span></p>
                <ul id="option-list">
                    <li>Вид: </li>
                    <li><img id="style-grid" src="images/grid.png"/></li>
                    <li><img id="style-list" src="images/list.png"/></li>
                    <li>Сортування</li>
                    <li><a id="select-sort"><'.$sort_name.'</a>
                        <ul id="sorting-list">
                            <li><a href="view_cat.php?'.$catlink.'type='.$type.'&sort=price-asc">Від дешевих до дорогих</a></li>
                            <li><a href="view_cat.php?'.$catlink.'type='.$type.'&sort=price-desc">Від дорогих до дешевих</a></li>
                            <li><a href="view_cat.php?'.$catlink.'type='.$type.'&sort=popular">Популярні</a></li>
                            <li><a href="view_cat.php?'.$catlink.'type='.$type.'&sort=news">Новинки</a></li>
                            <li><a href="view_cat.php?'.$catlink.'type='.$type.'&sort=brand">Від А до Я</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
                        ';
                    do{
                        if($row["image"] != "" && file_exists("./uploads_images/".$row["image"])){
                            $img_path = './uploads_images/'.$row["image"];
                            $max_width = 200;
                            $max_height = 200;
                            list($width, $height) = getimagesize($img_path);
                            $ratioh = $max_height/$height;
                            $ratiow = $max_width/$width;
                            $ratio = min($ratioh, $ratiow);
                            $width = intval($ratio*$width);
                            $height = intval($ratio*$height);
                        }
                        else{
                            $img_path = "images/no-image.png";
                            $width = 110;
                            $height = 200;
                        }
                        echo '
                        <li>
                            <div class="block-images-grid">
                                <img src="'.$img_path.'" width="'.$width.'" height="'.$height.'"/>
                            </div>
                            <p class="style-title-grid"><a href="">'.$row["title"].'</a></p>
                            <ul class="reviews-and-counts-grid">
                                <li><img src="images/views.png"/><p>0</p></li>
                                <li><img src="images/comments.png"/><p>0</p></li>
                            </ul>
                            <a class="add-cart-style-grid"></a>
                            <p class="style-price-grid"><strong>'.$row["price"].'</strong> грн.</p>
                            <div class="mini-features">
                                <span style="font-size:13px;">'.$row["mini_features"].'</span>
                            </div>
                        </li>';
                    }while($row = mysql_fetch_array($result));
                ?>
            </ul>
                <ul id="block-tovar-list">
                <?php 
                    $result = mysql_query("SELECT * FROM table_products WHERE visible='1' $query_cat ORDER BY $sorting", $link);
                    if(mysql_num_rows($result) > 0){
                        $row = mysql_fetch_array($result);
                    do{
                        if($row["image"] != "" && file_exists("./uploads_images/".$row["image"])){
                            $img_path = './uploads_images/'.$row["image"];
                            $max_width = 150;
                            $max_height = 150;
                            list($width, $height) = getimagesize($img_path);
                            $ratioh = $max_height/$height;
                            $ratiow = $max_width/$width;
                            $ratio = min($ratioh, $ratiow);
                            $width = intval($ratio*$width);
                            $height = intval($ratio*$height);
                        }
                        else{
                            $img_path = "images/no-image.png";
                            $width = 80;
                            $height = 70;
                        }
                        echo '
                        <li>
                            <div class="block-images-list">
                                <img src="'.$img_path.'" width="'.$width.'" height="'.$height.'"/>
                            </div>
                            <ul class="reviews-and-counts-list">
                                <li><img src="images/views.png"/><p>0</p></li>
                                <li><img src="images/comments.png"/><p>0</p></li>
                            </ul>
                            <p class="style-title-list"><a href="">'.$row["title"].'</a></p>
                            <a class="add-cart-style-list"></a>
                            <p class="style-price-list"><strong>'.$row["price"].'</strong> грн.</p>
                            <div class="style-text-list">
                                '.$row["mini_description"].'
                            </div>
                        </li>';
                    }while($row = mysql_fetch_array($result));
                    }
                    }
                    else{
                        echo"<h3>Категорія не доступна або не створенна</h3>";
                    }
                ?>
            </ul>
        </div>
        <?php require_once"include/block-footer.php";?>
    </div>
</body>

`

Сама ошибка: Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\OpenServer\OpenServer\domains\Internet-shop.ua\view_cat.php on line 87

Answer 1

Вы просто соединение с БД поставили в конец а не в начало, надо так:

$result = mysql_query($link, "SELECT * FROM table_products WHERE visible='1' $query_cat ORDER BY $sorting");

где $link - соединение с БД. А вообще используйте mysqli на крайняк а лучше PDO

Answer 2

Нужно проверять, что получаете от БД

$result = mysql_query("SELECT * FROM table_products WHERE visible='1' $query_cat ORDER BY $sorting", $link);

Как то так

if($result && mysql_num_rows($result) > 0){ ...

и просмотреть обработку, данных если нет желаемого результата.

READ ALSO
Получения HTML из TinyMce

Получения HTML из TinyMce

Добрый день! Подскажите, как сохранять в базу данных контент из TinyMCEПри использовании tinymce

244
Растянуть шапку

Растянуть шапку

Всем доброго времени сутокНужно меню растянуть на всю ширину экрана,как можно это сделать? Знакомый сказал,что верстка кривая,и нужно враппер...

264
Откуда взялся отступ между div&#39;aми?

Откуда взялся отступ между div'aми?

У меня есть два дива - material-list-item-icon и material-list-item-textЯ НЕ задаю между ними отступ, но он есть

236
C# парсинг сложных сайтов

C# парсинг сложных сайтов

Привет! Как можно распарсить сайт, у которого html-код не содержит нужных данных в явном виде? Например, нужно с этой страницы https://ekbzarplata

403