Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]zapytanie SELECT MYSQL
Forum PHP.pl > Forum > Przedszkole
piekloniebo
WItam,
Obecnie trochę staram się "przerobić" komponent Virtuemart do Joomla i natknąłem się na taki problem.
Nie za bardzo kumam co oznacza taki zapis zapytania SELECT:

  1. $list = "SELECT #__{vm}_orders.order_shipping, #__{vm}_orders.order_id, order_status, #__{vm}_orders.cdate,#__{vm}_orders.mdate,order_total,order_currency,#__{vm}_ord
    ers.user_id,"
    ;
  2. $list .= "first_name, last_name FROM #__{vm}_orders, #__{vm}_order_user_info WHERE ";
  3.  
  4. $q = "address_type = 'BT' AND ";
  5. $q .= "(#__{vm}_orders.order_id=#__{vm}_order_user_info.order_id) ";
  6. $q .= "AND #__{vm}_orders.vendor_id='".$_SESSION['ps_vendor_id']."' ";
  7. $q .= "ORDER BY #__{vm}_orders.cdate DESC ";
  8. $list .= $q . " LIMIT $limitstart, " . $limit;
  9.  
  10.  



Chodzi mi konkretni o to dlaczego raz nazwy kolumn są wymianiane z przedrostkiem oznaczającym tabelę z której pochodzą:
np. #__{vm}_orders.order_shipping,

a w innym miejscu jskoś tak po przecinku i bez oznaczenia tablicy:
#__{vm}_orders.order_id, order_status


Z góry dzięki za pomoc w rozpracowaniu tego...


Pozdrawiam,
Darek
askone
Hej

Wydaje mi się, iż powód jest prozaiczny smile.gif Niedbalstwo programisty. Jeśli w zapytaniu pobierane są dane z kilku tabel nazwy kolumn powinny być poprzedzone nazwą tabeli lub jej aliasem. Zapobiega to problemowi nieoznaczenia, kiedy w obu tabelach występują kolumny o tych samych nazwach.

Oczywiście zapytanie bez przedrostków też będzie działać, ale będzie powodem stresu dla innych analizujących kod winksmiley.jpg

Pozdrawiam
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.