Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd porównania
Forum PHP.pl > Forum > PHP
kapitan kloss
Głowa mi już paruje i nie mogę namierzyć problemu. Otóż:
W kolumnie foto bazy danych przechowuje fotografie do portfolio. Zapis w bazie może mieć postać: "01.gif+opis; 02.gif+opis; 03.gif+opis;"
Po kliknięciu na usuń plik z portfolio muszę go wykasować i do bazy zapisać zmieniony tekst. Jeśli kasujemy 02.gif to do bazy trafia nowy zapis w postaci: "01.gif+opis; 03.gif+opis;"

  1. <?php
  2.  
  3. $portfolio = $_GET['p']; // id portfolio
  4. $foto = $_GET['f']; // nasza fotografia do wykasowania np. 02.gif
  5. $zapytaj = mysql_query ("SELECT * FROM portfolio WHERE idportfolio='$portfolio'"); // znajduje szukane portfolio 
  6.  
  7. $plik_bazy = mysql_fetch_assoc ($zapytaj);
  8.  
  9. $podziel = explode (";","$plik_bazy[foto]"); // podzial zapisu na poszczególne pliki (są oddzielone średnikami)
  10. $ile = substr_count ("$plik_bazy[foto]", ";"); // sprawdzam ile w ogole ich tam siedzi
  11. $zapis_dobazy = "";
  12.  
  13.  
  14. for ($i=0; $i<$ile; $i++) { // no i przegladam wszystkie rekordy
  15.  $nazwy = explode ("+", "$podziel[$i]");
  16.  if ($nazwy[0]==$_GET['f']) { // trafilem na szukany plik
  17.  ftp_delete($conn_id, "$sciezka_pelna"."portfolio/"."$foto"); 
  18.  } else { // nie trafilem na plik
  19.  $zapis_dobazy = "$zapis_dobazy"."$nazwy[0]"."+"."$nazwy[1]".";";
  20.  }
  21. }
  22. ?>


Klopot w tym ze nigdy nie trafiam na szukany plik. Caly rekord zostaje szczytany i do bazy zapisane zostaje dokladnie to samo co w niej bylo. Rowniez po znalezieniu pliku nie kasowany jest z ftp ten ktorego chce sie pozbyc.

Please, pomóżcie bo jak sie patrze na te linie to juz zadnego bledu nie widze.
dtb
nie nadarmo mysql jest RELACYJNA baza danych:

Kod
id | id_p | fota   | opis:
-------------------------
0  | 0    | f1.gif | abc
1  | 0    | f2.gif | cba
2  | 1    | f3.fig | def
3  | 1    | f4.gif | fed


jezeli juz jednak chceszs pozostac przy swoim starym sposobie trzymania danych no to:

Sposob 1:
  1. <?php
  2. $string = '01.gif+opis; 02.gif+opis; 03.gif+opis;';
  3. // usun 02.gif:
  4. $string = preg_repalce ('#02.gif+([^;]+);#', NULL, $string);
  5. ?>


Sposob 2:
  1. <?php
  2. $out = NULL;
  3. $string = '01.gif+opis; 02.gif+opis; 03.gif+opis;';
  4. $array = explode (';', $string);
  5. foreach ($array as $fotka)
  6. {
  7.    if (empty ($fotka)) break;
  8.    list ($plik) = explode ('+', ltrim ($fotka));
  9.    if ($plik != '02.gif') $out .= $fotka.';';
  10. }
  11. unset ($array, $plik, $fotka);
  12. ?>
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.