Mam taki problem i już mi się pomysły kończą. Chcę użyć funkcji count() w wyszukiwarce aby w razie znalezienia wyników je pokazała, a w razie ich braku pokazała echo "Nic nie znaleziono". Niby proste ale jak używam count() to w przypadku znalezienia wielu rekordów pokazuje tylko jeden, pierwszy. W przypadku braku rekordów pokazuje co należy. W ogóle to dziwne co pokazuje print_r(count($row)): 12. Przecież aktualnie mógł znaleźć max 2 rekordy bo tak by to filtrowało.
Baza składa się z 5 tabel, gdzie jedna z nich zawiera relacje w 4 pozostałymi. Czyli wiele do jednej.
Linie odpowiedzialne za count:
foreach($stmt as $row) { echo '<li>'.$row['nazwa_branzy'].': '.$row['rodzaj_umowy'].': '.$row['login'].': '.$row['tresc'].': '.$row['lokalizacja'].': '.$row['date'].'</li>'; $stmt->closeCursor(); } else { $stmt->closeCursor(); } //print_r($_GET); }
Cały kod:
{ if($_GET['nazwa'] !== "Branża" || $_GET['umowa'] || $_GET['lokalizacja']) { 'nazwa' => 'nazwa_branzy', 'lokalizacja' => 'lokalizacja', 'umowa' => 'rodzaj_umowy' ); foreach($_GET as $key => $value) { { $where[] = $mapping[$key].' = :'.$mapping[$key]; $params[':'.$mapping[$key]] = $value; } } { } try { $pdo = new PDO($pol, $user, $pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); { $sql = 'SELECT b.nazwa_branzy, u.login, o.tresc, i.rodzaj_umowy, l.lokalizacja, o.date FROM ogloszenia AS o LEFT JOIN users u ON u.id_usera = o.id_usera LEFT JOIN branza b ON b.id_branzy = o.id_branzy LEFT JOIN umowa i ON i.id_umowy = o.id_umowy LEFT JOIN lokalizacja l ON l.id_lok = o.id_lok '.$wh; $stmt = $pdo->prepare($sql); if(!empty($_GET['lokalizacja'])) {$stmt -> bindValue(':lokalizacja', $_GET['lokalizacja'], PDO::PARAM_STR);} //if(empty($_GET['nazwa']) && empty($_GET['nazwa']) && empty($_GET['nazwa'])) {echo "Nie wybrano filtrów"; die;} $stmt -> execute($params); //if($where = '') echo "Nic nie znaleziono"; foreach($stmt as $row) { echo '<li>'.$row['nazwa_branzy'].': '.$row['rodzaj_umowy'].': '.$row['login'].': '.$row['tresc'].': '.$row['lokalizacja'].': '.$row['date'].'</li>'; $stmt->closeCursor(); } else { $stmt->closeCursor(); } //print_r($_GET); } } catch(PDOException $e) { } } }