[ Lacke @ 07.12.2013. 15:40 ] @
Imam tabelu data_sadrzaj_kategorija mysql-u:
id | naslov | podnaslov | seolink | opis | sekcija | objavi
1 | tekst1 |podnaslov1| seolink1 | | 6 | 1
2 | tekst2 |podnaslov2| seolink2 |opis2 | 6 | 1
3 | tekst3 |podnaslov3| seolink3 |opis3 | 6 | 1


Kada mu zadam upit preko funkcije:
Code:
public static function find() {        
            $result_set = mysql_queryl(" SELECT * FROM data_sadrzaj_kategorija WHERE objavi=1 AND sekcija=6 ");
            if (!empty($result_set)) {
                return array_shift($result_set);            
            } else {        
                return FALSE;
            }
        }
$result = Category::find_by();


Izbaci mi samo prvi red, red gde je id=1. Nikako nece da mi iscita sva tri reda. u cemu je problem? Hvala...
[ gotivac @ 07.12.2013. 16:08 ] @
Problem je u array_shift funkciji koja radi upravo to što si napisao da ti se dešava, izbriše prvi element niza i njega da kao rezultat.

Citat:
The array_shift() function removes the first element from an array, and returns the value of the removed element.


[ deZio @ 07.12.2013. 16:12 ] @
koja ti je ovo f-ja mysql_queryl? Pokaži kod gde je ona definisana. A ako si greškom napisao mysql_queryl umesto mysql_query, onda moraš da koristiš petlju da bi dobio sve rezultate. Dakle ovako nešto:

Code (php):
public static function find() {        
            $result_set = mysql_query(" SELECT * FROM data_sadrzaj_kategorija WHERE objavi=1 AND sekcija=6 ");
            if ($result_set) {
                while ($row = mysql_fetch_assoc($result)) {
                    $konacan_rezultat_upita[] = $row;
                }
                return $konacan_rezultat_upita;
            } else {        
                return FALSE;
            }
        }
$result = Category::find_by();
[ Lacke @ 07.12.2013. 19:30 ] @
Hvama vam na trudi i odgovorima. Da, u pitanju je bila funkcija array_shift(), toliko sam umoran bio od silnih kodova, da nisam to ni gledao a morao sam to prvo.
Uglavnom, mnogo vam hvala :)