Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana rekordu danej tabeli w mysql
Forum PHP.pl > Forum > Bazy danych > MySQL
bartus12342
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.  
barcisz
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.
bartus12342
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.  
barcisz
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).
bartus12342
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
barcisz
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.
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-2024 Invision Power Services, Inc.