Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Zapis do bazy danych z listy wyboru - dalszy ciąg, temat aktualny
Czapla
post
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 3
Dołączył: 10.12.2007
Skąd: Bielsko-Biała

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


Cześć

Założmy że mamy dwie tabele

przy_film

  1. CREATE TABLE IF NOT EXISTS `przy_film` (
  2. `id_film` int(11) NOT NULL AUTO_INCREMENT,
  3. `tytul` varchar(80) character SET utf8 collate utf8_polish_ci NOT NULL,
  4. PRIMARY KEY (`id_film`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=203 ;


prz_gatunek

  1. CREATE TABLE IF NOT EXISTS `przy_gatunek` (
  2. `id_gatunek` int(11) NOT NULL AUTO_INCREMENT,
  3. `gatunek` varchar(30) character SET utf8 collate utf8_polish_ci NOT NULL,
  4. PRIMARY KEY (`id_gatunek`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;


przy_film_has_przy_gatunek

  1. CREATE TABLE IF NOT EXISTS `przy_film_has_przy_gatunek` (
  2. `id_film` int(11) NOT NULL,
  3. `id_gatunek` int(11) NOT NULL,
  4. PRIMARY KEY (`id_film`,`id_gatunek`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8



Każdemu filmowi przyporządkowany jest dokladnie jeden gatunek - jeden gatunek może być przyporządkowany wielu filmom - RELACJA 1:n

dla tabeli przy_film_has_przy_gatunek rekordy wyglądaj następująco

id_film/id_gatunku
1, 4
2, 4
3, 1
4, 2
5, 3

O ile w wypadku wyświetlania w formularzu rozwijanej listy z gatunkami wszystko jest OK to nie potrafie uporać się z zapisem do bazy.

Mała Legenda:

$aDBC - ustanawia połączenie do bazy
$SQL - zmienna przechowuje zapytanie SQL
FieldByName(); - pobiera rekordy z bazy
ExecSQL($SQL); - wykonuje zapytanie do bazy SQL
Next(); - zwraca kolejne rekordy

zapytanie SQL zostalo przerobione z zupełnie innego przykladu, a zmienne dostosowane do moich potrzeb...

Formularz wynik pliku php

  1. <tr>
  2. <td>Gatunek</td>
  3. <td>
  4. <select name="gatunek">
  5. <option value="4">aaa</option>
  6. <option value="2">fabularny</option>
  7. <option value="3">horror</option>
  8. <option value="1">komedia</option>
  9. </select>
  10. </td>
  11. </tr>



plik php tworzący formularz

[php]Gatunek
    

Ten post edytował Czapla 27.06.2008, 09:17:07
Powód edycji: dodałem tag (cysiaczek)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Czapla
post
Post #2





Grupa: Zarejestrowani
Postów: 130
Pomógł: 3
Dołączył: 10.12.2007
Skąd: Bielsko-Biała

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


Ok wałkujemy dalej ten temat (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) będe męczył póki nie otrzymam satysfakcjonującej odpowiedzi, albo mod nie zamknie ... (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Skrypt wyświetla rozwijaną listę w polu edycji ale nie zapisuje danych do bazy.

Zapytanie o  liste 
 
  1. $SQL = " SELECT pg.id_gatunek as id_g, gatunek FROM przy_gatunek pg LEFT OUTER JOIN przy_film on (pg.id_gatunek=przy_film.id_gatunek and przy_film.id_film =" .$ID_FILM .")";
  2. $SQL .= " order by gatunek";


Przyklad wyświetlania dla pola id=27

(IMG:http://img120.imageshack.us/img120/1408/lolgh1.th.png)

Skrypt SET - zapisu

  1. <?php
  2. $SQL = "delete from przy_film where id_gatunek=". $ID_GATUNEK;
  3. $aDBC->ExecSQL ($SQL);
  4. $SQL = " SELECT pg.id_gatunek as id_g, gatunek FROM przy_gatunek pg LEFT OUTER JOIN
     przy
  5. film on (pg.id_gatunek=przy_film.id_gatunek and przy_film.id_film =" .$ID_FILM .")";
  6. //$SQL .= " order by gatunek";
  7. $aDBC ->ExecSQL ($SQL);
  8.   $SQL = "insert into przy_film (id_gatunek, id_film) values (";
  9.   $SQL .= $aDBC->FieldByName ("id_g");
  10.   $SQL .= "," . $ID_FILM;
  11.   $SQL .= ")";
  12.   $aDBC->ExecSQL ($SQL);
  13. $_REQUEST['ID_FILM'] = "0";
  14. ?>

Formularz
 
  1. <tr><td>Gatunek</td><td>
  2.  <?php
  3.  $SQL = " SELECT pg.id_gatunek as id_g, gatunek FROM przy_gatunek pg LEFT OUTER JOIN
     przy
  4. film on (pg.id_gatunek=przy_film.id_gatunek and id_film =" .$ID_FILM .")";
  5.  $SQL .= " order by gatunek";
  6.  $aDBC->ExecSQL ($SQL);
  7.  do{
  8.   $lista .= '<option value="'.$aDBC->FieldByName ("id_g") .'">'.$aDBC->FieldByName ("gatunek") .'</option>';
  9.  }while ($aDBC->Next());
  10.  echo '<select name="gatunek">'.$lista.'</select>';
  11.   ?> 
  12.  </td></tr>


Co jest nie tak?

edit: naniesione poprawki

Ten post edytował Czapla 27.06.2008, 10:40:26
Go to the top of the page
+Quote Post

Posty w temacie
- Czapla   [PHP][MYSQL]Zapis do bazy danych z listy wyboru - dalszy ciąg   12.06.2008, 13:26:16
- - MMX3   Gatunek trzymany jest tu: [PHP] pobierz, plaintext...   12.06.2008, 13:59:56
- - Czapla   EDIT: PATRZ POST 1   13.06.2008, 07:04:33
- - JoShiMa   wyświetl sobie ten formularz w przeglądarce zobacz...   13.06.2008, 10:52:06
- - Czapla   EDIT: PATRZ POST 1   13.06.2008, 11:41:01
- - JoShiMa   Nie rozumiem tego: [PHP] pobierz, plaintext <?p...   13.06.2008, 11:56:37
- - Czapla   bump, problem wciąż aktualny V ok pop...   15.06.2008, 14:41:53
- - matx132   jedyne co tu widze i nie rozumiem to to:) $P...   15.06.2008, 15:33:15
- - Czapla   W dalszym ciągu czekam na pomoc, napisa...   16.06.2008, 10:50:30
- - erix   CytatW rezultacie skrypt zapisze tylko pierwsze po...   17.06.2008, 19:15:47
- - Czapla   Przerobiłem troche ten skrypt i pozbyłem...   18.06.2008, 06:23:41
- - erix   A nie masz przypadkiem jakiegoś babola w tym miejs...   18.06.2008, 11:49:33
- - Czapla   racja zarymowałem tą pierwszą linijkę byłbym wdz...   18.06.2008, 12:15:32
- - erix   Przyjrzyj się polom, jakie deklarujesz w INSERT i ...   18.06.2008, 18:47:47
- - Czapla   teraz to ja nie czaje o.O co jest źle? sk...   18.06.2008, 20:25:09
- - erix   No właśnie. A w tamtym Twoim jest: nazwaKolumny1 =...   18.06.2008, 23:13:24
- - eKuba   masz 3 kolumny |NOT NULL auto_increment | NOT NU...   19.06.2008, 02:06:01
- - Czapla   Tak? [PHP] pobierz, plaintext <?php$SQL = ...   19.06.2008, 06:35:34
- - erix   Cały czas ktoś próbuje. ;] CytatWyświetlanie mi w...   19.06.2008, 13:35:48
- - Czapla   To jeszcze raz: mamy dwie tabele: przy_film z ko...   20.06.2008, 07:22:15
- - erix   Nie odpowiedziałeś mi na jedno. CytatNie rozumiem...   20.06.2008, 13:12:43
- - Czapla   Ok wałkujemy dalej ten temat będe m...   27.06.2008, 08:23:25
- - -Czapla-   BUMP   29.06.2008, 15:10:14


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 08:29