Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zmiana rekordu danej tabeli w mysql
bartus12342
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.04.2011

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


Witam mam taki kod na zmianę rekordu w odpowiedniej tabeli w bazie danych ale coś nie działa co tu może być źle?



  1.  
  2. <form action="index.php" method="post">
  3. Nick:<br />
  4. <input type="text" name="name" /><br />
  5. Nowy nick:<br />
  6. <input type="text" name="email" /><br />
  7. <input type="submit" value="dodaj" />
  8. </form>
  9.  
  10. <?php
  11. // odbieramy dane z formularza
  12. $player = $_POST['name'];
  13. $email = $_POST['name'];
  14.  
  15. IF($player AND $email) {
  16.  
  17. $id = $_GET['id'];
  18.  
  19. require_once("includes/config.php");
  20. $database = mysql_select_db("player");
  21. $query = mysql_query("SELECT * FROM player WHERE name");
  22.  
  23. $i = 1;
  24.  
  25. // dodajemy rekord do bazy
  26. $ins = @mysql_query("UPDATE * FROM player WHERE name LIKE '$player[name]'");
  27.  
  28. IF($ins) echo "Rekord został dodany poprawnie";
  29. else echo "Błąd nie udało się dodać nowego rekordu";
  30. }
  31.  
  32.  
  33. elseif($email == 'save') {
  34. /* odbieramy zmienne z formularza */
  35. $player = trim($_POST['name']);
  36. $email = trim($_POST['name']);
  37. /* uaktualniamy tabelę test */
  38. mysql_query("UPDATE player SET name player='$name',
  39. email='$name]' ")
  40. OR die('Błąd zapytania');
  41. echo 'Dane zostały zaktualizowane';
  42. }
  43.  
  44.  
  45. ?>
  46.  
Go to the top of the page
+Quote Post
barcisz
post
Post #2





Grupa: Zarejestrowani
Postów: 41
Pomógł: 12
Dołączył: 8.04.2011

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


Na szybko widzę trzy blędy błędy:

Cytat
SELECT * FROM player WHERE name


Chyba powinno być 'WHERE name LIKE '$player[name]'? Bo to zapytanie zwróci wszystkie rekordy, które mają wypełnioną kolumnę name

Cytat
UPDATE * FROM player WHERE name LIKE '$player[name]'


dodawanie do bazy robimy instrukcją INSERT i obie mają zupełnie inną konstrukcję.

Cytat
UPDATE player SET name player='$name', email='$name'


W ten sposób zmienisz wszystkie rekordy (potrzebujesz klauzuli WHERE). Poza tym masz spację w pomiędzy name a player, co na pewno wywala błąd, bo nazwy kolumn nie mogą zawierać spacji.
Go to the top of the page
+Quote Post
bartus12342
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.04.2011

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


Poprawiłem to tak, ale przypominam że ja chce zmienić rekord w danej tabeli a nie dodawac nowy rekord i nie wiem czy to dobry kod


  1.  
  2. <form action="index.php" method="post">
  3. Nick:<br />
  4. <input type="text" name="name" /><br />
  5. Nowy nick:<br />
  6. <input type="text" name="email" /><br />
  7. <input type="submit" value="dodaj" />
  8. </form>
  9.  
  10. <?php
  11. // odbieramy dane z formularza
  12. $player = $_POST['name'];
  13. $email = $_POST['name'];
  14.  
  15. IF($player AND $email) {
  16.  
  17. $id = $_GET['id'];
  18.  
  19. require_once("includes/config.php");
  20. $database = mysql_select_db("player");
  21. $query = mysql_query("SELECT * FROM player WHERE name like '$player[name]'");
  22.  
  23. $i = 1;
  24.  
  25. // dodajemy rekord do bazy
  26. $ins = @mysql_query("INSERT* FROM player WHERE name LIKE '$player[name]'");
  27.  
  28. IF($ins) echo "Rekord został dodany poprawnie";
  29. else echo "Błąd nie udało się dodać nowego rekordu";
  30. }
  31.  
  32.  
  33. elseif($email == 'save') {
  34. /* odbieramy zmienne z formularza */
  35. $player = trim($_POST['name']);
  36. $email = trim($_POST['name']);
  37. /* uaktualniamy tabelę test */
  38. mysql_query("UPDATE player WHERE name player='$name',
  39. email='$name]' ")
  40. OR die('Błąd zapytania');
  41. echo 'Dane zostały zaktualizowane';
  42. }
  43.  
  44.  
  45. ?>
  46.  
Go to the top of the page
+Quote Post
barcisz
post
Post #4





Grupa: Zarejestrowani
Postów: 41
Pomógł: 12
Dołączył: 8.04.2011

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


Kod
// dodajemy rekord do bazy
$ins = @mysql_query("INSERT* FROM player WHERE name LIKE '$player[name]'");


To zapytanie nadal jest niepoprawne. Komentarz masz o dodawaniu rekordu do bazy. Co byś chciał tutaj zrobić?

Kod
mysql_query("UPDATE player WHERE name player='$name', email='$name]' ")


Tu nadal jest błąd (z tego co rozumiem nie masz kolumny player w tabeli player, poza tym przy update musi być też SET)

Nie powiem Ci co dokładnie masz napisać, bo nie wiem co chcesz zrobić.

Proponuję jednak najpierw zacząć od jakiegoś tutoriala MySQL i zaznajomić się z najbardziej podstawowymi zapytaniami (SELECT, INSERT, UPDATE, DELETE).
Go to the top of the page
+Quote Post
bartus12342
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.04.2011

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


Chcę poprzez stronę zmieniać np swój nick w mysql. Patrzyłem na wiele wątków ale dalej coś mi idzie nie tak ;/.

ref
Go to the top of the page
+Quote Post
barcisz
post
Post #6





Grupa: Zarejestrowani
Postów: 41
Pomógł: 12
Dołączył: 8.04.2011

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


Kod
UPDATE player SET login = 'nowy_login' WHERE login LIKE 'stary_login'


I ponawiam sugestię, żebyś poczytał jakiegoś tutoriala na temat SQL, bo z tego, co próbowałeś napisać wynika, że nie masz o tym zielonego pojęcia.
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 - 22:17