Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Systemy porównań i wstawiani rekordów
Forum PHP.pl > Forum > Bazy danych > MySQL
kornelcio
Witam,
Mam pewien problem. Mianowicie, kiedy tworzę tabelę wyniki, mam trzy pola: id(INT AUTO_INCREMENT), nick(VARCHAR(25)), wynik(INT). Ta tabela ma by tabelą przchowującą wyniki z pewnej gry. I tutaj mam taki problem. Nie mogę wstawić dwóch rekordów o takim samym nicku. Przy tworzeli tabeli jest takie coś jak system porównań. Nie wpisując tam nic, nie mogę wpisać takich samych nicków, a wpisując co kokolwiek też się nie da. Próbowałem to robić i za pomocą php, i za pomocą phpMyAdmina. Co należy z tym zrobić?questionmark.gif

PS. Do pola nick automatycznie dodawany jest system porównań sad.gif sad.gif .
popbart
Pokaż jak wpisujesz polecenie insert oraz kod php.
kornelcio
To mam w dwóch plikach. Jeden tworzy bazę, a drugi dodaje rekordy

Pierwszy plik:

  1. <?php
  2.  
  3. $sql = mysql_connect(&#092;"localhost\", \"root\", \"kornelcio\") or
  4. die(&#092;"Nie mozna polaczyc sie z MySQL<br>\");
  5. echo(&#092;"Polaczenie z MySQL zostalo nawiazane<br>\");
  6. $nowa_baza = &#092;"CREATE DATABASE wyniki\";
  7. $query = mysql_query($nowa_baza);
  8. if(!$query){
  9. die(&#092;"Nie mozna utworzyc nowej bazy<br>\");
  10. } else {
  11. echo(&#092;"Utworzenie bazy przebieglo pomyslnie<br>\");
  12. }
  13. if(mysql_errno()){
  14. die(&#092;"<br>\".mysql_errno().\":\".mysql_error().\"<br>\");
  15. }
  16. mysql_select_db('wyniki');
  17. $query = mysql_query( &#092;"CREATE TABLE `wyniki` (
  18. `id` INT NOT NULL AUTO_INCREMENT ,
  19. `nick` VARCHAR( 50 ) DEFAULT 'anonim' NOT NULL ,
  20. `wynik` INT DEFAULT '0' NOT NULL ,
  21. PRIMARY KEY ( `nick` ) ,
  22. INDEX ( `id` , `wynik` ) ,
  23. FULLTEXT (
  24. `nick` 
  25. )
  26. )&#092;");
  27. if(mysql_errno()){
  28. die(&#092;"<br>\".mysql_errno().\":\".mysql_error().\"<br>\");
  29. }
  30. $ins_tab = &#092;"insert into wyniki values
  31. (NULL,
  32. 'kornelcio',
  33. '5')&#092;";
  34. $query = mysql_query($ins_tab);
  35. if(mysql_errno()){
  36. die(&#092;"<br>\".mysql_errno().\":\".mysql_error().\"<br>\");
  37. }
  38. echo(&#092;"Wstawienie rekordu przebieg&sup3;o \");
  39. if($query){
  40. echo(&#092;"pomyslnie.<br>\");
  41. } else {
  42. echo(&#092;"niepomyslnie.<br>\");
  43. }
  44. ?>


i drugi plik:

  1. <?php
  2.  
  3. mysql_connect(&#092;"localhost\", \"root\", \"kornelcio\") or
  4. die(&#092;"Nie można nawiązać połączenia z bazą danych MySQL\");
  5. mysql_select_db('wyniki') or
  6. die(&#092;"Nie można nawiązać połączenia z bazą danych wyniki\");
  7. mysql_query(&#092;"INSERT INTO `wyniki` ( `id` , `nick` , `wynik` ) 
  8. VALUES (
  9. '', 'kornelcio', '3'
  10. )&#092;");
  11. if(mysql_errno()){
  12. die(mysql_errno().&#092;":\".mysql_error());
  13. } else {
  14. echo(&#092;"Rekordy dodane pomyślnie.\");
  15. }
  16.  
  17. ?>
DeyV
Ustawiłeś, by PRIMARY KEY ( `nick` ) czyli nick jednoznacznie identyfikuje wieresz, stąd nie może się nigdy powtórzyć.

Kluczem jednak powinien być ID, które wtedy nie musi już być niezależnym indexem.
kornelcio
wielkie dzięki.
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.