Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak usunąć kawałek tablicy
Forum PHP.pl > Forum > Przedszkole
puz219
Witam.

Napisałem sobie skrypt oczekiwania. Tzn. działa to w ten sposób, że mam w bazie danych pole waiting, do którego dopisuję ID użytkownika, który kliknął w link.

później już na stronie z wynikami wczytuję zawartość pola do zmiennej i za pomocą explode() dziele tą zmienną na tablicę

  1. <?php
  2. $w_kolejce = explode("|", $row["waiting"]);
  3. ?>


Następnie sprawdzam, czy id użytkownika znajduje sie w tablicy, jeśli nie to wyświetlam link, za pomocą którego można dodać sie do listy oczekujących, a jeśli natomiast jest, to wyświetlam link, za pomocą którego można się "wypisać" z tej listy.

I tutaj zaczyna sie mój problem, gdyż wymyśliłem, że wypisywanie się z tej listy jest jednoznaczne z usunięciem mojego ID z tej tabeli, tylko nie mam pojęcia, jak właśnie ten określony kawałek.

Jak czegoś takiego dokonać.

Bardzo proszę o pomoc.

Pozdrawiam.
KovalX
Nie wiem czy akurat dobrze cię zrozumiałem

Kod
<?


$w_kolejce = explode("|", $row["waiting"]);

foreach ($w_kolejce as $id)
{
   if ($id !== $id_usun)                      //$id_usun - id które chcesz wyrzucić z bazy
     $w_kolejce2 .= $id.'|';


}

?>


później zapisujesz do bazy danych zmienna $w_kolejce2

pozdrawiam,
vtuner
Ewentualnie można skorzystać z funkcji array_slice" title="Zobacz w manualu PHP" target="_manual
mike
Po pierwsze to zapisywanie wartości do bazy w ten sposób (łącznie ich w takie stringi) to bardzo duży błąd.
Nie powinieneś tak robić. Zamiast w to brnąć zmień sposób przechowywania danych.

Jeśli jednak bardzo chcesz to mas przykład jak to zrobić.
  1. <?php
  2.  
  3. // DOPISYWANIE SIĘ
  4.  
  5. // Wyciągasz wartość z bazy i masz:
  6. $ids = '12|42|56|1|78|24'; // e.t.c.
  7.  
  8. // Rozbijasz to na tablicę:
  9. $arrayIds = explode('|', $ids);
  10.  
  11. // I dopisujesz kolejny identyfikator. Na przykład:
  12. $arrayIds[] = 1234;
  13.  
  14. // "Sklejasz" i później zapisujesz do bazy
  15. $wartoscDoZapisuDoBazy = implode('|', $arrayIds);
  16.  
  17. ?>

  1. <?php
  2.  
  3. // WYPISYWANIE SIĘ
  4.  
  5. $idKtoreUsuwaszZBazy = 1234;
  6.  
  7. // Wyciągasz wartość z bazy i masz:
  8. $ids = '12|42|56|1|78|24'; // e.t.c.
  9.  
  10. // Rozbijasz to na tablicę:
  11. $arrayIds = explode('|', $ids);
  12.  
  13. // Jeśli taki identyfikator istnieje w tablicy to go usuwasz
  14. $klucz = array_search($idKtoreUsuwaszZBazy, $arrayIds);
  15. if ($klucz !== false) {
  16. unset($arrayIds[$klucz]);
  17. }
  18.  
  19. // "Sklejasz" i później zapisujesz do bazy
  20. $wartoscDoZapisuDoBazy = implode('|', $arrayIds);
  21.  
  22. ?>
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.