Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] inny zapis do db
Forum PHP.pl > Forum > Przedszkole
lnn
Witam!
Dane z formularzy odbieram za pomocą serialize($_POST), zapisuje w sesji (bo jest pare krokow) i pozniej odserializowywuje i chce to zapisac do bazy, wiem jakie pola chce zapisac wiec wszystko klepie recznie, czy jest jakas inna metoda niz to co wklepalem ponizej??
Jakas petla z tego serialize albo cos? :/

  1. // odebranie danych z formularza i zapis do sesji
  2. $_SESSION['etap_1'] = serialize($_POST);
  3.  
  4. // odserializowanie danych
  5. $etap_1 = unserialize($_SESSION['etap_1']);
  6.  
  7. // zapis do bazy
  8. mysql_query("INSERT INTO `dane1` SET
  9. nazwa = '".$etap_1['nazwa']."',
  10. adres1 = '".$etap_1['adres1']."',
  11. adres1_nr = '".$etap_1['adres1_nr']."',
  12. adres2 = '".$etap_1['adres2']."',
  13. adres2_kod = '".$etap_1['adres2_kod']."',
  14. wojewodztwo = '".$etap_1['wojewodztwo']."',
  15. tel1 = '".$etap_1['tel1']."',
  16. tel2 = '".$etap_1['tel2']."',
  17. fax = '".$etap_1['fax']."',
  18. www = '".$etap_1['www']."',
  19. typ_obiektu = '".$etap_1['typ_obiektu']."',
  20. opis = '".$etap_1['opis']."',
  21. user_id = '".$_SESSION['id']."',
  22. spis_id = '".$last_insert."' ")
darko
Zrób z tego: 'nazwa', 'adres1' tablicę i przejedź po niej na zasadzie:
  1. $tab = array('nazwa', 'adres1', 'adres1_nr'); // <-- itd.
  2. $query = "INSERT INTO dane1 VALUES (";
  3. foreach($tab as $t) {
  4. $query.= $etap_1['nazwa'].",";
  5. }
  6. // później usuwamy ostatni niepotrzebny przecinek:
  7. $query = substr($query, 0, strlen($query) -1);
  8. // domykamy nawias w zapytaniu
  9. $query.=")";
  10. // i w końcu
lnn
cos mi nie dziala, zrobilem tak:
  1. $tab = array('nazwa', 'adres1', 'adres1_nr', 'adres2', 'adres2_kod', 'wojewodztwo',
  2. 'tel1', 'tel2', 'fax', 'www', 'typ_obiektu', 'opis'); // <-- itd.
  3.  
  4. $query = "INSERT INTO dane1 VALUES (";
  5. foreach($tab as $t) {
  6. $query.= $etap_1['nazwa'].",".$etap_1['nazwa'].",".$etap_1['adres1'].","
  7. .$etap_1['adres1_nr'].",".$etap_1['adres2'].",".$etap_1['adres2_kod'].","
  8. .$etap_1['wojewodztwo'].",".$etap_1['tel1'].",".$etap_1['tel2'].","
  9. .$etap_1['fax'].",".$etap_1['www'].",".$etap_1['typ_obiektu'].",".$etap_1['opis'].",";
  10. }
  11. // później usuwamy ostatni niepotrzebny przecinek:
  12. $query = substr($query, 0, strlen($query) -1);
  13. // domykamy nawias w zapytaniu
  14. $query.=")";
  15. // i w końcu
  16. mysql_query($query);
  17. echo mysql_error()."<br />";


i wyskakuje
  1. You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near 'Agro,Gospo Agro,Wieś,102,Pole,10-102,śląskie,101010,29803,900707,http://localhos' at line 1


struktura tabeli
  1. CREATE TABLE IF NOT EXISTS `dane1` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(60) NOT NULL,
  4. `adres1` varchar(40) NOT NULL,
  5. `adres1_nr` varchar(10) NOT NULL,
  6. `adres2` varchar(30) NOT NULL,
  7. `adres2_kod` varchar(6) NOT NULL,
  8. `wojewodztwo` varchar(19) NOT NULL,
  9. `tel1` varchar(30) NOT NULL,
  10. `tel2` varchar(30) DEFAULT NULL,
  11. `fax` varchar(30) DEFAULT NULL,
  12. `www` varchar(120) DEFAULT NULL,
  13. `typ_obiektu` varchar(10) DEFAULT NULL,
  14. `opis` text,
  15. `user_id` int(10) NOT NULL,
  16. `spis_id` int(10) NOT NULL,
  17. PRIMARY KEY (`id`),
  18. KEY `user_id` (`user_id`),
  19. KEY `spis_id` (`spis_id`)
  20. ) ENGINE=MyISAM DEFAULT CHARSET=ucs2 AUTO_INCREMENT=3 ;
darko
To spróbuj z apostrofami:
  1. $tab = array('nazwa', 'adres1', 'adres1_nr'); // <-- itd.
  2. $query = "INSERT INTO dane1 VALUES (";
  3. foreach($tab as $t) {
  4. $query.= "'".$etap_1['nazwa']."',";
  5. }
  6. // później usuwamy ostatni niepotrzebny przecinek:
  7. $query = substr($query, 0, strlen($query) -1);
  8. // domykamy nawias w zapytaniu
  9. $query.=")";
  10. // i w końcu
lnn
a wlasnie mialem zapytac, w tej linijce mam wszystko powypisywac tak jak robilem? winksmiley.jpg
  1. $query.= "'".$etap_1['nazwa']."',";


EDIT

kurde nadal cos nie dziala , wiec chyba zostane przy starym sposobie a to kiedys przetestuje..
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.