Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Nickname Nie zapisuje się[MYSQ]
Forum PHP.pl > Forum > PHP
Rolex
Witam zaczynam robić mały panel Gdzie we formularzu wpisuje się nick później ten nick jest zapisywany do bazy

Wszystko się poprawnie łączy lecz niestety plik się nie zapisuje do bazy.

Proszę o pomoc.



  1. <?php
  2.  
  3. $nickname = $_POST['Imie'];
  4. $link = mysql_connect('...', '...', '...');
  5. if (!$link) {
  6. die('Nie połączono : ' . mysql_error());
  7. }
  8.  
  9. // Ustaw foo jako aktualną bazę danych
  10. $db_selected = mysql_select_db('....', $link);
  11. $result = mysql_query("SELECT nickname FROM mybb_samp")
  12. or die("Zapytanie niepoprawne");
  13. mysql_query("INSERT INTO `nickname` VALUES (1," . $nickname. ")");
  14.  
  15. if (!$db_selected) {
  16. die ('Nie można ustawić foo : ' . mysql_error());
  17. }
  18. mysql_close($link);
  19. ?>
  20.  
  21.  
  22.  
ADeM
  1. mysql_query( "INSERT INTO `nickname` VALUES ( 1, '$nickname' )" ) or die( mysql_error() );

I podaj co wyświetla.
Rolex
Table 'db349405623.nickname' doesn't exist
ylk
No to w czym jeszcze problem? Próbujesz zapisać do tabeli, która nie istnieje.
Piogola
Nie znaleziono tabeli nickname w bazie db349405623. Powinno być

  1. INSERT INTO mybb_samp VALUES ...
ADeM
Prawdopodobnie chodzi Ci o tabelę "mybb_samp".
Rolex
Dodałem tak jak Pigola i mam :


Column count doesn't match value count at row 1


Kod:


  1.  
  2. <?php
  3.  
  4. $nickname = $_POST['Imie'];
  5. $link = mysql_connect('host', 'dbo349405623', 'pass');
  6. if (!$link) {
  7. die('Nie połączono : ' . mysql_error());
  8. }
  9.  
  10. // Ustaw foo jako aktualną bazę danych
  11. $db_selected = mysql_select_db('db349405623', $link);
  12. $result = mysql_query("SELECT nickname FROM mybb_samp")
  13. or die("Zapytanie niepoprawne");
  14. mysql_query( "INSERT INTO mybb_samp VALUES ( 1, '$nickname' )" ) or die( mysql_error() );
  15.  
  16. if (!$db_selected) {
  17. die ('Nie można ustawić foo : ' . mysql_error());
  18. }
  19. mysql_close($link);
  20. ?>
  21.  


Czyli chce zeby nickname zapisywał sie do nickname który jest w mybb_samp
ADeM
  1. mysql_query( "INSERT INTO mybb_samp SET nickname='$nickname'" ) or die( mysql_error() );
Rolex
Lecz teraz mam problem wszystko się zapisuje zrobiłem nawet nowe pole na nazwisko.

Jak wpiszę Imie i nazwisko za 1 razem jest okej wszystko sie zapisuje ale jak drugi raz dam imie i nazwisko zapisuje sie tylko imie i w przeglądarce widnieje Komunikat :

Duplicate entry '' for key 1

Proszę o pomoc
emajl22
dziwisz się?
  1. mysql_query( "INSERT INTO mybb_samp VALUES ( null, '$nickname' )" ) or DIE(mysql_error());

Rolex
Ale w to trzeba dodać chyba " nickname='$nickname' " , Tylko kombinuje i mi błąd wysakuje
ADeM
A możesz pokazać swoje zapytanie? Jak ono wygląda?
Rolex

Wycinek:
  1. // Ustaw foo jako aktualną bazę danych
  2. $db_selected = mysql_select_db('db349405623', $link);
  3. $result = mysql_query("SELECT nickname FROM mybb_samp")
  4. or die("Zapytanie niepoprawne");
  5. mysql_query( "INSERT INTO mybb_samp VALUES ( null, '$nickname' )" ) or DIE(mysql_error());
  6.  
  7. mysql_query( "INSERT INTO mybb_samp VALUES ( null, '$Nazw' )" ) or DIE(mysql_error());
  8.  
  9. if (!$db_selected) {
  10. die ('Nie można ustawić foo : ' . mysql_error());
  11. }
  12. mysql_close($link);
  13. ?>
  14.  



jestem poczatkujacy

To jest całoś prócz tych Connecti
emajl22
  1. mysql_query("INSERT INTO `mybb_samp` VALUES (null, '$nickname')") or DIE(mysql_error());

to jest poprawne zapytanie

problem leży w bazie danych. Powinieneś mieć takie pola w tabeli mybb_samp:

ID - auto increment not null
xxx - varchar(32) not null

błąd mówi, że powtarza się już taki rekord, czyli zakładam, że w id nie dałeś auto_increment
ADeM
Wstawiaj to za pomocą jednego zapytanie. Niepotrzebnie robisz dwa.
  1. mysql_query( "INSERT INTO mybb_samp SET nickname='$nickname', nazwa_pola_z_nazwiskiem='$Nazw'" ) or die( mysql_error() );


EDIT:

No tak. Plus jeszcze to co napisał ~emajl22 ;-)
Rolex
Niestety nie wiem o co wam chodzi mam tak:


  1. --
  2. -- Struktura tabeli dla `mybb_samp`
  3. --
  4.  
  5. CREATE TABLE `mybb_samp` (
  6. `nickname` varchar(24) collate utf8_polish_ci NOT NULL,
  7. `nazwisko` varchar(30) collate utf8_polish_ci NOT NULL,
  8. `pass` varchar(12) collate utf8_polish_ci NOT NULL,
  9. PRIMARY KEY (`nickname`)
  10. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;
  11.  
  12. --
  13. -- Zrzut danych tabeli `mybb_samp`
  14. --




Nie rozumiem o co chodzi Ci z tym ID.




emajl22
usun ta tabele a zrob taka:
  1. CREATE TABLE `mybb_samp` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `nickname` varchar(24) collate utf8_polish_ci NOT NULL,
  4. `nazwisko` varchar(30) collate utf8_polish_ci NOT NULL,
  5. `pass` varchar(12) collate utf8_polish_ci NOT NULL,
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

powinno być ok
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.