Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Generator klas. metoda odwzorowania., Skrypt, PHP 4 i 5
ActivePlayer
post 5.06.2005, 22:54:54
Post #1





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

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


http://activ.nyloncoffee.pl/?url=generator_klas

no... prosze o testy tego co wypluwa smile.gif

w planach generator formularzy:)

aha... obowiązkowe pole `id` jako klucz.

jako zapytanie dajemy np:'
CREATE TABLE `asd` (
`id` varchar(32) NOT NULL default '',
`CatID` varchar(32) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
';
Go to the top of the page
+Quote Post
SongoQ
post 5.06.2005, 23:12:21
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cos sie wysypalo w sql wpisalem SELECT id from test

OK

Teraz cos takiego, na tym sie sypie a przeciez jest poprawne zapytanie
CREATE TABLE `asd` (
id varchar(32) NOT NULL default '',
CatID varchar(32) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
';

Ten post edytował SongoQ 5.06.2005, 23:17:19


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post 5.06.2005, 23:20:06
Post #3





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

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


hmm... juz jest 1 problem... rozpoznaje nazwy pól po ` ... w Twoim zapytaniu nie ma... hmm... nie mam pojecia jak je z zapytania wyciągnąć ;(
Go to the top of the page
+Quote Post
SongoQ
post 5.06.2005, 23:27:09
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Zgodnie ze standardem SQLa nie jest wymagane w zapytaniu, a co lepsze to taki glupi wymysl MySQLa.


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post 5.06.2005, 23:28:35
Post #5





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

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


dobra, zalozmy ze trzymamy sie wersji z ` ... chce sobie tym generowac klasy zeby nie przeplatac sqla z logiką aplikacji... wiec chodzi raczej o to czy trybi wszystko.
Go to the top of the page
+Quote Post
Marcin_m
post 5.06.2005, 23:33:23
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.06.2005

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


A nie możesz wyciagnac ciagu z nawiasow, zrobic explode po przecinkach, a potem po spacjach?

Zresztą niby fajnie ale czemu obsługuje tylko dwa pola? Gdy podaje wiecej pól, nadal widzi tylko dwa...
Go to the top of the page
+Quote Post
ActivePlayer
post 5.06.2005, 23:34:03
Post #7





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

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


obsluguje wiecej pol.
Go to the top of the page
+Quote Post
Marcin_m
post 5.06.2005, 23:39:03
Post #8





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.06.2005

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


no to looknij na to

  1. CREATE TABLE `asd` (
  2. `id`int NOT NULL DEFAULT AUTO_INCREMENT,
  3. `CatID` varchar(32) NOT NULL DEFAULT '',
  4. `CatD` datetime NOT NULL,
  5. PRIMARY KEY (`id`,`CatD`)
  6. ) TYPE=MyISAM;
  7. ';


i nagle tworzą ci sie dwa pola id...
Go to the top of the page
+Quote Post
ActivePlayer
post 5.06.2005, 23:40:52
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. class asdasd_sad { 
  3.  
  4. var $id; 
  5. var $CatID; 
  6. var $CatD; 
  7. var $id; 
  8.  
  9. ?>


dobra... odczyt zapytania idzie do poprawki... ale to po spaniu. smile.gif
Go to the top of the page
+Quote Post
Bakus
post 7.06.2005, 03:36:33
Post #10


Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 909
Pomógł: 0
Dołączył: 12.08.2003
Skąd: /var/www/wroclaw.php

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


@ActivePlayer: Umieść kod źródłowy (lub link do niego).
To forum jest przeznaczone na projekty z dostępnym kodem... do chwalenia się gotowymi skryptami bez źródeł jest forum "Oceny".


--------------------
Powrót do przeszłości :)
Go to the top of the page
+Quote Post
ActivePlayer
post 7.06.2005, 19:32:20
Post #11





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

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


kod jest dosyc bardzo niestaranny, chcialem umiescic po poprawkach, ale okey:
  1. <?php
  2.  
  3. if(!isset($_POST['generuj']))
  4. {
  5. ?>
  6. <form action=\"\" method=\"POST\">
  7. Nazwa klasy: <input type=\"text\" name=\"nazwa_klasy\"><BR>
  8. Zapytanie SQL tworzące:<BR> <textarea name=\"zapytanie\" rows=6 cols=80></textarea><BR>
  9. <input type=\"submit\" value=\"Generuj\" name='generuj'>
  10. </form>
  11. <?
  12.  
  13. }
  14. else
  15. {
  16. $nazwa_klasy = $_POST['nazwa_klasy'];
  17. $zapytanie = $_POST['zapytanie'];
  18.  
  19.  
  20. $zapytanie = explode(&#092;"`\", $zapytanie);
  21.  
  22. $nazwa_tabeli = $zapytanie['1'];
  23. $ilosc_pol = ((count($zapytanie)-5)/2);
  24. for($i=3;$i<((count($zapytanie)-3));$i+=2){
  25. $pola[] = $zapytanie[$i];
  26. }
  27.  
  28. echo '
  29. <?php
  30. class '.$nazwa_klasy.'{
  31. ';
  32. for($i=0;$i<$ilosc_pol;$i++)
  33. {
  34. echo '
  35. var $'.$pola[$i].';';
  36. }
  37. echo '
  38.  
  39. function '.$nazwa_klasy.'($id = null)
  40. {
  41.  if($id != null){
  42.  $sql = mysql_query(\"SELECT * FROM `\".PREFIX.\"'.$nazwa_tabeli.'`\");
  43.  $row = mysql_fetch_assoc($sql);
  44.  ';
  45. for($i = 0; $i<$ilosc_pol;$i++){
  46. echo '
  47.  $this->'.$pola[$i].' = stripslashes($row[''.$pola[$i].'']);';
  48. }
  49. echo '
  50.  }
  51. }
  52.  
  53. function insert()
  54. {
  55. if($this->id == ''){
  56.  $sql = mysql_query(\"INSERT INTO `\".PREFIX.\"'.$nazwa_tabeli.'` 
  57.  ( `id` ,`';
  58.  $asd = implode('`, `', $pola);
  59.  $asd = substr($asd, 6);
  60. /* for($i=0; $i<$ilosc_pol;$i++){
  61. echo '`'.$pola[$i].'` ';
  62. }*/
  63. echo $asd;
  64. echo '`)
  65. VALUES
  66. ( '' , '&#092;".addslashes($this->';
  67. $asd = implode(').\"', '\".addslashes($this->', $pola);
  68. $asd = substr($asd, 29);
  69. echo $asd;
  70. echo ').\"')
  71. &#092;");
  72.  
  73. }
  74. }
  75.  
  76. function delete()
  77. {
  78. if($this->id != ''){
  79. $sql = mysql_query(&#092;"DELETE FROM `\".PREFIX.\"'.$nazwa_tabeli.'` WHERE id = \".$this->id.\" LIMIT 1\");
  80. }
  81. }
  82.  
  83.  
  84. function update()
  85. {
  86. if($this->id != ''){
  87. $sql = mysql_query( &#092;"UPDATE `\".PREFIX.\"'.$nazwa_tabeli.'` SET
  88. ';
  89. for($i=1; $i<$ilosc_pol; $i++){
  90. $ret .= ' `'.$pola[$i].'= '\".addslashes($this->'.$pola[$i].').\"',
  91. ';
  92.  
  93. }
  94. $ret = substr($ret, 0, -3);
  95. echo $ret.'
  96. '; 
  97. echo ' WHERE
  98. `id` = '\".$this->id.\"'&#092;");
  99. }
  100. }
  101. ';
  102.  
  103. echo '}?>';
  104. $form = '
  105. <?
  106. if(isset($_POST['zapisz']))
  107. {
  108. if($_POST['id'] != '')
  109. {
  110. $oDane = new '.$nazwa_klasy.'($_POST[''.$pola[0].'']);
  111. foreach($_POST as $key =>$val){
  112. $oDane->$key = $val;
  113. }
  114. $oDane->update();
  115. }
  116. else
  117. {
  118. $oDane = new '.$nazwa_klasy.'();
  119. foreach($_POST as $key =>$val){
  120. $oDane->$key = $val;
  121. }
  122. $oDane->insert();
  123. }
  124.  
  125. }
  126.  echo '
  127. <form action=\"\" method=\"POST\">
  128. <table>
  129. <td><input type=\"hidden\" name=\"'.$pola[0].'\" value=\"'.$_POST[''.$pola[0].''].'\"></td>
  130. ';
  131. for($i =1; $i<$ilosc_pol; $i++)
  132. {
  133. $form .= '<tr>
  134.  <td>'.$pola[$i].':</td>
  135.  <td><input type=\"text\" name=\"'.$pola[$i].'\" value=\"'.$_POST[''.$pola[$i].''].'\"></td>
  136. </tr>
  137. ';
  138. }
  139. $form .= '
  140. <tr><TD colspan=2><input type=\"submit\" name=\"zapisz\" value=\"Zapisz\"></td></tr>
  141. </table>
  142. </form>';?>';
  143. $var = ob_get_contents();
  144. ob_end_clean();
  145. highlight_string($var);
  146.  
  147. echo '<hr>';
  148. highlight_string($form);
  149. }
  150. ?>
Go to the top of the page
+Quote Post
SongoQ
post 7.06.2005, 21:28:42
Post #12





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


A gdzie w tym kodzie jakas konwencja, jakies formatowanie? Oj widac ze brak poprawek nie tyle w funkcjonalnosci co w stylu sad.gif


--------------------
Go to the top of the page
+Quote Post
ActivePlayer
post 7.06.2005, 22:05:31
Post #13





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

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


Cytat
kod jest dosyc bardzo niestaranny
Go to the top of the page
+Quote Post
Spirit86
post 9.06.2005, 22:44:33
Post #14





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


że tak się trochę nie na miejscu spytam, do czego to służy? tongue.gif nie mogę coś do tego dojść winksmiley.jpg


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
SongoQ
post 10.06.2005, 18:20:44
Post #15





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@Spirit86 Hm jak by to napisac: Czesto sie spotykasz z np pisaniem caly czas nowych klas ktore cos tam robia w bazie danych i @ActivePlayer chcial cos takiego napisac. Podajesz sqla tabeli a automatycznie generuje Ci klase z metodami ktore "operuja" na tej tabeli. Taki generator nieraz moze sie przydac a nieraz niestety z niego nie skorzystamy.

Ogolnie troche jestem przeciwny za wszelkiego rodzajami generatorow ale pomysl jest nawet ok.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 06:34