Witam jak w temacie
Posiadam 2 tabele, kategorie i ogloszenia
kategorie to:
-id
parent_id
-link
ogloszenia to
-id
-cat
-title
-display
problem jest tego typu że jak wyświetlam ogłoszenia z display = 1 to ok ale jak pojawiają się równirż ogłoszenia z display = 0 ... czy ktoś mógłby mi pomóc żeby nie pojawiało się display = 0 ?
$data = $_GET['data']; $parent = mysqli_query($mysql,"SELECT * FROM `Category` WHERE `id` = '$data'"); $v = $parent->fetch_assoc(); $kat_name = $v['title']; $kat_info = $v['Link']; $kat_id = $v['id']; $parent_id = $v['parent_id']; //var_dump(); if(!$parent->num_rows) { http://www.php.net/header('Location: /'); } $limit = $s['ListCat']; //Ilość ogłoszeń if (http://www.php.net/isset($_GET["page"])) { $page = $_GET["page"]; } else{ $page=1; }; $start_from = ($page-1) * $limit; $result = mysqli_query($mysql,"SELECT c.parent_id, a.* FROM Category as c INNER JOIN annoncement as a ON c.id=a.cat WHERE `cat` = '$data' OR `parent_id` = '$kat_id' AND `Display` = '1' ORDER BY id DESC LIMIT $start_from, $limit"); $result_db = mysqli_query($mysql,"SELECT COUNT(*) FROM Category as c INNER JOIN annoncement as a ON c.id=a.cat WHERE `cat` = '$data' OR `parent_id` = '$kat_id' AND `Display` = '1'"); $row_db = mysqli_fetch_row($result_db); $total_records = $row_db[0]; $total_pages = http://www.php.net/ceil($total_records / $limit); /* echo $total_pages; */ $pagLink = "<span class='pages'>"; for ($i=1; $i<=$total_pages; $i++) { $pagLink .= "<a class='page-link' href='".$adres."/".$shop_category."/".$v['id']."/".$kat_info."/page-".$i.".html'>".$i."</a>"; } http://www.php.net/echo "</span>";
Błąd polega na tym, że używasz AND i OR bez nawiasu. Twoje `cat` = x OR `parent_id` = y AND `Display` = 1 zostaje zinterpretowane jako `cat`= x OR (`parent_id` = y AND `Display` = 1) zamiast (`cat` = x OR `parent_id` = y) AND `Display` = 1.
Innymi słowy, u Ciebie dopasowana kategoria jest wystarczającym kryterium do uwzględnienia rekordu. Dodaj nawias:
... WHERE (`cat` = '$data' OR `parent_id` = '$kat_id') AND `Display` = '1' ORDER BY ...
Dzieki wielkie ... zapomniałem o nawiasach ... ale babol
No babolek Lepiej zawsze używać nawiasów jak jest AND i OR w zapytaniu, bo jest czytelniej. W SQL AND ma wyższy priorytet niż OR i niektórym ta informacja wystarczy, żeby pisać zapytania bez nawiasów, ale moim zdaniem czytanie tego za bardzo męczy makówkę
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)