Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Jak usunąć kawałek tablicy
puz219
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
KovalX
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 4.04.2008

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


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,

Ten post edytował KovalX 4.04.2008, 18:23:50
Go to the top of the page
+Quote Post
vtuner
post
Post #3





Grupa: Zarejestrowani
Postów: 220
Pomógł: 10
Dołączył: 23.08.2005
Skąd: Łódź

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


Ewentualnie można skorzystać z funkcji array_slice" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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. ?>
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: 21.08.2025 - 03:50