Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Wyrazenia Regularne
ActivePlayer
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


Jak ze stronga zawierającego zapytanie mysql wyciągnąc nazwe tabeli??
Go to the top of the page
+Quote Post
cichy
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 197
Pomógł: 0
Dołączył: 9.09.2003
Skąd: z Marsa

Ostrzeżenie: (0%)
-----


Cytat
Jak ze stronga zawierającego zapytanie mysql wyciągnąc nazwe tabeli??

pić dopuki nie dojdziesz do nazwy tabeli..
wyjąć..
wypić reszte (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


dobra inaczej... jak wyciągnąc 1 wyraz który jest napisany po "FROM " w stringu...
Go to the top of the page
+Quote Post
Sh4dow
post
Post #4





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


Wiem ze strong moze zawierac sie w Kegach lub skrzynkach, ktore sa podobne to tabeli ale tak czy inaczej daleko im do tego. Wiec pis stronga az skrzynka stanie sie tabela, i wyciagnij kolejnego stronga z tabeli. i szukaj kolumn do upadlego... (IMG:http://forum.php.pl/style_emoticons/default/Rkingsmiley.png)
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


Literowka a ludzie odrazu zaczynają sie smiac ;/ pomoze mi ktos (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Dabroz
post
Post #6





Grupa: Zarejestrowani
Postów: 286
Pomógł: 0
Dołączył: 1.11.2003
Skąd: Poland, Płock

Ostrzeżenie: (0%)
-----


No dobra, jeżeli picie strongów Ci nie odpowiada (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

  1. <?php
  2. if (preg_match('#FROM (w+)#si',$sql))
  3. $tabela=preg_replace('#FROM (w+)#si','1',$sql);
  4. ?>


[edit] już nie ma parse error (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
[edit2] już nie tylko na SELECT (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował Dabroz 22.08.2004, 19:27:15
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


Parse error

po 2 chodzi mi o dowolne zapytanie nie tylko o select (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

napisalem cos takiego:
  1. <?php
  2.  
  3. function nazwa_tabeli($string)
  4. {
  5.  
  6. $nazwa=explode(&#092;" \",$string);
  7. $j=0;
  8. while($nazwa[$j]!=&#092;"FROM\")
  9. {
  10. $j++;
  11. }
  12. $j++
  13. return $nazwa[$j];
  14. }
  15.  
  16.  
  17. ?>


Ten post edytował ActivePlayer 22.08.2004, 19:16:46
Go to the top of the page
+Quote Post
MoD
post
Post #8





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

Ostrzeżenie: (0%)
-----


A jak wyciągnąć nazwy pól tabeli międy SELECT a FROM (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


  1. <?php
  2. function nazwa_tabeli($string)
  3. {
  4.  
  5. $nazwa=explode(&#092;" \",$string);
  6. $j=0;
  7. while($nazwa[$j]!=&#092;"SELECT\")
  8. {
  9. $j++;
  10. }
  11. $j++
  12. return $nazwa[$j];
  13. }
  14. ?>
Go to the top of the page
+Quote Post
tiraeth
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Przykład stringa:
Kod
SELECT id, nazwa, tresc FROM tabela WHERE id>5


Wyciąganie nazwy kolumn:

  1. <?php
  2. // Zmienna $s_String to właśnie ten nasz nieszczęsny string do regexp'owania :)
  3.  
  4. $e_String = explode('FROM', $s_String); // Eksplodujemy
  5.  
  6. $e_Select = $e_String[0]; // Zmienna z nazwami kolumn jest tutaj, ale razem z 'SELECT'
  7. $e_Select = str_replace('SELECT', '', $e_Select); // Usuwamy SELECT ze stringa
  8. $e_Select = str_replace(' ', '', $e_Select); // Usuwamy spacje ze stringa
  9. $e_Columns = explode(',' $e_Select); // Eksplodujemy wszystkie nazwy kolumn
  10.  
  11. echo '</b>Wybrane kolumny:</b>';
  12. for($i=0; $i<count($e_Columns); $i++)
  13. {
  14. echo '<br />'$e_Columns[$i];
  15. }
  16. ?>

Powyższy kod wyświetli wszystkie nazwy kolumn w poniższej formie:
Cytat
Wybrane kolumny:
id
nazwa
tresc

Oczywiście można jeszcze sortować tablicę z nazwami kolumn (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


A jak chce pobrac nazwe tabeli z jakiej pobieram (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
FiDO
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


A mozna wiedziec po co Ci reverse-enginering zapytania SQL'owego? Mam dziwne wrazenie, ze probujesz cos zrobic pod gorke..
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


cachowanie bazy danych... przy INSERT/UPDATE/DELETE musze wyzucic wszystkie pliki cache dla zapytan danych tabel. Chce zeby byl full automat. w sumie juz skonczylem i dziala all ale musze nad wydajnoscią popracowac bo mam serialize 2x w pętlach i troche przymula...
Go to the top of the page
+Quote Post
MoD
post
Post #14





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

Ostrzeżenie: (0%)
-----


Cytat(Tiraeth @ 2004-08-25 22:04:47)
Przykład stringa:
Kod
SELECT id, nazwa, tresc FROM tabela WHERE id>5


Wyciąganie nazwy kolumn:

  1. <?php
  2. // Zmienna $s_String to właśnie ten nasz nieszczęsny string do regexp'owania :)
  3.  
  4. $e_String = explode('FROM', $s_String); // Eksplodujemy
  5.  
  6. $e_Select = $e_String[0]; // Zmienna z nazwami kolumn jest tutaj, ale razem z 'SELECT'
  7. $e_Select = str_replace('SELECT', '', $e_Select); // Usuwamy SELECT ze stringa
  8. $e_Select = str_replace(' ', '', $e_Select); // Usuwamy spacje ze stringa
  9. $e_Columns = explode(',' $e_Select); // Eksplodujemy wszystkie nazwy kolumn
  10.  
  11. echo '</b>Wybrane kolumny:</b>';
  12. for($i=0; $i<count($e_Columns); $i++)
  13. {
  14.     echo '<br />'$e_Columns[$i];
  15. }
  16. ?>

Powyższy kod wyświetli wszystkie nazwy kolumn w poniższej formie:
Cytat
Wybrane kolumny:
id
nazwa
tresc

Oczywiście można jeszcze sortować tablicę z nazwami kolumn (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A co jeśli nie ma tam pól tylko "*" (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Można umieścić w funckji która zwraca wartość FALSE jeśli pomiędzy jest "*" a jak nie to tablice zawierającą nazwy pól. Tylko że jak ja próbowałem to nie wyciągało nic (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 07:02