Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem z przypisaniem nazwy [id] przy dodawaniu plikow
lvs
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.02.2007

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


Witam.
Od dłuższego czasu gryzie mnie pewien problem. Podczas uploadu pliku, chcialbym mu nadac nazwe taka, jakie id zostanie przypisane do wpisu do tabelki. Moze na przykladzie bedzie latwiej...

mam tabelke

moduly:
  • id_modulu
  • rodzaj_modulu
  • zdjecia
jakis tam prosty kod formularza...

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
  2. <?php
  3. $con=mysql_connect("localhost","xxx","xxx");
  4. ?>
  5. <form name='form1' method='POST' action='commit.php?action=add' enctype='multipart/form-data'>
  6.  
  7. <table border="1" width="100%">
  8. <tr>
  9. <td width="25%">ID</td>
  10. <td width="25%"> </td>
  11. <td width="25%">Specjalizacja</td>
  12. <td width="25%"><input type='text' size=35 name='specjalizacja' value=''></td>
  13. </tr>
  14. <tr>
  15. <td width="25%">Nazwa</td>
  16. <td width="25%"><input type='text' size=35 name='nazwa' value=''></td>
  17. <td width="25%">Typ placówki</td>
  18. <td width="25%"><select size="1" name="typ_placowki">
  19.  
  20. <?php
  21. mysql_query("SET NAMES 'utf8'");
  22. $wynik = mysql_query("SELECT * FROM bm_typ_placowki")
  23. or die('Błšd zapytania');
  24.  
  25. if(mysql_num_rows($wynik) > 0) {
  26.  
  27. while($r = mysql_fetch_object($wynik)) {
  28.  
  29. echo ("<option>" . $r->typ_placowki. "</option>" );
  30. }
  31. }
  32. ?>
  33. </select></td>
  34. </tr>
  35. <tr>
  36. <td width="25%">Ulica</td>
  37. <td width="25%"><input type='text' size=35 name='ulica' value=''></td>
  38. <td width="25%">Telefon</td>
  39. <td width="25%"><input type='text' size=35 name='telefon' value=''></td>
  40. </tr>
  41. <tr>
  42. <td width="25%">Kod pocztowy</td>
  43. <td width="25%"><input type='text' size=35 name='kod_pocztowy' value=''></td>
  44. <td width="25%">email</td>
  45. <td width="25%"><input type='text' size=35 name='email' value=''></td>
  46. </tr>
  47. <tr>
  48. <td width="25%">Miasto</td>
  49. <td width="25%"><input type='text' size=35 name='miasto' value=''></td>
  50. <td width="25%">Strona www</td>
  51. <td width="25%"><input type='text' size=35 name='strona_www' value=''></td>
  52. </tr>
  53. <tr>
  54. <td width="25%">Województwo</td>
  55. <td width="25%">
  56. <select size="1" name="wojewodztwo">
  57.  
  58. <?php
  59. mysql_query("SET NAMES 'utf8'");
  60. $wynik = mysql_query("SELECT * FROM bm_wojewodztwa")
  61. or die('Błšd zapytania');
  62.  
  63. if(mysql_num_rows($wynik) > 0) {
  64.  
  65. while($r = mysql_fetch_object($wynik)) {
  66.  
  67. echo ("<option>" . $r->wojewodztwo. "</option>" );
  68. }
  69. }
  70. ?>
  71. </select>
  72. </td>
  73. <td width="25%"> </td>
  74. <td width="25%"> </td>
  75. </tr>
  76. <tr>
  77. <td width="50%" colspan="2">Opis</td>
  78. <td width="50%" colspan="2"><p align='center'><textarea name='opis' rows='8' cols='50' style='color: gray; font-style: italic; '>
  79. tutaj jest miejsce na twoje swobodne uwagi (do 1024 znaków)
  80. </textarea></p></td>
  81. </tr>
  82. </table>
  83. <br>
  84. <?php
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93. for( $i=0; $i<3; $i++) {
  94. ?>
  95. <table border='1' width='100%'>
  96. <tr>
  97. <td width='34%'>
  98. <?php 
  99. mysql_query("SET NAMES 'utf8'");
  100. $wynik = mysql_query("SELECT * FROM bm_rodzaje_modulow")
  101. or die('Błąd zapytania');
  102.  
  103. if(mysql_num_rows($wynik) > 0) {
  104. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  105.  
  106.  while($r = mysql_fetch_object($wynik)) {
  107. ?>  
  108. <p align='left'><input type='radio' value='modul_<?php echo ($r->id); ?>' name='radio[<?php echo ($i); ?>]'> <?php echo ($r->modul); ?></p>
  109. <?php  
  110. }
  111.  
  112.  
  113. }
  114. ?>
  115.  
  116. </td>
  117. <td width='33%'>
  118. <p align='center'>zdjecie 1<br><input type='file' name='image_filename[<?php echo($i); ?>_1]' id='image_filename[<?php echo($i); ?>_1]'><br></p>
  119. <p align='center'>zdjecie 2<br><input type='file' name='image_filename[<?php echo($i); ?>_2]' id='image_filename[<?php echo($i); ?>_2]'><br></p>
  120. <p align='center'>zdjecie 3<br><input type='file' name='image_filename[<?php echo($i); ?>_3]' id='image_filename[<?php echo($i); ?>_2]'><br></p>
  121. </td>
  122. <td width='33%'>
  123. <p align='center'>Wstaw opis</p>
  124. <p align='center'><textarea name='uwagi<?php echo($i); ?>' rows='8' cols='50' style='color: gray; font-style: italic; '>
  125. tutaj jest miejsce na twoje swobodne uwagi (do 1024 znaków)
  126. </textarea></td>
  127. </tr>
  128. </table><br>
  129. <?php } ?>
  130. <p align='right'><input type='submit' value='Wyslij' name='B1'><input type='reset' value='Wyczysc' name='B2'></p>


a tak wyglada w przegladarce jak sie juz zaladuje

  1. <table border='1' width='100%'>
  2. <tr>
  3. <td width='34%'>
  4.  
  5. <p align='left'><input type='radio' value='modul_1' name='radio[0]'> 1 - Opis</p>
  6.  
  7. <p align='left'><input type='radio' value='modul_2' name='radio[0]'> 2 - Opis i zdjęcie</p>
  8.  
  9. <p align='left'><input type='radio' value='modul_3' name='radio[0]'> 3 - Dwa zdjęcia</p>
  10.  
  11.  
  12.  
  13. </td>
  14. <td width='33%'>
  15. <p align='center'>zdjecie 1<br><input type='file' name='image_filename[0_1]' id='image_filename[0_1]'><br></p>
  16. <p align='center'>zdjecie 2<br><input type='file' name='image_filename[0_2]' id='image_filename[0_2]'><br></p>
  17. <p align='center'>zdjecie 3<br><input type='file' name='image_filename[0_3]' id='image_filename[0_2]'><br></p>
  18. </td>
  19. <td width='33%'>
  20.  
  21. <p align='center'>Wstaw opis</p>
  22. <p align='center'><textarea name='uwagi0' rows='8' cols='50' style='color: gray; font-style: italic; '>
  23. tutaj jest miejsce na twoje swobodne uwagi (do 1024 znaków)
  24. </tr>
  25. </table><br>
  26. <table border='1' width='100%'>
  27. <tr>
  28. <td width='34%'>
  29.  
  30. <p align='left'><input type='radio' value='modul_1' name='radio[1]'> 1 - Opis</p>
  31.  
  32.  
  33. <p align='left'><input type='radio' value='modul_2' name='radio[1]'> 2 - Opis i zdjęcie</p>
  34.  
  35. <p align='left'><input type='radio' value='modul_3' name='radio[1]'> 3 - Dwa zdjęcia</p>
  36.  
  37.  
  38. </td>
  39. <td width='33%'>
  40. <p align='center'>zdjecie 1<br><input type='file' name='image_filename[1_1]' id='image_filename[1_1]'><br></p>
  41. <p align='center'>zdjecie 2<br><input type='file' name='image_filename[1_2]' id='image_filename[1_2]'><br></p>
  42.  
  43. <p align='center'>zdjecie 3<br><input type='file' name='image_filename[1_3]' id='image_filename[1_2]'><br></p>
  44. </td>
  45. <td width='33%'>
  46. <p align='center'>Wstaw opis</p>
  47. <p align='center'><textarea name='uwagi1' rows='8' cols='50' style='color: gray; font-style: italic; '>
  48. tutaj jest miejsce na twoje swobodne uwagi (do 1024 znaków)
  49. </tr>
  50. </table><br>
  51. <table border='1' width='100%'>
  52.  
  53. <tr>
  54. <td width='34%'>
  55.  
  56. <p align='left'><input type='radio' value='modul_1' name='radio[2]'> 1 - Opis</p>
  57.  
  58. <p align='left'><input type='radio' value='modul_2' name='radio[2]'> 2 - Opis i zdjęcie</p>
  59.  
  60. <p align='left'><input type='radio' value='modul_3' name='radio[2]'> 3 - Dwa zdjęcia</p>
  61.  
  62.  
  63. </td>
  64.  
  65. <td width='33%'>
  66. <p align='center'>zdjecie 1<br><input type='file' name='image_filename[2_1]' id='image_filename[2_1]'><br></p>
  67. <p align='center'>zdjecie 2<br><input type='file' name='image_filename[2_2]' id='image_filename[2_2]'><br></p>
  68. <p align='center'>zdjecie 3<br><input type='file' name='image_filename[2_3]' id='image_filename[2_2]'><br></p>
  69. </td>
  70. <td width='33%'>
  71. <p align='center'>Wstaw opis</p>
  72.  
  73. <p align='center'><textarea name='uwagi2' rows='8' cols='50' style='color: gray; font-style: italic; '>
  74. tutaj jest miejsce na twoje swobodne uwagi (do 1024 znaków)
  75. </tr>
  76. </table><br>
  77. <p align='right'><input type='submit' value='Wyslij' name='B1'><input type='reset' value='Wyczysc' name='B2'></p>


teraz takie pytanko.

zalozmy ze mam kwerende:
  1. <?php
  2. $query_kontakt = "insert into bm_moduly 
  3. (id_modulu,rodzaj_modulu,zdjecia) values
  4. ('', '$wybrany_modul', '$nazwa_pliku)";
  5. ?>


O co tak wlasciwie mi chodzi... Chodzi o to, ze chcialbym, aby dodawane zdjecie/plik $nazwa_pliku , miala taka sama nazwe jak id_modulu w tym samym wpisie + jakis tam index, np

przykladowy wpis:

0001 modul_2 0001_1.jpg


OK, kolejny problem jest taki...

Jak widac, w formularzu mam miejsce na upload 3 plikow, ale tylko jeno miejsce w tabelce. Co chcialem zrobic. Przyklad:
mam 3 zdjecia: 0001_1.jpg 0001_2.jpg 0001_3.jpg
chcialbym polaczyc je w jeden string np $zdjecia=0001_1.jpg|0001_2.jpg|0001_3.jpg
i oddzielic wartosci jakims znakiem specjalnym. Nastepnie uzywajac implode/explode miec dostep do poszczegolnych wartosci...

Czy ktos moglby mi pomoc smile.gif) ?
z gory dzieki


-------------------------
do php i html są odpowiednie BBCode
a nie tylko [ code ]
~Cienki1980
Go to the top of the page
+Quote Post
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Cytat(lvs @ 3.03.2007, 09:56:57 ) *
O co tak wlasciwie mi chodzi... Chodzi o to, ze chcialbym, aby dodawane zdjecie/plik $nazwa_pliku , miala taka sama nazwe jak id_modulu w tym samym wpisie + jakis tam index, np

przykladowy wpis:

0001 modul_2 0001_1.jpg
OK, kolejny problem jest taki...

Jak widac, w formularzu mam miejsce na upload 3 plikow, ale tylko jeno miejsce w tabelce. Co chcialem zrobic. Przyklad:
mam 3 zdjecia: 0001_1.jpg 0001_2.jpg 0001_3.jpg
chcialbym polaczyc je w jeden string np $zdjecia=0001_1.jpg|0001_2.jpg|0001_3.jpg
i oddzielic wartosci jakims znakiem specjalnym. Nastepnie uzywajac implode/explode miec dostep do poszczegolnych wartosci...

Czy ktos moglby mi pomoc smile.gif) ?
z gory dzieki

Pierwszy problem jest prosty. Wystarczy dodać dane do bazy bez nazw zdjęć, za pomocą mysql_insert_id() wyciągnąć stworzone ID, odpowiednio ustawić nazwy plików i zrobić update danego rekordu. Warunkiem jest to, że pole gdzie przechowujesz nazwy musi być NULL.

Co do drugiego problemu ... jeżeli wiesz, że plików zawsze max będzie 3 to zrób trzy pola w bazie ... jeżeli nie chcesz ingerować w bazę to zrób dokładnie tak jak napisałeś. Użyj implode/explode i problem z głowy.

PS. Przenoszę PHP->Przedszkole


--------------------
404
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 Aktualny czas: 20.08.2025 - 08:00