Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Problem z dodaniem nowego rekordu
Turech
post 3.12.2014, 23:27:34
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 3.12.2014

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


Witam.
Jestem trochę zielony w php, aczkolwiek jakieś tam podstawy znam. Jednakże podczas pisania strony projektu na zaliczenie napotkałem się na pewien bardzo uciążliwy błąd, mianowicie skrypt, który napisałem (prawdopodobnie jest źle zrobiony) nie dodaje rekordów do mysql, a takie ma zadanie. Ogólnie cała koncepcja polega na tym, że mam parę tabel i za pomocą <select> wybieram tabele, do której ma być dodany nowy rekord (dynamiczne divy + formularze). Serwer nie pokazuje żadnych błędów (prócz "undefind index"). Proszę o pomoc, bo ja już nie mam siły :<
  1. <div>
  2. <form action="" method="post">
  3. <select name="kategorie" action="value">
  4. <option value="">Wybierz kategorie</option>
  5. <option value="karty_graficzne">Karty graficzne</option>
  6. <option value="nosniki_danych">Nośniki danych</option>
  7. <option value="procesory">Procesory</option>
  8. <option value="pamiec_ram">Pamięć RAM</option>
  9. <option value="plyty_glowne">Płyty główne</option>
  10. <option value="laptopy">Laptopy</option>
  11. </select>
  12. <input type="submit" name="akcept" value="Akceptuj">
  13. </form>
  14. </div>
  15. <div id="new">
  16. <?php
  17. $serwer = 'localhost';
  18. $login = '******';
  19. $haslo = '******';
  20. $baza = '******';
  21. $kategorie=$_POST['kategorie'];
  22. if(isset($kategorie))
  23. {
  24. if (@mysql_connect($serwer, $login, $haslo) && @mysql_select_db($baza))
  25. {
  26. $zawartosc = @mysql_query("SELECT * FROM $kategorie") or die("Błąd w zapytaniu!");
  27. switch($kategorie)
  28. {
  29. case "karty_graficzne":
  30. echo "<form action=\"\" method=\"post\">
  31. <label for=\"kg1\">Układ graficzny</label><input type=\"text\" value=\"\" name=\"kg1\"><br />
  32. <label for=\"kg2\">Nazwa</label><input type=\"text\" value=\"\" name=\"kg2\"><br />
  33. <label for=\"kg3\">Producent</label><input type=\"text\" value=\"\" name=\"kg3\"><br />
  34. <label for=\"kg4\">Rodzaj pamięci</label><input type=\"text\" value=\"\" name=\"kg4\"><br />
  35. <label for=\"kg5\">Pamięć</label><input type=\"text\" value=\"\" name=\"kg5\"><br />
  36. <label for=\"kg6\">Taktowanie pamięci</label><input type=\"text\" value=\"\" name=\"kg6\"><br />
  37. <label for=\"kg7\">Szyna pamięci</label><input type=\"text\" value=\"\" name=\"kg7\"><br />
  38. <label for=\"kg8\">Taktowanie rdzenia</label><input type=\"text\" value=\"\" name=\"kg8\"><br />
  39. <label for=\"kg9\">Cena</label><input type=\"text\" value=\"\" name=\"kg9\"><br />
  40. <input type=\"submit\" value=\"Wyślij\" name=\"dodaj\">
  41. </form>";
  42. $kg1=$_POST["kg1"]; $kg2=$_POST["kg2"]; $kg3=$_POST["kg3"]; $kg4=$_POST["kg4"]; $kg5=$_POST["kg5"];
  43. $kg6=$_POST["kg6"]; $kg7=$_POST["kg7"]; $kg8=$_POST["kg8"]; $kg9=$_POST["kg9"];
  44. if(isset($_POST["dodaj"]))
  45. {
  46. $dodaj = @mysql_query("INSERT INTO karty_graficzne (`ID`, `uklad_graficzny`, `nazwa`
  47. ,`producent` ,`rodzaj_pamieci` ,`pamiec` ,`taktowanie_pamieci` ,`szyna_pamieci`,`taktowanie_rdzenia`,`cena`)
  48. VALUES ('','$kg1','$kg2','$kg3','$kg4','$kg5','$kg6','$kg7','$kg8','$kg9')");
  49. }
  50. break;
  51. }
  52. }
  53. }
  54. ?>

PS. Proszę nie krytykować za bardzo za jakieś nie estetyczne formy, czy coś tego rodzaju, nie jest to środowisko, w którym się na co dzień poruszam. Z góry dziękuję za każda pomoc wink.gif
Go to the top of the page
+Quote Post
Rysh
post 3.12.2014, 23:32:35
Post #2





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Nie:
  1. $dodaj = @mysql_query("INSERT INTO karty_graficzne (`ID`, `uklad_graficzny`, `nazwa` ,`producent` ,`rodzaj_pamieci` ,`pamiec` ,`taktowanie_pamieci` ,`szyna_pamieci`,`taktowanie_rdzenia`,`cena`) VALUES ('','$kg1','$kg2','$kg3','$kg4','$kg5','$kg6','$kg7','$kg8','$kg9')");

Tylko:
  1. $dodaj = mysql_query("INSERT INTO karty_graficzne (`ID`, `uklad_graficzny`, `nazwa` ,`producent` ,`rodzaj_pamieci` ,`pamiec` ,`taktowanie_pamieci` ,`szyna_pamieci`,`taktowanie_rdzenia`,`cena`) VALUES ('','$kg1','$kg2','$kg3','$kg4','$kg5','$kg6','$kg7','$kg8','$kg9')") or die(mysql_error());



--------------------
Go to the top of the page
+Quote Post
Turech
post 3.12.2014, 23:58:21
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 3.12.2014

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


Wprowadziłem to już.
Hmm, bez <select> i switch działa bez problemu, schody się zaczynają jak dodam te funkcje. Chyba rzuciłem się na zbyt głęboką wodę :<

Ten post edytował Turech 3.12.2014, 23:58:49
Go to the top of the page
+Quote Post
Turson
post 4.12.2014, 08:37:20
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. $kategorie=$_POST['kategorie'];
  2. if(isset($kategorie))

Warunek zawsze będzie spełniony bo definiujesz $kategorie. Powinieneń mieć warunek if(isset($_POST['kategorie']))

$_POST["kg1"] - skąd to bierzesz? Znikąd się to bierze.

Usuń wszystkie @ jakie masz
Go to the top of the page
+Quote Post
Turech
post 4.12.2014, 19:30:06
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 3.12.2014

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


Okej, wszystkie @ usunięte, warning $kategorie już nie występuje (trywialny błąd). Domyślałem się właśnie, że skrypt nie czyta żadnych zmiennych z formularza, tylko nie mam pomysłu jak zrobić, żeby to działało.

Wprowadziłem lekkie poprawki:

  1. nowy.php
  2. <?php
  3. if(isset($_POST['kategorie']))
  4. {
  5. $kategorie=$_POST['kategorie'];
  6. switch($kategorie)
  7. {
  8. case "karty_graficzne":
  9. ?>
  10. <form action="nowyfunkcja.php" method="post">
  11. <label for="kg1">Układ graficzny</label><input type="text" value="" name="kg1"><br />
  12. <label for="kg2">Nazwa</label><input type="text" value="" name="kg2"><br />
  13. <label for="kg3">Producent</label><input type="text" value="" name="kg3"><br />
  14. <label for="kg4">Rodzaj pamięci</label><input type="text" value="" name="kg4"><br />
  15. <label for="kg5">Pamięć</label><input type="text" value="" name="kg5"><br />
  16. <label for="kg6">Taktowanie pamięci</label><input type="text" value="" name="kg6"><br />
  17. <label for="kg7">Szyna pamięci</label><input type="text" value="" name="kg7"><br />
  18. <label for="kg8">Taktowanie rdzenia</label><input type="text" value="" name="kg8"><br />
  19. <label for="kg9">Cena</label><input type="text" value="" name="kg9"><br />
  20. <input type="submit" value="Wyslij_1" name="dodaj"><br />
  21. </form>
  22. <?php ... dalsze opjce


  1. nowyfunkcja.php
  2. <?php
  3. $switch=$_POST['dodaj'];
  4. include('config.php');
  5. switch($switch)
  6. {
  7. case 'Wyslij_1':
  8. if(!empty($_POST['kg1']) && !empty($_POST['kg2']) && !empty($_POST['kg3']) && !empty($_POST['kg4']) && !empty($_POST['kg5']) && !empty($_POST['kg6']) && !empty($_POST['kg7']) && !empty($_POST['kg8']) && !empty($_POST['kg9']))
  9. {
  10. $kg1=$_POST['kg1']; $kg2=$_POST['kg2']; $kg3=$_POST['kg3']; $kg4=$_POST['kg4']; $kg5=$_POST['kg5']; $kg6=$_POST['kg6']; $kg7=$_POST['kg7']; $kg8=$_POST['kg8']; $kg9=$_POST['kg9'];
  11. $dodaj = mysql_query("INSERT INTO karty_graficzne (`id`, `uklad_graficzny`, `nazwa`,`producent`,`rodzaj_pamieci`,`pamiec`,`taktowanie_pamieci`,`szyna_pamiec
    i`,`taktowanie_rdzenia`,`cena`) VALUES ('','$kg1','$kg2','$kg3','$kg4','$kg5','$kg6','$kg7','$kg8','$kg9')"
    ) or die(mysql_error());
  12. echo '<meta http-equiv="refresh" content="1; URL=nowy.php">';
  13. }
  14. else
  15. echo "Error";
  16. break;
  17. }
  18. }
  19. ?>


Skrypt działa w pełni, jednakże wykonanie jego jest tragiczne. Jak ktoś ma pomysł jak jakoś estetyczniej to rozwiązać to może śmiało pisać biggrin.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 3.07.2025 - 10:21