Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql][php] źle zrobiona tabela.
Forum PHP.pl > Forum > Przedszkole
Glukozamina
Witam. Mam skypt z książki który każe mi zrobic taką tabele
  1. CREATE TABLE Artykuly (
  2. Id INT AUTO_INCREMENT PRIMARY KEY .
  3. ParentId INT NOT NULL .
  4. AutroId INT NOT NULL .
  5. DATA DATETIME NOT NULL .
  6. Temat VARCHAR( 200 ) NOT NULL .
  7. Tresc TEXT NOT NULL
  8. )


A ja robie taką tabele w stronie mysql3.yoyo.pl
  1. CREATE TABLE `Artykuly` (
  2. `Id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. `ParentId` INT NOT NULL ,
  4. `AutroId` INT NOT NULL ,
  5. `Data` DATETIME NOT NULL ,
  6. `Temat` VARCHAR( 200 ) NOT NULL ,
  7. `Tresc` TEXT NOT NULL
  8. ) ENGINE = MYISAM ;

Jednak skrypt odpowiedzialny za łączenie pokazuje błąd. Czy te róznice mają jakieś znaczenie ?
Błąd to: "Błąd serwera. Zalogowanie nie było możliwe." Wcześniejszy skrypt miałem podobny i ten sam błąd i wtedy problem był w tabeli.

  1. <?PHP
  2. function checkPass($user, $pass)
  3. {
  4. $userNameLength = strlen($user);
  5. $userPassLength = strlen($pass);
  6.  
  7. if($userNameLength < 3 || $userNameLength > 20 ||
  8.  $userPassLength < 6 || $userPassLength > 40){
  9. return 2;
  10. }
  11.  
  12. if (!$db_lnk = mysql_connect("mysql3.yoyo.pl", "db486994", "xxxxxxxxxxxxxxxxxxx")){
  13. //echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...');
  14. return 1;
  15. }
  16.  
  17. if(!mysql_select_db('db486994')){
  18. //echo('Wystąpił błąd podczas wyboru bazy danych: test...');
  19. return 1;
  20. }
  21.  
  22. $query = "SELECT Id FROM Users WHERE Nazwa='$user' ";
  23. $query .= "AND Haslo='$pass'";
  24.  
  25. if(!$result = mysql_query($query, $db_lnk)){
  26. //echo('Wystąpił błąd: nieprawidłowe zapytanie...');
  27. return 1;
  28. }
  29.  
  30. if(@mysql_num_rows($result) != 1){
  31. //echo('Wystąpił błąd: nieprawidłowe wyniki zapytania...');
  32. return 2;
  33. }
  34.  
  35. if(!$row = mysql_fetch_row($result)){
  36. //echo('Wystąpił błąd: nieprawidłowe wyniki zapytania...');
  37. return 1;
  38. }
  39.  
  40. $userId = $row[0];
  41. $_SESSION['UserId'] = $userId;
  42.  
  43. $query = "SELECT PrzywilejId FROM Uzytkownicy_Przywileje WHERE UserId=$userId ";
  44.  
  45. if(!$result = mysql_query($query, $db_lnk)){
  46. //echo('Wystąpił błąd: nieprawidłowe zapytanie...');
  47. return 1;
  48. }
  49. $_SESSION['Przywileje'] = array();
  50. while($row = mysql_fetch_row($result)){
  51. switch($row[0]){
  52. case 1 : $_SESSION['Przywileje']['Administrator'] = true;
  53. case 2 : $_SESSION['Przywileje']['News'] = true;
  54. }
  55. }
  56. return 0;
  57. }
  58.  
  59. if(isSet($_SESSION['zalogowany'])){
  60. header("Location: main.php");
  61. }
  62. else if(!isSet($_POST["haslo"]) || !isSet($_POST["user"])){
  63. $_SESSION['komunikat'] = "Wprowadź nazwę i hasło użytkownika:";
  64. include('form.php');
  65. }
  66. else{
  67. $val = checkPass($_POST["user"], $_POST["haslo"]);
  68. if($val == 0){
  69. $_SESSION['zalogowany'] = $_POST["user"];
  70. header("Location: main.php");
  71. }
  72. else if($val == 1){
  73. $_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.";
  74. include('form.php');
  75. }
  76. else if($val == 2){
  77. $_SESSION['komunikat'] = "Nieprawidłowa nazwa lub hasło użytkownika.";
  78. include('form.php');
  79. }
  80. else{
  81. $_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.";
  82. include('form.php');
  83. }
  84. }
  85. ?>
PiXel2.0
Tabela Artykuly nie jest od tego skryptu.

Prawdopodobnie nie masz w bazie tabeli Users i/lub Uzytkownicy_Przywileje albo wogole podstawiasz bledne dane do mysql_connect().
sniezny_wilk
odkomentuj te komunikat o błędach w funkcji sprawdzającej hasło i zobacz co wyrzucają.
Glukozamina
Jeszcze jedno pytanie jak w panelu phpMyadmin wykonać taką operacje
  1. ALTER TABLE Uzytkownicy_Przywileje(
  2. ADD CONSTRAINT UzytkownicyFK
  3. FOREIGN KEY (UserId) REFERENCES Users(Id)
  4.  
  5. ALTER TABLE Uzytkownicy_Przywileje(
  6. ADD CONSTRAINT PrzywilejeFK
  7. FOREIGN KEY (PrzywilejeId) REFERENCES Przywileje(Id)
sniezny_wilk
Wkleić w pole tam gdzie się wykonuje SQL'a jest nawet zakładka o takiej nazwie.
Glukozamina
To już robiłem jednak jakiś bład wyskakiwał więc myslalem ze jakos inaczej .
Błąd

zapytanie SQL:

ALTER TABLE Uzytkownicy_Przywileje ADD CONSTRAINT UzytkownicyFK FOREIGN KEY ( UserId ) REFERENCES Users( Id ) ALTER TABLE Uzytkownicy_Przywileje ADD CONSTRAINT PrzywilejeFK FOREIGN KEY ( PrzywilejeId ) REFERENCES Przywileje( Id )

MySQL zwrócił komunikat:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ALTER TABLE Uzytkownicy_Przywileje
ADD CONSTRAINT PrzywilejeFK
FOREIGN KEY (Pr' at line 5
nospor
Proponuje zajrzec do manuala:
http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
zobaczyc jak wygląda poprawna skladnia alter table a nastepnie porownac to z tym co napisales winksmiley.jpg
Glukozamina
Przepisałem całe to zapytanie dokładnie z książki i wyskakuje mi ten błąd 2 posty wyżej. Z tego manuala to za duzo nie rozumiem.
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.