Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql + php] zaawansowane zapytanie sql?
Forum PHP.pl > Forum > Przedszkole
tommy4
Mam tabelę z linkami, dajmy na to, że mniej więcej wygląda ona tak:

id | name | address | sublink | panel | status | lev | lorder | itd...

sublink przyjmuje wartość 0 jeśli link nie jest podlinkiem tzn. :

- link
--- podlink
--- podlink

natomiast przyjmuje id swojego glownego linku, jesli jest podlinkiem. Panel to miejsce, w którym mają być te linki, status wiadomo, level to poziom, jaki trzeba miec, zeby zobaczyc link, a lorder to kolejnosc. No ale przejdzmy do sedna sprawy. Jako, ze na stronie bede mial duzo linkow to zapytanie typu:

  1. <?php
  2. $sql = "SELECT * FROM links WHERE panel = $panel AND status = 1 AND lev <= $userlev ORDER BY lorder";
  3. ?>

a potem sprawdzanie DLA KAŻDEGO LINKU czy nie ma podlinków:

  1. <?php
  2. $sql2 = "SELECT * FROM links WHERE sublink = $id AND status = 1 AND lev <= $userlev ORDER BY lorder";
  3. ?>

jakos mnie nie satysfakcjonuje. :< Zwalnia znacznie generowanie strony, itd.

No i teraz glowna czesc programu, czyli pytanie: biggrin.gif
Czy moge jakos pobrac podczas pierwszego zapytania czy link posiada sublinki, zeby nie robic kolejnych niepotrzebnych zapytan lub czy moge od razu pobrac nawet ID tych sublinków? Jakbyscie mogli to dajcie tez linki do fajnych tutoriali o zaawansowanych zapytaniach z COUNT, aliasami itd. albo poleccie jakies ksiazki, plz;] Z góry dzięki za odpowiedz
john_doe
nie wiem czy dobrze rozumiem o co Ci chodzi. czy nie mozesz zrobic poprostu tak?

  1. <?php
  2. $sql = "SELECT * FROM links WHERE panel = $panel AND status = 1 AND sublink = $id A
    ND status = 1 AND lev <= $userlev ORDER BY lorder"
    ;
  3. ?>


potem jesli num_rows = 0 to link nie ma podlinkow i temu podobna zabawa
tommy4
no spoko, idealny pomysl, tak wlasnie mam. ALE

jesli bede mial 300 linkow na stronie to?

300 dodatkowych zapytan, wiec

dluzszy czas wykonywania skryptu. Dlatego sie pytam jak to najlepiej zrobic.
john_doe
Musisz stronicowac wyniki zapytania sql np po 10 na strone. jak zrobic stronicowanie? bylo na forum na bank wiele razy smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.