Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]formularz dodający dane do bazy
Michał90
post 17.01.2011, 12:42:11
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 16.05.2007

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


Witam,
jak zrobić taki formularz + php żeby to działało w ten sposób

z pola rozwijanego wybieram z bazy tytuł lub ID, a następnie formularz w którym napiszę jakąś treść i zostanie dodany do bazy pasującej do tytułu lub ID czyli żeby czasem sie nie wtargnął błąd i treść, którą wpiszę nie została dodana do innego tytułu lub ID

Pozdrawiam

Stworzyłem coś takiego:

  1. <?php
  2. $db = new mysqli('localhost','xxxxx','xxxx','xxxx');
  3. mysqli_query($db,'SET NAMES `utf8`');
  4. $sqlnowe = mysqli_query($db,'SELECT * FROM `cc` ORDER BY `id` DESC ');
  5.  
  6. ?>
  7.  
  8. <form action="formu.php" method="post">
  9. <select name="tytul">
  10. <?php while ($rownowe = mysqli_fetch_array($sqlnowe)) { ?>
  11. <option><? echo $rownowe['tytul']; ?></option><?php };?>
  12.  
  13. </select>
  14.  
  15.  
  16. opismax:<br />
  17. <input type="text" name="opismax" /><br />
  18. <textarea name="opismax" cols="50" rows="10">Proszę, wpisz tutaj jakiś komentarz...</textarea>
  19.  
  20. <input type="submit" value="dodaj" />
  21. </form>
  22.  
  23. <?php
  24.  
  25. // odbieramy dane z formularza
  26. $tytul = $_POST['tytul'];
  27. $opismax = $_POST['opismax'];
  28.  
  29. if($tytul and $opismax) {
  30.  
  31.  
  32.  
  33. // dodajemy rekord do bazy
  34. $ins = @mysqli_query("INSERT tytul='$tytul' INTO publications SET opismax='$opismax'");
  35.  
  36. if($ins) echo "Rekord został dodany poprawnie";
  37. else echo "Błąd nie udało się dodać nowego rekordu";
  38.  
  39.  
  40. }
  41.  
  42. ?>


baza danych:
pola: opismax , tytul

Ale coś nie chce dodać sad.gif
Go to the top of the page
+Quote Post
Daiquiri
post 17.01.2011, 13:14:51
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Usuń małpkę przez mysqli_query() i zobacz jaki masz błąd.
Go to the top of the page
+Quote Post
Michał90
post 17.01.2011, 13:20:28
Post #3





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 16.05.2007

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


Warning: mysqli_query() expects at least 2 parameters, 1 given in.....

A więc jak to mam zrobić, żeby ten tekst co wpisze został dodany do tego samego "pola, rzędu" co tytul ?
Go to the top of the page
+Quote Post
kalmaceta
post 17.01.2011, 13:20:50
Post #4





Grupa: Zarejestrowani
Postów: 183
Pomógł: 24
Dołączył: 4.12.2010

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


złe zapytanie, ma być insert into:
  1. INSERT INTO tbl_name (col1,col2) VALUES(15,999);

hint


--------------------
kAlmAcetA
Go to the top of the page
+Quote Post
zordon
post 17.01.2011, 13:25:29
Post #5





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


Twój tok wykrywania błędów powinien być następujący:
1. czytam komunikat błędu
2. ze zrozumieniem
3. udaję się na stronę manuala, żeby sprawdzić jakie parametry przyjmuje funkcja mysqli_query wywołana proceduralnie
4. wyciągam wnioski (nie dałem id połączenia jako parametr)
Go to the top of the page
+Quote Post
Michał90
post 17.01.2011, 14:29:39
Post #6





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 16.05.2007

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


Cytat
4. wyciągam wnioski (nie dałem id połączenia jako parametr)

Już dodałem

Ale dalej mam kłopot z tym zapytaniem...
Go to the top of the page
+Quote Post
kalmaceta
post 17.01.2011, 14:41:15
Post #7





Grupa: Zarejestrowani
Postów: 183
Pomógł: 24
Dołączył: 4.12.2010

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


po 1. mój komentarz wyżej
po 2. pewnie chcesz update zrobić nie insert do bazy, użyj UPDATE tabela SET val='cos' WHERE tytul='cos'
po 3. masz dwa pola opismax

Ten post edytował kalmaceta 17.01.2011, 14:41:48


--------------------
kAlmAcetA
Go to the top of the page
+Quote Post
Michał90
post 17.01.2011, 15:22:09
Post #8





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 16.05.2007

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


no i o to chodziło smile.gif

oczywiście dziękuje (patrz powyżej biggrin.gif )



Ten post edytował Michał90 17.01.2011, 15:26:37
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: 2.07.2025 - 05:00