Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie rekordu do wybranej bazy danych
Forum PHP.pl > Forum > PHP
salva
zaczne od tego ze zrobilem dodawanie do bazy danych, jednak nie umie zrobic z dodawaniem do wybranej z paska rozwijalnego

  1. <?php
  2.  
  3. echo "Dodawanie rekordow do bazy";
  4.  
  5.  
  6.  
  7. if (isset($_POST['baza'])){
  8.  
  9.  
  10. $model = $_POST['model'];
  11. $silnik = $_POST['silnik'];
  12. $rocznik = $_POST['rocznik'];
  13. if($model and $silnik and $rocznik ) {
  14.  
  15. // łączymy się z bazą danych
  16. $connection = @mysql_connect('localhost', 'root', '')
  17. or die('Brak połączenia z serwerem MySQL');
  18. $db = @mysql_select_db('somochody', $connection)
  19. or die('Nie mogę połączyć się z bazą danych');
  20.  
  21.  
  22. $add = $pdo -> exec("INSERT INTO somochody(audi, seat) VALUES('$model','$silnik','$rocznik')");
  23.  
  24.  
  25. if ($add) { echo '<p>dodano samochod</p>';
  26. } else { echo '<p>nie dodano samochodu</p>'
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34. ?>
  35.  
  36. <form action="dodwyb.php" method="post">
  37. <select name="baza" action="value">
  38. <option value="">Wybierz kategorie</option>
  39. <option value="audi">audi</option>
  40. <option value="seat">seat</option>
  41. </select><br />
  42. model:<br />
  43. <input type="text" name="model" /><br />
  44. silnik:<br />
  45. <input type="int" name="silnik" /><br />
  46. roczink:<br />
  47. <input type="int" name="rocznik" /><br />
  48. <input type="submit" value="dodaj" />
  49. </form>
  50.  


Mam utworzona baze danych o nazwie "somochody" a w niej dwie tabele "audi", "seat". Pewnie mam to źle zrobione. Chciałbym abym z paska rozwijalnego wybrac tabele do ktorej chce dodac rekord. Lecz nie wiem jak to zapisac dokladnie. Po za tym w tym kodzie wywala mi blad w ostatniej linijce przy "</form>", tez nie wiem dlaczego. Bardzo prosze o jakas pomoc
trueblue
Bazę masz jedną. Lista wyboru powinna się nazywać raczej "tabela".
<select name="tabela">
Select nie ma atrybutu "action".

  1. if (isset($_POST['tabela'])){
  2. .
  3. .
  4. .
  5.  
  6. "INSERT INTO ".$_POST['tabela']." VALUES('$model','$silnik','$rocznik')"


Mieszasz tam funkcje mysql_ z metodami biblioteki PDO. Nawet jak zbudujesz poprawnie zapytanie, to i tak nie wstawi rekordu do tabeli.

----

A co najważniejsze, nie powinieneś mieć osobnych tabel dla marek.
Powinna to być jedna tabela z dodatkową kolumną "marka", a jeszcze lepiej gdyby były dwie tabele "marka" i "auto", gdzie w "auto" jest klucz obcy "id_marka" powiązany z kluczem głównym w tabeli "marka".
salva
  1. <?php
  2.  
  3. echo "Dodawanie rekordow do bazy";
  4.  
  5.  
  6.  
  7. if (isset($_POST['tabela'])){
  8.  
  9.  
  10. $model = $_POST['model'];
  11. $silnik = $_POST['silnik'];
  12. $rocznik = $_POST['rocznik'];
  13. if($model and $silnik and $rocznik ) {
  14.  
  15. // łączymy się z bazą danych
  16. $connection = @mysql_connect('localhost', 'root', '')
  17. or die('Brak połączenia z serwerem MySQL');
  18. $db = @mysql_select_db('somochody', $connection)
  19. or die('Nie mogę połączyć się z bazą danych');
  20.  
  21.  
  22. "INSERT INTO" $_POST['tabela'] VALUES"('$model','$silnik','$rocznik')";
  23.  
  24.  
  25. if ($add) { echo '<p>dodano samochod</p>';
  26. } else { echo '<p>nie dodano samochodu</p>'
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34. ?>
  35.  
  36. <form action="dodwyb.php" method="post">
  37. <select name="tabela" >
  38. <option value="">Wybierz kategorie</option>
  39. <option value="audi">audi</option>
  40. <option value="seat">seat</option>
  41. </select><br />
  42. model:<br />
  43. <input type="text" name="model" /><br />
  44. silnik:<br />
  45. <input type="int" name="silnik" /><br />
  46. roczink:<br />
  47. <input type="int" name="rocznik" /><br />
  48. <input type="submit" value="dodaj" />
  49. </form>
  50.  


poprawilem na takie, ale wywala mi blad w linijce z " INSERT"

Parse error: syntax error, unexpected T_VARIABLE in C:\WebServ\httpd\dodwyb.php on line 22
salva
  1. $result = mysql_query("INSERT INTO" $_POST['tabela'] " VALUES ('$model','$silnik','$rocznik')";)
  2. or die("Zapytanie niepoprawne");
  3.  


napisalem cos takiego, slabo mi to idzie, a potrzebuje miec zrobione na jutro, wiec prosze o cierpliwosc i kolejne wskazowki

wywala:
Parse error: syntax error, unexpected T_VARIABLE in C:\WebServ\httpd\dodwyb.php on line 23
ctom
popatrz jak @trueblue połączył "stringi" w zapytaniu a jak Ty
ctom
Cytat(salva @ 8.01.2015, 21:48:44 ) *
poprawilem kropki i nie widze roznicy

to może analizuj znak po znaku

po drugie czytaj błędy i sprawdź czy wszystkie zmienne przekazujesz do tego zapytania - pomoże Ci var_dump()

salva
  1. $add = $result
  2. $result = mysql_query("INSERT INTO" .$_POST['tabela']. " VALUES('$model','$silnik','$rocznik')";)
  3. or die("Zapytanie niepoprawne");
  4.  
  5. if ($add) { echo '<p>dodano samochod</p>';
  6. } else { echo '<p>nie dodano samochodu</p>'


no nie moge tero rozgryzc
com
$add = $result questionmark.gif



  1. $result = mysql_query("INSERT INTO {$_POST['tabela']} VALUES('$model','$silnik','$rocznik')");


if ($add)
zawsze zwróci true ;]
salva
poprawilem na:

  1. $result = mysql_query("INSERT INTO" .$_POST['tabela']. " VALUES('$model','$silnik','$rocznik')")
  2. or die("Zapytanie niepoprawne");
  3.  
  4. if ($add) { echo '<p>dodano samochod</p>';
  5. } else { echo '<p>nie dodano samochodu</p>'


teraz mi znów wywala bład w 49 linijce przy
  1. </form>


Parse error: syntax error, unexpected $end in C:\WebServ\httpd\dodwyb.php on line 49
com
a widzisz różnice miedzy moim kodem a twoim? i nie ma tam napewno </form> bo php nie parsuje htmla

bo nie zamykasz else
salva
  1. <?php
  2.  
  3. echo "Dodawanie rekordow do bazy";
  4.  
  5.  
  6.  
  7. if (isset($_POST['tabela'])){
  8.  
  9.  
  10. $model = $_POST['model'];
  11. $silnik = $_POST['silnik'];
  12. $rocznik = $_POST['rocznik'];
  13. if($model and $silnik and $rocznik ) {
  14.  
  15. // łączymy się z bazą danych
  16. $connection = @mysql_connect('localhost', 'root', '')
  17. or die('Brak połączenia z serwerem MySQL');
  18. $db = @mysql_select_db('somochody', $connection)
  19. or die('Nie mogę połączyć się z bazą danych');
  20.  
  21.  
  22. $result = mysql_query("INSERT INTO" .$_POST['tabela']. " VALUES('$model','$silnik','$rocznik')")
  23. or die("Zapytanie niepoprawne");
  24.  
  25. if ($add){
  26. echo '<p>dodano samochod</p>';}
  27. else
  28. echo '<p>nie dodano samochodu</p>';
  29. };
  30. };
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38. ?>
  39.  
  40. <form action="dodwyb.php" method="post">
  41. <select name="tabela" >
  42. <option value="">Wybierz kategorie</option>
  43. <option value="audi">audi</option>
  44. <option value="seat">seat</option>
  45. </select><br />
  46. model:<br />
  47. <input type="text" name="model" /><br />
  48. silnik:<br />
  49. <input type="int" name="silnik" /><br />
  50. roczink:<br />
  51. <input type="int" name="rocznik" /><br />
  52. <input type="submit" value="dodaj" />
  53. </form>


poprawilem juz mi nie wywala błedow, natomiast wywala zapytanie niepoprawne
Dodawanie rekordow do bazyZapytanie niepoprawne
com
po } nie dajesz ; chyba że tworzysz funkcje anonimowe, po raz kolejny powiem tu masz rozwiązanie
http://forum.php.pl/index.php?s=&showt...t&p=1139249
salva
poprawilem te ";", lecz dalej nie moge se dac z tym rady
com
masz odpowiedź czemu jej żywcem nie wkleisz do kodu ? Do 3 razy sztuka :
http://forum.php.pl/index.php?s=&showt...t&p=1139249

Wejdź podmień swój $result odpal baaasmiley.gif
salva
  1.  
  2. $add = mysql_query("INSERT INTO" .$_POST['tabela']. " VALUES('$model','$silnik','$rocznik')")
  3. or die("Zapytanie niepoprawne");
  4.  
  5. if ($add){
  6. echo '<p>dodano samochod</p>';}
  7. else
  8. echo '<p>nie dodano samochodu</p>';
  9. }
  10. }
  11.  
  12.  


nie wiem czy oto chodzilo stawiam ze oto ale dalej mi wywala zapytanie niepoprawne
com
Widzę muszę samemu zrobić Ci to kopuj wklej:
  1. $add = mysql_query("INSERT INTO {$_POST['tabela']} VALUES('$model','$silnik','$rocznik')")
  2. or die("Zapytanie niepoprawne");
  3.  
  4. if ($add){
  5. echo '<p>dodano samochod</p>';}
  6. else
  7. echo '<p>nie dodano samochodu</p>';
  8. }
  9. }
salva
  1. <?php
  2.  
  3. echo "Dodawanie rekordow do bazy";
  4.  
  5.  
  6. if (isset($_POST['tabela'])){
  7.  
  8. $model = $_POST['model'];
  9. $silnik = $_POST['silnik'];
  10. $rocznik = $_POST['rocznik'];
  11. if($model and $silnik and $rocznik ) {
  12.  
  13. // łączymy się z bazą danych
  14. $connection = @mysql_connect('localhost', 'root', '')
  15. or die('Brak połączenia z serwerem MySQL');
  16. $db = @mysql_select_db('somochody', $connection)
  17. or die('Nie mogę połączyć się z bazą danych');
  18.  
  19.  
  20. $add = mysql_query("INSERT INTO {$_POST['tabela']} VALUES('$model','$silnik','$rocznik')")
  21. or die("Zapytanie niepoprawne");
  22.  
  23. if ($add){
  24. echo '<p>dodano samochod</p>';}
  25. else
  26. echo '<p>nie dodano samochodu</p>';
  27. }
  28. }
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. ?>
  36.  
  37. <form action="dodwyb.php" method="post">
  38. <select name="tabela" >
  39. <option value="">Wybierz kategorie</option>
  40. <option value="audi">audi</option>
  41. <option value="seat">seat</option>
  42. </select><br />
  43. model:<br />
  44. <input type="text" name="model" /><br />
  45. silnik:<br />
  46. <input type="int" name="silnik" /><br />
  47. roczink:<br />
  48. <input type="int" name="rocznik" /><br />
  49. <input type="submit" value="dodaj" />
  50. </form>


Podmnieniłem tylko dalej wywala zapytanie niepoprawe. Masz jeszcze jakas sugestie??

Moze zle mysle no ale gdzie tu jest zatwierdzone ze $_POST['tabela'] to tabela audi lub seat questionmark.gif Moze to jest zle zrobione
com
var_dump("INSERT INTO {$_POST['tabela']} VALUES('$model','$silnik','$rocznik')"); i wynik
salva
  1. $add = var_dump("INSERT INTO {$_POST['tabela']} VALUES('$model','$silnik','$rocznik')")
  2. or die("Zapytanie niepoprawne");
  3.  


pewnie zle

wywala mi takie cos

string(45) "INSERT INTO seat VALUES('ibiza','2.0','2020')" Zapytanie niepoprawne
com
masz tabelke o nazwie seat?

jak tak to jakie zawiera ona pola
salva
tak mam zawiera:

id - mam ustawione ze samo numeruje kolejny dodany rekord
model
silnik
rocznik
com
no to
  1. $add = mysql_query("INSERT {$_POST['tabela']} (model, silnik, rocznik) VALUES('$model','$silnik','$rocznik')")
  2. or die("Zapytanie niepoprawne");
salva
wielkie dzieki juz dodaje, tylko wyskakuje mi jeszcze jeden problem dodaje do bazy i wyskakuje takze napis:

nie dodano samochodu


com
bo warunek jest zły
  1. if(!$add)
  2. //nie dodano
  3. else
  4. //dodano
salva
zmieniłem lecz gdy np odswieze strone to za kazdym razem dodaje samochod, wiec wrzuciłem:

  1. if ($add){
  2. echo '<p>nie dodano samochodu</p>';}
  3. else
  4. echo '<p>dodano samochod do bazy</p>';
  5. header("Location: dodwyb.php");
  6. }
  7. }


ale przez to nie wystakuje mi ze samochod dodano
com
dodaje ale to z innego powodu a jak to rozwiązać pisze tutaj
Temat: odswiezanie strony zapis
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.