Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PROBLEM] Dodanie kolejnych danych do bazy danych
Forum PHP.pl > Forum > Bazy danych > MySQL
xenvera
Witam,

Mam nastepujący problem.
Chciałbym dodac jako zalogowany użytkownik nowy rekord do bazy danych, lecz coś mi nie idzie.

Kod:
  1. <?php
  2. session_start(); //rozpoczyna sesję...
  3. require_once('config.php');
  4.  
  5. if (!$_SESSION['login'] || !$_SESSION['password']) { //sprawdza czy zmienne sesyjne login lub password nie są puste
  6. echo 'Nie jestes zalogowany cwaniaczku :) Wroc do <a href="index.php">strony glownej</a>';
  7. } else { //w innym wypadku...
  8. echo 'Jestes zalogowany!<br> Mozesz sie <a href="wyloguj.php">wylogowac</a>';
  9. echo '
  10. <form action="zalogowany.php" method="post">
  11. <table>
  12. <tr>
  13. <td>Nazwa gracza:</td>
  14. <td>
  15. <input type="text" name="nazwa" value="">
  16. </td>
  17. <td>
  18. <input type="submit" name="submit" class="button" value="Zaloz postac!"/>
  19. </td>
  20. </tr>
  21.  
  22. </table>
  23. </form>';
  24.  
  25. if (isset($_POST['submit']))
  26. {
  27. if(!$_POST['nazwa'])
  28. {
  29. echo 'Nie wpisanio nazwy postaci!';
  30. }
  31. else {
  32. $nazwa = $_POST['nazwa'];
  33. $zapytanie123 = "INSERT INTO 'players' ('name') VALUES ('$nazwa')";
  34. mysql_query($zapytanie123) or die ("Wystapil blad");
  35. echo "Postac zostala zalozona pomyslnie!";
  36. }
  37. }
  38. }
  39.  
  40.  
  41. ?>


Chciałbym dodać ze jestem początkującym, i masa błędów w kodzie jest możliwa smile.gif

Pozdrawiam!
Turson
Nazwy kolumn bierze się w `a nie '
xenvera
Próbowałem też w ten sposób, ale nadal nie działa.
johnny_b
Cześć Xanvera.

z:
$zapytanie123 = "INSERT INTO 'players' ('name') VALUES ('$nazwa')";

do:
$zapytanie123 = "INSERT INTO players(name) VALUES ('$nazwa')";

Wiele zależy od komunikatu błędu. Np. Nie wiem jak w MySQL, ale w Postgresie jeżeli dodajesz tabele w '', to obowiązuje Case Sensitivity - a w Twoim skrypcie nazwy podajesz w ''. Example ofkorse smile.gif

Pzdr johnny_b
xenvera
Witaj Johnny_b,

Na początku mała poprawka, jestem XENVERA nie XANVERA.
Nawiązując do tematu, działa. Dzięki za pomoc smile.gif!

Pozdrawiam, temat do zamknięcia!
johnny_b
Oops smile.gif, przepraszam Xenvera.

No problem! smile.gif)
xenvera
Mam jeszcze jedno pytanie.
Jeżeli jestem zalogowany na użytkownika np. 1 i dodaje nim dodatkowe informacje do bazy danych, to jak zrobić aby one TYLKO należały do jego ID ?
Aby kazdy uzytkownik posiadał oddzielne (coś jak konto bankowe)
Czyli np. przy zliczeniu rekordów jednemu użytkownikowi nie wyskakiwała suma wszystkich znajdujących się w bazie.

Pozdrawiam
markonix
Dodaj kolumnę INT user_id i przy INSERT do zapytania dodaj odpowiednią wartość.
Chyba że użytkownicy nie mają ID to wtedy po nicku ($_SESSION['login'] ).

btw. po co hasło w sesji?
xenvera
Nie za bardzo rozumiem. Muszę dodać jeszcze jedną kolumnę w bazie danych: INT user_id ?
Przy INSERT jaką wartość mam podać?

Co do hasła, nie wiem. Jak już mówiłem dopiero zacząłem się brać za php i mysql.

Pozdrawiam

F5, odpowie ktoś ?
Damonsson
  1. SELECT / UPDATE reszta zapytania i później WHERE id(id lub jak tam masz nazwaną kolumnę z id usera) = 1


np.:

  1. SELECT name FROM players WHERE id = 1
xenvera
@ up dziękuje za odpowiedź.

Próbuję gdzieś wsadzić ten where id~, ale nie za bardzo to chce działać.
KOD:

  1. <?php
  2. require_once('config.php');
  3.  
  4. if (!$_SESSION['login']) {
  5. echo 'Nie jestes zalogowany! Wroc do <a href="index.php">strony glownej</a>';
  6. } else {
  7. echo 'Jestes zalogowany!<br> Mozesz sie <a href="wyloguj.php">wylogowac</a><br>';
  8. // ilosc postaci na koncie
  9. $ilosc = mysql_query("SELECT * FROM players");
  10. $ilosc_wierszy = mysql_num_rows($ilosc);
  11. if ($ilosc_wierszy > 0)
  12. echo "<center>Posiadasz juz: <b>".$ilosc_wierszy."</b> postacie";
  13. else
  14. echo "Nie posiadasz jeszcze postaci";
  15. //koniec ilosc postaci
  16.  
  17. //postacie na koncie
  18. $q = "SELECT * FROM `players`";
  19. $result = mysql_query($q);
  20.  
  21. echo "<p>";
  22. echo "<table width=300 border=\"1\"><tr>";
  23. echo "<td bgcolor=\"ffff00\">ID</td>";
  24. echo "<td bgcolor=\"ffff00\">Nazwa postaci</td>";
  25. echo "</tr>";
  26.  
  27. while ($row = mysql_fetch_row($result) ) {
  28. echo "</tr>";
  29. echo "<td bgcolor=\"ffff00\">".$row[0]." ";
  30. echo "<td bgcolor=\"ffff99\">".$row[1]." ";
  31. }
  32.  
  33. echo "</table>";
  34.  
  35. //koniec ilosc postaci na koncie
  36. //zakladanie postaci
  37. echo '
  38. <form action="create.php" method="post">
  39. <table>
  40. <tr>
  41. <td>Nazwa gracza:</td>
  42. <td>
  43. <input type="text" name="nazwa" value="">
  44. </td>
  45. <td>
  46. <input type="submit" name="submit" class="button" value="Zaloz postac!"/>
  47. </td>
  48. </tr>
  49.  
  50. </table>
  51. </form>';
  52. if (isset($_POST['submit']))
  53. {
  54. if(!$_POST['nazwa'])
  55. {
  56. echo 'Nie wpisanio nazwy postaci!';
  57. }
  58. else {
  59. $nazwa = $_POST['nazwa'];
  60. $zapytanie123 = "INSERT INTO `players` (`name`) VALUES ('$nazwa') ";
  61. mysql_query($zapytanie123) or die (mysql_error());
  62. echo "Postac zostala zalozona pomyslnie!</center>";
  63.  
  64. }
  65. }
  66. }
  67.  
  68.  
  69. ?>


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.