Keresés

Új hozzászólás Aktív témák

  • Soak

    veterán

    válasz Soak #10461 üzenetére

    Újra írtam ezt, annak idején elég sokat szenvedtem vele, most jobb lett, csak azért írom ide, hátha valakinek lesz hasonló projektje:

    public static function find_3_by_id($p_id,$users_id) {
    global $db;
    $stmt= $db->prepare("(SELECT *, 'next' FROM photographs WHERE id > :id AND users_id = :users_id ORDER BY id ASC LIMIT 1) UNION (SELECT *, 'current' FROM photographs WHERE id = :id AND users_id = :users_id LIMIT 1)UNION (SELECT *, 'previous' FROM photographs WHERE id < :id AND users_id = :users_id ORDER BY id DESC LIMIT 1)");
    $result_set = $stmt->execute(array(':id' => $p_id,':users_id' => $users_id));
    $object_array = array();
    while ($row = $stmt->fetch($result_set)) {
    $object_array[] = self::instantiate($row);
    }
    return $object_array;

    }

    $photos = Photograph::find_3_by_id($_GET['p'],$user->id);
    $next_photo = array_shift($photos);
    $current_photo = array_shift($photos);
    $previous_photo = array_shift($photos);

    Így 3 helyett csak 1szer kérem le az adatbázist és utána nem foreachezek, hanem csak szétszedem az Object array-t .

Új hozzászólás Aktív témák

Hirdetés