Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Sprawdzenie skryptu
koniu90
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.03.2014

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


Witam. Jestem totalnym nowicjuszem w tej dziedzinie i dopiero się uczę, także proszę o wyrozumiałość.
Prosiłbym o sprawdzenie kodu którego napisałem. Skrypt ma instalować bazę na serwerze i dodać tabelę:
  1. $lacz = mysql_connect( $serwer, $login, $haslo );
  2. $zapytanie = 'CREATE DATABASE $nazwabazy';
  3.  
  4. $wykonaj = mysql_query ($zapytanie);
  5.  
  6. if($wykonaj==true)
  7. {
  8. echo 'Baza została utworzona';
  9. }
  10. else
  11. {
  12. echo 'Baza nie została utworzona';
  13. }
  14. $lacz = mysql_select_db ( 'WirtualnyDziekanat' );
  15.  
  16. $zapytanie = 'CREATE TABLE Users (
  17. user_id INT () not null AUTO_INCREMENT,
  18. login VARCHAR (11) not null,
  19. password VARCHAR (30) not null,
  20. forname VARCHAR(20) not null,
  21. surname VARCHAR(40) not null,
  22. group_id INT() not null,
  23. pesel VARCHAR(11) not null,
  24. PRIMARY KEY (user_id))';
  25.  
  26. $wykonaj = mysql_query ($zapytanie);
  27. if($wykonaj==true)
  28. {
  29. echo 'Tabela została utworzona';
  30. }
  31. else
  32. {
  33. echo 'Tabela nie została utworzona';
  34. }


Ten post edytował Kshyhoo 18.03.2014, 21:10:43
Powód edycji: [Kshyhoo]: bb-code
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


1. Staraj sie nie używac w nazwach słow zastrzeżonych - USER, LOGIN, PASSWORD
2. user_id INT () not null,
WTF??
3. user_id powinno być auto_increment
4. typu CHAR raczej nie powinno się używać
Go to the top of the page
+Quote Post
koniu90
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.03.2014

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


Ok dzięki za wskazówki... poprawię

Ogólnie skrypt się powinien wykonać?

Jeszcze jedno pytanie:
w bazie będzie kilka tabel czy każdą którą tworzę muszę robić w osobna w znaczniku <?php .... ?> czy można wszystko ze sobą połączyć

ktos odpowie (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
IProSoft
post
Post #4





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


Jeśli wprowadziłeś poprawki: tak, wykona się.

Możesz nawet wszystkie wsadzić w jeden string i zainstalować, a osobno tylko kopiujesz kod.
Go to the top of the page
+Quote Post
koniu90
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.03.2014

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


dzięki za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Przenoszę do Przedszkola.
Go to the top of the page
+Quote Post
YourFrog
post
Post #7





Grupa: Zarejestrowani
Postów: 124
Pomógł: 22
Dołączył: 10.01.2014

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


Zainstaluj coś pokroju "MySQL Workbench", stwórz tabelę i spróbuj wyeksportować. Zobaczysz jak wyglądają poprawne zapytania do bazy danych tworzące tąże bazę. Twój kod uruchomiony 2x poinformuje że nie udało mu się w zasadzie nic co miał zrobić.

Wskazówki
- Sprawdzaj czy SCHEMA bazy danych już istnieje,
- Sprawdzaj czy istnieje tabela którą chcesz utworzyć,
- mysql_* jest oznaczone jako przestażałe używaj mysqli lub \PDO,
Go to the top of the page
+Quote Post
koniu90
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.03.2014

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


  1. $lacz = mysql_connect( $serwer, $login, $haslo );
  2. $zapytanie = 'CREATE DATABASE $Dziekanat';
  3.  
  4. $wykonaj = mysql_query ($zapytanie);
  5.  
  6. if($wykonaj==true)
  7. {
  8. echo 'Baza została utworzona';
  9. }
  10. else
  11. {
  12. echo 'Baza nie została utworzona';
  13. }
  14. ?>
  15.  
  16. <?php
  17.  
  18. $lacz = mysql_select_db ( 'WirtualnyDziekanat' );
  19.  
  20. $zapytanie1 = 'CREATE TABLE Users (
  21. user_id INT () not null AUTO_INCREMENT,
  22. login VARCHAR (11) not null,
  23. password VARCHAR (30) not null,
  24. forname CHAR(20) not null,
  25. surname CHAR(40) not null,
  26. group_id INT() not null,
  27. pesel VARCHAR(11) not null,
  28. PRIMARY KEY (user_id))';
  29.  
  30. $wykonaj1 = mysql_query ($zapytanie1);
  31. if($wykonaj1==true)
  32. {
  33. echo 'Tabela została utworzona';
  34. }
  35. else
  36. {
  37. echo 'Tabela nie została utworzona';
  38. }
  39.  
  40. $zapytanie2 = 'CREATE TABLE Group (
  41. group_id INT() not null AUTO_INCREMENT,
  42. name CHAR(20) not null,
  43. PRIMARY KEY (group_id)';
  44.  
  45. $wykonaj2 = mysql_query ($zapytanie2);
  46. if($wykonaj2==true)
  47. {
  48. echo 'Tabela została utworzona';
  49. }
  50. else
  51. {
  52. echo 'Tabela nie została utworzona';
  53. }
  54.  
  55. $zapytanie3 = 'CREATE TABLE GroupDeanery (
  56. group_deanery_id INT() not null AUTO_INCREMENT,
  57. user_id INT() not null,
  58. PRIMARY KEY (group_deanery_id)';
  59.  
  60. $wykonaj3 = mysql_query ($zapytanie3);
  61. if($wykonaj3==true)
  62. {
  63. echo 'Tabela została utworzona';
  64. }
  65. else
  66. {
  67. echo 'Tabela nie została utworzona';
  68. }
  69.  
  70.  
  71. $zapytanie4 = 'CREATE TABLE GroupAdmin (
  72. group_admin_id INT() not null AUTO_INCREMENT,
  73. user_id INT() not null,
  74. PRIMARY KEY (group_admin_id))';
  75.  
  76. $wykonaj4 = mysql_query ($zapytanie4);
  77. if($wykonaj4==true)
  78. {
  79. echo 'Tabela została utworzona';
  80. }
  81. else
  82. {
  83. echo 'Tabela nie została utworzona';
  84. }
  85.  
  86.  
  87. $zapytanie5 = 'CREATE TABLE StudentSubject (
  88. student_subject_id INT() not null AUTO_INCREMENT,
  89. subject_semestr_id INT() not null,
  90. group_student_id INT() not null,
  91. mark_1 INT() null,
  92. mark_2 INT() null,
  93. PRIMARY KEY (student_subject_id))';
  94.  
  95. $wykonaj5 = mysql_query ($zapytanie5);
  96. if($wykonaj5==true)
  97. {
  98. echo 'Tabela została utworzona';
  99. }
  100. else
  101. {
  102. echo 'Tabela nie została utworzona';
  103. }
  104.  
  105. $zapytanie6 = 'CREATE TABLE GroupStudent (
  106. group_student_id INT() not null AUTO_INCREMENT,
  107. user_id INT() not null,
  108. index_no CHAR(10) not null,
  109. semestr_no INT() not null,
  110. activity_status_id INT() not null,
  111. PRIMARY KEY (group_student_id))';
  112.  
  113. $wykonaj6 = mysql_query ($zapytanie6);
  114. if($wykonaj6==true)
  115. {
  116. echo 'Tabela została utworzona';
  117. }
  118. else
  119. {
  120. echo 'Tabela nie została utworzona';
  121. }
  122.  
  123. $zapytanie7 = 'CREATE TABLE ActivityStatus (
  124. activity_status_id INT() not null AUTO_INCREMENT,
  125. status_name CHAR(20) not null,
  126. PRIMARY KEY (activity_status_id))';
  127.  
  128. $wykonaj7 = mysql_query ($zapytanie7);
  129. if($wykonaj7==true)
  130. {
  131. echo 'Tabela została utworzona';
  132. }
  133. else
  134. {
  135. echo 'Tabela nie została utworzona';
  136. }
  137.  
  138.  
  139. $zapytanie8 = 'CREATE TABLE SubjectSemestr (
  140. subject_semestr_id INT() not null AUTO_INCREMENT,
  141. subject_id INT() not null,
  142. semestr_no INT() not null,
  143. year INT() not null,
  144. PRIMARY KEY (subject_semestr_id))';
  145.  
  146. $wykonaj8 = mysql_query ($zapytanie8);
  147. if($wykonaj8==true)
  148. {
  149. echo 'Tabela została utworzona';
  150. }
  151. else
  152. {
  153. echo 'Tabela nie została utworzona';
  154. }
  155.  
  156.  
  157. $zapytanie9 = 'CREATE TABLE Subject (
  158. subject_id INT() not null AUTO_INCREMENT,
  159. name NCHAR(10) not null,
  160. subject_type_id INT() not null,
  161. hours_number INT() not null,
  162. ects INT() not null,
  163. PRIMARY KEY (subject_id))';
  164.  
  165. $wykonaj9 = mysql_query ($zapytanie9);
  166. if($wykonaj9==true)
  167. {
  168. echo 'Tabela została utworzona';
  169. }
  170. else
  171. {
  172. echo 'Tabela nie została utworzona';
  173. }
  174.  
  175.  
  176. $zapytanie10 = 'CREATE TABLE SubjectType (
  177. subject_type_id INT() not null AUTO_INCREMENT,
  178. type_name CHAR(20) not null,
  179. PRIMARY KEY (subject_type_id))';
  180.  
  181. $wykonaj10 = mysql_query ($zapytanie10);
  182. if($wykonaj10==true)
  183. {
  184. echo 'Tabela została utworzona';
  185. }
  186. else
  187. {
  188. echo 'Tabela nie została utworzona';
  189. }
  190.  
  191.  
  192. $zapytanie11 = 'CREATE TABLE LecturerSubject (
  193. lecturer_subject_id INT() not null AUTO_INCREMENT,
  194. subject_semestr_id INT() null,
  195. group_lecturer_id INT() not null,
  196. PRIMARY KEY (lecturer_subject_id))';
  197.  
  198. $wykonaj11 = mysql_query ($zapytanie11);
  199. if($wykonaj11==true)
  200. {
  201. echo 'Tabela została utworzona';
  202. }
  203. else
  204. {
  205. echo 'Tabela nie została utworzona';
  206. }
  207.  
  208.  
  209. $zapytanie12 = 'CREATE TABLE GroupLecturer (
  210. group_lecturer_id INT() not null AUTO_INCREMENT,
  211. user_id INT() not null,
  212. user_title_id INT() not null,
  213. PRIMARY KEY (group_lecturer_id))';
  214.  
  215. $wykonaj12 = mysql_query ($zapytanie12);
  216. if($wykonaj12==true)
  217. {
  218. echo 'Tabela została utworzona';
  219. }
  220. else
  221. {
  222. echo 'Tabela nie została utworzona';
  223. }
  224.  
  225.  
  226. $zapytanie13 = 'CREATE TABLE UserTitle (
  227. user_title_id INT() not null AUTO_INCREMENT,
  228. user_id INT() not null,
  229. title_id INT() not null,
  230. PRIMARY KEY (user_title_id))';
  231.  
  232. $wykonaj13 = mysql_query ($zapytanie13);
  233. if($wykonaj13==true)
  234. {
  235. echo 'Tabela została utworzona';
  236. }
  237. else
  238. {
  239. echo 'Tabela nie została utworzona';
  240. }
  241.  
  242.  
  243. $zapytanie14 = 'CREATE TABLE Title (
  244. title_id INT() not null AUTO_INCREMENT,
  245. full_name CHAR(20) not null,
  246. title CHAR(10) not null,
  247. PRIMARY KEY (title_id))';
  248.  
  249. $wykonaj14 = mysql_query ($zapytanie14);
  250. if($wykonaj14==true)
  251. {
  252. echo 'Tabela została utworzona';
  253. }
  254. else
  255. {
  256. echo 'Tabela nie została utworzona';
  257. }
  258. ?>

tworzy 14 tabele tylko nie wiem czy kazda ma miec oddzielne zapytanie?
Powód edycji: [Kshyhoo]: bb-code
Go to the top of the page
+Quote Post
com
post
Post #9





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


po pierwsze napisz sobie do tego funkcje do której tylko wrzucisz stringa z strukturą bazy ,bo pewnie koło obiektówki nie stałeś, ale powielanie tego samego kodu 14 razy jest bez sensu (IMG:style_emoticons/default/smile.gif) A poza tym to musisz napisać ten skrypt tak, że tylko raz go wywołasz, bo przecież tabele tworzysz tylko raz w czasie działania, potem tylko ja uzupełniasz danymi (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #10





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


1. Nie zastosowałeś się do moich rad powyżej (z post w tym wątku)
2. Wszędzie powinieneś mieć IF NOT EXISTS. Np. CREATE DATABASE IF NOT EXISTS ... Bo wcale nie obsługujesz błędów...Co to jest za obsługa, że napiszesz "Baza nie została utworzona"... To nic, że nie została utworzona - lecisz dalej... Może się uda stworzyć tabele... Bez sensu.
3. Z tego samego powodu całość powinieneś robić w transakcji.
4. Brak powiązań pomiędzy tabelami kluczami obcymi.
5. Jeśli chciałbyś je dodać, to w złej kolejności tworzysz tabele... Tabela `Group` powinna być tworzona przed tabelą `Users`.
6. Robisz:
$zapytanie = 'CREATE DATABASE $Dziekanat';
a potem:
$lacz = mysql_select_db ( 'WirtualnyDziekanat' );
Zdecyduj się - czy używasz zmiennej, czy stałej...
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: 7.10.2025 - 15:33