Zliczanie wyników w pętli foreach

0

Witam,

Mam problem z policzeniem wyników pętli. Zapis poniżej nie generuje żadnego napisu w przypadku kiedy pętla zwraca zero wierszy. Co jest nie tak z tym kodem?:

foreach($stmt as $row)
				  if(count($row > 0)){
					  echo '<li>'.$row['nazwa_branzy'].': '.$row['rodzaj_umowy'].': '.$row['login'].': '.$row['tresc'].': '.$row['lokalizacja'].': '.$row['date'].'</li>';
				  } else {echo "Nic nie znaleziono";}
 
0

Raczej nie chcesz robić $row > 0, tylko count($row) > 0.

0

No właśnie tego też próbowałem ale nie działa...

foreach:

 foreach($stmt as $row)
				  if(count($row) >= 1)
				  {
					  echo '<li>'.$row['nazwa_branzy'].': '.$row['rodzaj_umowy'].': '.$row['login'].': '.$row['tresc'].': '.$row['lokalizacja'].': '.$row['date'].'</li>';
				  } else {echo "Nic nie znaleziono";}

a tutaj część kodu odpowiedzialna za to:

if($_GET['nazwa'] || $_GET['umowa'] || $_GET['lokalizacja'])
		{
			$wh = array();
			//2 SELECT
				if(!empty($_GET['nazwa'])) $wh[] = "b.nazwa_branzy = '{$_GET['nazwa']}'";
				if(!empty($_GET['umowa'])) $wh[] = "i.rodzaj_umowy = '{$_GET['umowa']}'";
				if(!empty($_GET['lokalizacja'])) $wh[] = "l.lokalizacja = '{$_GET['lokalizacja']}'";
				if(!empty($wh))
				{
					$where = 'WHERE '.implode(' AND ', $wh);
					//print_r($where);
				}
			try
			   {
				  $pdo = new PDO($pol, $user, $pass);
				  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
				  if(isset($_GET['nazwa']))
				  {
					$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 '.$where;
				  $stmt = $pdo->prepare($sql);	
				  $stmt -> bindValue($sql, PDO::PARAM_STR);
				  $stmt -> execute();
				  //if($where = '') echo "Nic nie znaleziono";
				  echo '<ul>';
				  foreach($stmt as $row)
				  if(count($row) >= 1)
				  {
					  echo '<li>'.$row['nazwa_branzy'].': '.$row['rodzaj_umowy'].': '.$row['login'].': '.$row['tresc'].': '.$row['lokalizacja'].': '.$row['date'].'</li>';
				  } else {echo "Nic nie znaleziono";}
				  $stmt->closeCursor();
				  echo '</ul>';
				  //print_r($_GET);
			   }
			   }
			   catch(PDOException $e)
			   {
				  echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
			   }
			
			} 

Dlaczego count nie zlicza?

0
count($row > 0)

If the parameter is not an array or not an object with implemented Countable interface, 1 will be returned.

Najlepiej zobacz, co te tablice(?) zawierają (użyj var_dump / print_r).

0

Przykład co daje print_r:

 
Array ( [nazwa_branzy] => elektromechanik [0] => elektromechanik [login] => admin [1] => admin [tresc] => Potrzebny elektromechanik od zaraz [2] => Potrzebny elektromechanik od zaraz [rodzaj_umowy] => umowa o prace [3] => umowa o prace [lokalizacja] => Opole [4] => Opole [date] => 2016-01-26 23:13:18 [5] => 2016-01-26 23:13:18 )

Wygląda na to, że z tablica wszystko ok... ???

0

Już mam. Zabrakło:

 
return $row;

1 użytkowników online, w tym zalogowanych: 0, gości: 1