Wątek przeniesiony 2014-12-29 12:46 z PHP przez dzek69.

Nie wiem jak dodać nowe rekordy do bazy mysql przy tym kodzie.

0

Witam. Mam taki problem. Otóż, napisałem skrypt który pobiera z bazy danych nazwy utworzonych kolumn. Skrypt jest napisany tak aby można było do każdej z wyświetlonych kolumn wprowadzić jakieś dane. Nie wiem jak zrobić aby wysłać te dane do bazy danych. Oto kod:

<?php
   echo '<form action="" method="post"> ';
   echo 'Formularz dodawania przepisów<br><br>';
   echo 'Nazwa przepisu:<br>';
   echo '<input type="text" name="nazwa_przepisu" /><br><br>';
   $nazwa_przepisu = $POST['nazwa_przepisu'];
   echo 'Wpisz dane w potrzebne pola:<br>';
                                               //Wyświetlanie już dodanych produktów z możliwością wprowadzenia danych
               FUNCTION wyswietlanie_nazw_kolumn() {
                $sql = mysql_query("SHOW FIELDS FROM produkty") or die("Blad sql".mysql_errno());  
               while($item = mysql_fetch_array($sql))
                   { 
               $produkt = $item['Field'];
                echo $produkt.' <input type="text" name="'.$produkt.'" />&nbsp;&nbsp;&nbsp; ||&nbsp;&nbsp;&nbsp; ';

                   }

                }
        $wyswietlanie_nazw_kolumn = wyswietlanie_nazw_kolumn();
        echo $wyswietlanie_nazw_kolumn;
   echo '<br><br><input type="submit" name="wyslij_przepis" value="Wyślij" />';
   echo '</form>';

   if (isset($_POST['zatwierdz']))
   {  

      $sql = mysql_query("Tutaj nie wiem co ma być");
   }
   else
   {

   }
?>

Proszę o wyrozumiałość jestem początkującym programistą. Jeżeli popełniam jakieś błędy to proszę mnie poprawić. Może ktoś zna jakiś inny sposób, łatwiejszy na napisanie tego to byłbym wdzięczny za jego przedstawienie.

0

Pierwsze co powinieneś zrobić to porzucić mysql na rzecz mysqli (nie wspominam tu o jakże przydatnym PDO, bo pewnie OOP jeszcze nie ruszyłeś). Zacznij też filtrować dane od użytkownika , bo nie wiadomo, co tam może się kryć (narażasz się m.in. na SQL Injection).
Co do zasadniczego problemu - nie lepiej mieć "na sztywno" ten formularz, a nie bawić się z wyświetlaniem kolumn z bazy (no chyba, że jest to tak ważny element Twojej aplikacji, to ok) ?
Żeby dodać dane do tabeli używasz "INSERT INTO" http://dev.mysql.com/doc/refman/5.6/en/insert.html

0

Ja jestem laikiem jeżeli chodzi o PHP i MySQL, więc MySQLi nie mam zamiaru się uczyć(przynajmniej na razie). Na SQL Injection nie będę narażony ponieważ strona będzie używana na lokalnym hoscie. A co do tego formularza to nie da się go na sztywno zrobić ponieważ ilość kolumn cały czas się zmienia ponieważ dodawane są nowe kolumny skryptem który mam przygotowany i działa. Więc proszę o pomoc z tym co mam aby mi się udało dodawać do bazy dane wpisane w polach. Pola się wyświetlają więc jest dobrze tylko nie wiem jak to zapisać aby dodawało do bazy te dane. Próbowałem różnymi sposobami ale żaden nie działa. Insert into umiem napisać ale nie mam pojęcia jak to zapisać z obiektami których nazwy są generowane przez skrypt.

0

Zapisz sobie w sesji wygenerowane kolumny (najlepiej w tablicy), później po wysłaniu formularza sobie iterujesz po tych danych za pomocą pętli i składasz zapytanie, które twierdzisz, że umiesz zapisać.

0

Dzięki. Nie pomyślałem o tablicach. Napiszę ten kod i pokaże Ci, to zobaczysz czy dobrze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0