Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z przypisaniem nazwy [id] przy dodawaniu plikow
Forum PHP.pl > Forum > Przedszkole
lvs
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
Cienki1980
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
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.