Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Problem z dodawaniem rekordów z rozwijanej listy, problem
dawids2411
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


WItam na początek pokaże skrypty z formularza:

  1. <?php
  2.  
  3. $connection = @mysql_connect('localhost', 'db5', 'alamakota')
  4. or die('Brak połączenia z serwerem MySQL');
  5. $db = @mysql_select_db('db592591', $connection)
  6. or die('Brak połączenia z serwerem MySQL');
  7.  
  8. $kat = mysql_query (" Select `ID`, `kategoria` From `kategorie` ORDER BY `kategoria` ASC ");
  9.  
  10. while ( $rkat = mysql_fetch_array ( $kat, MYSQL_ASSOC )) {
  11.  
  12.  
  13. $w_kat .= '<option value = "'.$rkat['ID'].'">'.$rkat['kategoria'].'</option>'."\n";
  14.  
  15. $w_id .= $rkat['kategoria'];
  16.  
  17. }
  18. echo '<form action="dodajsql.php" method="post">';
  19. echo'Wybierz Kategorie';
  20. echo "<select>";
  21. echo '<option>--- wybierz z listy ---</option>';
  22. echo $w_kat;
  23. echo '</select><br />';
  24. echo '<tr> <td>Nazwa</td> <td>
  25. <input type="text" name="nazwa" /><br />';
  26. echo '<tr> <td>Cena Zakupu</td> <td>
  27. <input type="text" name="cena_zakupu" /><br />
  28. </td><br><br></tr>';
  29. echo '<tr><td><input type=submit name="wyslij" value="Wyślij"/></td></tr>';
  30. ?>
  31.  


Formularz ten działa prawidłowo w liście rozwijanej w tym formularzu pokazuje mi wszystkie nazwy kategori z wszystkich rekordów z tabeli kategorie
ALE problem zaczyna się po próbie wysłania do bazy danych kot realizujący zapytanie do bazy z formularza wygląda tak:

  1. $kat = $_POST['"'.$w_kat.'"'];
  2. $nazwa = $_POST['nazwa'];
  3. $cena_zakupu = $_POST['cena_zakupu'];
  4. if($nazwa AND $cena_zakupu AND $kat ) {
  5.  
  6.  
  7. $connection = @mysql_connect('localhost', 'db5', 'alamakota')
  8. or die('Brak połączenia z serwerem MySQL');
  9. $db = @mysql_select_db('db592591', $connection)
  10. or die('Brak połączenia z serwerem MySQL');
  11.  
  12. $ins = mysql_query ('INSERT INTO zakup(id, nazwa, cena_zakupu, id_kategorie) VALUES("", "'.$nazwa.'", "'.$cena_zakupu.'", "'.$kat.'") ');
  13. if($ins) echo "Rekord zostal dodany poprawnie";
  14. else echo"Błąd nie udało dodac się nowego rekordu";
  15. mysql_close($connection);
  16.  
  17. }


Po wykonaniu tego nie ma żadnego błędu jednak rekord nie zostaje dodany inne formularze oparte na tym samym kodzie dzialają tylko formularz wygląda tak ze są same text area i nie próbuje dodac relacji między innymi tabelami tylko poprostu dodac rekordy

help

Ten post edytował dawids2411 14.07.2012, 12:00:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
Dominator
post
Post #2





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


12.

  1. $ins = mysql_query (' INSERT INTO zakup(nazwa, cena_zakupu, id_kategorie) VALUES ("'.$nazwa.'", "'.$cena_zakupu.'", "'.$kat.'") ');


Bynajmniej ja gdy mam kolumnę id to nie insertuję za pomocą skryptu następnego id tylko baza MySQL automatycznie mi tworzy.

Ten post edytował Dominator 14.07.2012, 12:03:44
Go to the top of the page
+Quote Post
dawids2411
post
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


To nic nie dalo mam w
  1. $ins = mysql_query (' INSERT INTO zakup(id, nazwa, cena_zakupu, id_kategorie) VALUES ("", '.$nazwa.'", "'.$cena_zakupu.'", "'.$kat.'") ');

id = "" poniewaz jest to auto increment i automatycznie dodaje ale nie robi to różnicy w wykonywanym zapytaniu i tak jest biala strona nic nie pisze a rekordu nie dodalo moze zle zmienne przypisalem w

  1. $kat = $_POST['"'.$w_kat.'"'];


heh jestem zeielony w tym wiec nie mam pojęcia gdzie jest blad
Go to the top of the page
+Quote Post
Dominator
post
Post #4





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


Każdy <option> musi mieć przypisane name. Jakoś tutaj tego nie widzę.

Bynajmniej ja w swoim CMS'ie przy <option> mam wszędzie name

Np: <option name="kategoria">Schabowe</option>
Go to the top of the page
+Quote Post
dawids2411
post
Post #5





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


  1. <?php
  2.  
  3. $connection = @mysql_connect('localhost', 'db5', 'alamakota')
  4. or die('Brak połączenia z serwerem MySQL');
  5. $db = @mysql_select_db('db592591', $connection)
  6. or die('Brak połączenia z serwerem MySQL');
  7.  
  8. $kat = mysql_query (" Select `ID`, `kategoria` From `kategorie` ORDER BY `kategoria` ASC ");
  9.  
  10. while ( $rkat = mysql_fetch_array ( $kat, MYSQL_ASSOC )) {
  11.  
  12.  
  13. $w_kat .= '<option value = "'.$rkat['ID'].'">'.$rkat['kategoria'].'</option>'."\n";
  14.  
  15. $w_id .= $rkat['kategoria'];
  16.  
  17. }
  18. echo '<form action="dodajsql.php" method="post">';
  19. echo'Wybierz Kategorie';
  20. echo "<select>";
  21. echo '<option name="kategoria1">--- wybierz z listy ---</option>';
  22. echo $w_kat;
  23. echo '</select><br />';
  24. echo '<tr> <td>Nazwa</td> <td>
  25. <input type="text" name="nazwa" /><br />';
  26. echo '<tr> <td>Cena Zakupu</td> <td>
  27. <input type="text" name="cena_zakupu" /><br />
  28. </td><br><br></tr>';
  29. echo '<tr><td><input type=submit name="wyslij" value="Wyślij"/></td></tr>';
  30. ?>


  1. $kat = $_POST['kategoria1'];
  2. $nazwa = $_POST['nazwa'];
  3. $cena_zakupu = $_POST['cena_zakupu'];
  4. if($nazwa AND $cena_zakupu AND $kat ) {
  5.  
  6.  
  7. $connection = @mysql_connect('localhost', 'db5', 'alamakota')
  8. or die('Brak połączenia z serwerem MySQL');
  9. $db = @mysql_select_db('db592591', $connection)
  10. or die('Brak połączenia z serwerem MySQL');
  11.  
  12. $ins = mysql_query ('INSERT INTO zakup(id, nazwa, cena_zakupu, id_kategorie) VALUES("", "'.$nazwa.'", "'.$cena_zakupu.'", "'.$kat.'") ');
  13. if($ins) echo "Rekord zostal dodany poprawnie";
  14. else echo"Błąd nie udało dodac się nowego rekordu";
  15. mysql_close($connection);
  16.  
  17. }


Tez nic nie dalo sad.gif
Go to the top of the page
+Quote Post
Damonsson
post
Post #6





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


  1. $kat = $_POST['"'.$w_kat.'"'];
  2.  
  3. $nazwa = $_POST['nazwa'];
  4.  
  5. $cena_zakupu = $_POST['cena_zakupu'];
  6.  
  7. if($nazwa AND $cena_zakupu AND $kat ) {
  8.  
  9.  
  10.  
  11.  
  12.  
  13. $connection = @mysql_connect('localhost', 'db5', 'alamakota')
  14.  
  15. or die('Brak połączenia z serwerem MySQL');
  16.  
  17. $db = @mysql_select_db('db592591', $connection)
  18.  
  19. or die('Brak połączenia z serwerem MySQL');
  20.  
  21.  
  22.  
  23. $ins = mysql_query ('INSERT INTO zakup(id, nazwa, cena_zakupu, id_kategorie) VALUES("", "'.$nazwa.'", "'.$cena_zakupu.'", "'.$kat.'") ');
  24.  
  25. if($ins) echo "Rekord zostal dodany poprawnie";
  26.  
  27. else echo"Błąd nie udało dodac się nowego rekordu";
  28.  
  29. mysql_close($connection);
  30.  
  31.  
  32.  
  33. } else {
  34.  
  35. echo "Błąd";
  36.  
  37. }


zamień na taki wink.gif
i powiedz co teraz Ci się wyświetla

Ten post edytował Damonsson 14.07.2012, 12:17:42
Go to the top of the page
+Quote Post
Dominator
post
Post #7





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


  1. echo '<option name="kategoria1">--- wybierz z listy ---</option>';


Według tego kodu kategoria1 jest przypisana do --- wybierz z listy ---. Twoim zadaniem jest przypisać name do każdego $w_kat.
Go to the top of the page
+Quote Post
dawids2411
post
Post #8





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


wyświetla się "Błąd"

To jak mam to sformulowac
  1. echo "<select>";
  2. echo '<option>--- wybierz z listy ---</option>';
  3. echo $w_kat;
  4. echo '</select><br />';


Ten post edytował dawids2411 14.07.2012, 12:25:17
Go to the top of the page
+Quote Post
Damonsson
post
Post #9





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Więc już chyba wiesz, gdzie tkwi błąd smile.gif
Go to the top of the page
+Quote Post
dawids2411
post
Post #10





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


ehh no wlasnie nie wiem haha.gif
Go to the top of the page
+Quote Post
Damonsson
post
Post #11





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


  1.  
  2. $kat = $_POST['"'.$w_kat.'"'];
  3. var_dump($kat);
  4.  
  5.  
  6. $nazwa = $_POST['nazwa'];
  7. var_dump($nazwa);
  8.  
  9.  
  10. $cena_zakupu = $_POST['cena_zakupu'];
  11. var_dump($cena_zakupu);
  12.  
  13.  
  14. if($nazwa AND $cena_zakupu AND $kat ) {
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26. $connection = @mysql_connect('localhost', 'db5', 'alamakota')
  27.  
  28.  
  29.  
  30. or die('Brak połączenia z serwerem MySQL');
  31.  
  32.  
  33.  
  34. $db = @mysql_select_db('db592591', $connection)
  35.  
  36.  
  37.  
  38. or die('Brak połączenia z serwerem MySQL');
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46. $ins = mysql_query ('INSERT INTO zakup(id, nazwa, cena_zakupu, id_kategorie) VALUES("", "'.$nazwa.'", "'.$cena_zakupu.'", "'.$kat.'") ');
  47.  
  48.  
  49.  
  50. if($ins) echo "Rekord zostal dodany poprawnie";
  51.  
  52.  
  53.  
  54. else echo"Błąd nie udało dodac się nowego rekordu";
  55.  
  56.  
  57.  
  58. mysql_close($connection);
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66. } else {
  67.  
  68.  
  69.  
  70. echo "Błąd";
  71.  
  72.  
  73.  
  74. }


No to bawimy się dalej wink.gif Zamień na to ^
Go to the top of the page
+Quote Post
Dominator
post
Post #12





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


Spójrz kolego.

  1. $kat = $_POST['"'.$w_kat.'"'];
  2. $nazwa = $_POST['nazwa'];
  3. $cena_zakupu = $_POST['cena_zakupu'];
  4. if($nazwa AND $cena_zakupu AND $kat )
  5. {
  6. echo "Działa"
  7. } else {
  8. echo "Błąd";
  9. }


Jeśli te 3 zmienne ( $kat, $nazwa i $cena_zakupu ) się spełnią to wyświetli się informacja, że działa. Tobie natomiast wyświetla się błąd - czyli warunki się nie spełniły.

Ten post edytował Dominator 14.07.2012, 12:32:31
Go to the top of the page
+Quote Post
dawids2411
post
Post #13





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


Taki błąd

NULL string(6) "router" string(2) "20" Błąd
rzeczywiscie się nie spełniają.. Kurde chyba za wysokie progi na moje nogi ;/
Dopiero zaczynam przygode więc jestem zielony .

TO jak to powinno wyglądac? i caly formularz i zapytanie. Jesli mi to zadziala to sobie przestudiuje ten skrypt

edit: usunalem zmienną $kat i zapytanie z nią i skrypt działa
  1. <?php
  2. /* $kat = $_POST['"'.$w_kat.'"'];
  3. var_dump($kat); */
  4.  
  5.  
  6. $nazwa = $_POST['nazwa'];
  7. var_dump($nazwa);
  8.  
  9.  
  10. $cena_zakupu = $_POST['cena_zakupu'];
  11. var_dump($cena_zakupu);
  12.  
  13.  
  14. if($nazwa AND $cena_zakupu) {
  15.  
  16.  
  17.  
  18.  
  19.  
  20. $connection = @mysql_connect('localhost', 'db5', 'alamakota')
  21.  
  22.  
  23.  
  24. or die('Brak połączenia z serwerem MySQL');
  25. $db = @mysql_select_db('db592591', $connection)
  26. or die('Brak połączenia z serwerem MySQL');
  27. $ins = mysql_query ('INSERT INTO zakup(id, nazwa, cena_zakupu, id_kategorie) VALUES("", "'.$nazwa.'", "'.$cena_zakupu.'", "") ');
  28. if($ins) echo "Rekord zostal dodany poprawnie";
  29. else echo"Błąd nie udało dodac się nowego rekordu";
  30. mysql_close($connection);
  31.  
  32. } else {
  33.  
  34.  
  35.  
  36. echo "Błąd";
  37.  
  38.  
  39.  
  40. }
  41. ?>

JEDNAK CHCIAŁBYM ABY Z ROZWIJANEJ LISTY JEZELI WYBIORĘ KATEGORIE TO ID TEJ KATEGORI ZAPISYWALO SIE W ZAKUPACH W KOLUMNIE ID_KATEGORIA JAK TEGO DOKONAC questionmark.gif

Ten post edytował dawids2411 14.07.2012, 12:54:07
Go to the top of the page
+Quote Post
Dominator
post
Post #14





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

Ostrzeżenie: (20%)
X----


Nie ma </form>

Najlepiej napisz od nowa i przestudiuj dokładnie każdą linijkę kodu.

Zastosuj się do tego, co pisałem wcześniej.

Ten post edytował Dominator 14.07.2012, 12:59:52
Go to the top of the page
+Quote Post
dawids2411
post
Post #15





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 18.05.2011

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


Probowalem pisac ale mi nie wychodzilo jedynie co mi wyszlo to to
jak probowalem pisac to nawet mi sie rozwijana lista z kategoriami nie wyswietlala
ehh
udalo sie POPRAWIC I DZIALA WSZYSTKO OK DZIEKI FOR ALL

Ten post edytował dawids2411 14.07.2012, 13:47:39
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 Aktualny czas: 21.08.2025 - 12:36