Specyfikacja:
- wsparcie dla zapytań SELECT, INSERT, UPDATE i DELETE (cczyli, tych, które są wykonywane przez skrypty)
- wsparcie dla aliasów (tzn wywalanie ich

- wsparcie dla JOINow
Poniżej daję kod. Przetestować funkcję można na http://www.olek.thc.net.pl/get_tables_from_query.php a ten sam kod jest dostępny na http://www.olek.thc.net.pl/show_code.php?p...m_query_0.6-dev
<?php /** * Funkcja zwraca z zapytania mysql nazwy tabel użytych w zapytaniu * * Metoda pobiera jako parametr zapytanie mysql a zwraca nazwy tabel w postaci ta licy. * Przykład użycia * <code> * $query = 'SELECT t1.kolumna1, t2.kolumna2 FROM tabela1 t1, tabela2 t2 WHERE t1.kolumna1 = 2.kolumna2'; * $result = get_tables_from_query( $query ); * // array(2) { * // [0]=> * // string(7) \"tabela1\" * // [1]=> * // string(7) \"tabela2\" * // } * </code> * * @author Aleksander Dutkowski * @access public * @version 1.0-rc * @copyright Metoda może być dowolnie uzywana i znieniana * @param string $sql Zapytanie sql * @return array Nazwy tabel * */ function get_tables_from_query( $sql ) { if( $which == 'select' ) { /* * Wycinanie SELECT nazwy_tabel */ /* * Wycinanie wszystkiego po nazwach tabel tj. where, group by, having, order by i limit */ if( $posLimit != false ) { } if( $posOrder != false ) { } if( $posHaving != false ) { } if( $posGroup != false ) { } if( $posWhere != false ) { } { $min = $arr[0]; } { } else { } $str = $short_str; { } } elseif( $which == 'insert' ) { if( $int === false ) { } else { } if( $posNawias != false ) { } if( $posValues != false ) { } if( $posSet != false ) { } { $min = $arr[0]; } { } else { } } elseif( $which == 'update' ) { } elseif( $which == 'delete' ) { if( $space !== false ) { } } /* * Likwidowanie niepotrzebnych spacji */ /* * Likwidowanie aliasów */ foreach( $tables as $key => $val ) { { } } { } else { $return = &$tables; } /* Zwracanie tablicy z nazwami tabel */ return $return; } ?>