Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Edycja rekordów pod upload plików.
gawcio90
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 27.03.2013

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


Witam. Mam formularz:

  1.  
  2. <td>Dodaj FV1</td>
  3. <td><input name="inv1" type="file" size="50"</td>
  4. </tr>
  5. <tr>
  6. <td bgcolor="lightgray">Dodaj FV2:</td>
  7. <td><input name="inv2" type="file" size="50"</td>
  8. </tr>
  9. <tr>
  10. <td>Dodaj FV3:</td>
  11. <td><input name="inv3" type="file" size="50"</td>
  12. </tr>


Następnie kod edycji:

  1. $inv1_nazwa=$_FILES['inv1']['name'];
  2. $inv2_nazwa=$_FILES['inv2']['name'];
  3. $inv3_nazwa=$_FILES['inv3']['name'];
  4.  
  5. $inv_ext= array_pop(explode(".", $inv1_nazwa));
  6. $inv_ext= array_pop(explode(".", $inv2_nazwa));
  7. $inv_ext= array_pop(explode(".", $inv3_nazwa));
  8.  
  9. $inv1_nazwa_zm=(md5($inv1_nazwa)).".".$inv_ext;
  10. $inv2_nazwa_zm=(md5($inv2_nazwa)).".".$inv_ext;
  11. $inv3_nazwa_zm=(md5($inv3_nazwa)).".".$inv_ext;
  12.  
  13. $query="UPDATE goods SET invoice1='$inv1_nazwa_zm', invoice2='$inv2_nazwa_zm', invoice1='$inv3_nazwa_zm' WHERE id='$ud_id'";


I tutaj jest problem kiedy nie chcę aktualizować, któregoś z rekordów. Nie wybierając nic do aktualizacji jak zrobić aby pusta zmienna nie nadpisała nazwy faktury już istniejącej w bazie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
matiit
post
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


Uzupełniaj na starcie formularz o aktualne wartości z bazy.
To jest lepsza metoda pod względem User experience.
Go to the top of the page
+Quote Post
gawcio90
post
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 27.03.2013

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


Tak robię w przypadku zwykłych pól tekstowych jednak nie wiem jak to zrobić w przypadku uploadowania pliku. W końcu nazwa jest inna bo jest kodowana.
Go to the top of the page
+Quote Post
matiit
post
Post #4





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


Sory, nie zauważyłem, że to są pola do plików.

To nie pozostaje Ci nic innego jak sprawdzanie czy są to puste stringi.. po prostu
Go to the top of the page
+Quote Post
gawcio90
post
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 27.03.2013

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


Ja rozumiem. Sprawdzę czy mam pusty string i właśnie jeżeli on będzie pusty to mi nadpisze już istniejący rekord w bazie.

  1. $query="UPDATE goods SET invoice1='$inv1_nazwa_zm', invoice2='$inv2_nazwa_zm', invoice1='$inv3_nazwa_zm' WHERE id='$ud_id'";


Tutaj nie wiem jak to rozwiązać, jeżeli $inv1_nazwa_zm jest pusta aby nie nadpisała czegoś co już w bazie istnieje.

Ten post edytował gawcio90 10.04.2013, 15:18:02
Go to the top of the page
+Quote Post
matiit
post
Post #6





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


Pobierz sobie na początku aktualne wartości.
I jeśli któreś jest puste to ustaw je na starą wartość
Go to the top of the page
+Quote Post
gawcio90
post
Post #7





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 27.03.2013

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


Czyli pierwsze w formularzu pobrać wszystkie wartości, przekazać je jako hidden i później sprawdzać czy nowe wartości są równe "" jeśli tak to nadać im przekazaną wartość z hidden.
Go to the top of the page
+Quote Post
matiit
post
Post #8





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


Może być tak, ale szkoda się bawić w przekazywanie przez hidden.
Pobierz je sobie w kodzie edycji na początku.
Go to the top of the page
+Quote Post
gawcio90
post
Post #9





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 27.03.2013

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


  1. $query=" SELECT * FROM test WHERE id='$ud_id'";
  2. $result=mysql_query($query);
  3. $num=mysql_numrows($result);
  4.  
  5. $i=0;
  6. while ($i < $num) {
  7. $id=mysql_result($result,$i,"id");
  8. $inv1=mysql_result($result,$i,"inv1");
  9. $inv2=mysql_result($result,$i,"inv2");
  10. $inv3=mysql_result($result,$i,"inv3");
  11.  
  12. ++$i;
  13. }


To dobra metoda na wyciąganie takich danych?
Go to the top of the page
+Quote Post
matiit
post
Post #10





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


Nie.
Ale w tym przypadku to nie ma znaczenia bo tu w ogóle nic nie jest dobrą metodą (IMG:style_emoticons/default/tongue.gif)
samo używanie mysql_query... PDO by było lepsze...
No ale zrób, żeby Ci działało, potem upiększ to (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 3.10.2025 - 06:30