Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
usunięcie wyrazu z komórki tabeli - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: usunięcie wyrazu z komórki tabeli (/thread-usuniecie-wyrazu-z-komorki-tabeli)



usunięcie wyrazu z komórki tabeli - harvester2001 - 19-08-2013

Witam

Natrafiłem na mur pisząc kalendarz z imprezami.

Założenia:
User może się zapisać na imprezę.
Kod PHP:
$sql="UPDATE calendar SET event_who = '$who2$who' WHERE event_d=$day AND event_m=$month AND event_y=$year"
$who2 - osoby już zapisane (np: Anna, Tomasz)
$who - obecny user (identyfikowany po sesji)

Zapis w bazie wygląda tak :
Kod:
id  | event_d | event_m | event_y |      event    | event_who
1        12       8        2013         urodziny     ewa, ania, tomek, hubert

Problem:
Nie wiem jak usunąć usera (np. tomek) z danego wydarzenia pozostawiając resztę userów w spokoju.

Będę bardzo wdzięczny za pomoc.

Dziękuje z góry i pozdrawiam Smile


RE: usunięcie wyrazu z komórki tabeli - msx83 - 19-08-2013

Wydaje mi się, że rozsądnym rozwiązaniem jest pobrać userów,
Kod PHP:
$sql "SELECT event_who FROM calendar WHERE id=1";
...
$who "ewa, ania, tomek, hubert";
... 
przefiltrować
Kod PHP:
...
$who "ewa, ania, hubert"
i zrobić update,
Kod PHP:
$sql "UPDATE calendar SET even_who = $who WHERE id=1"
z tym, że operujesz tu na stringu.
Wydaje mi się, że Twój problem polega na tym, że prowadzisz zły zapis userów, poniewarz co jeśli zapisze się dwóch userów o imieniu Tomek? Nawet za pomocą "Regular Expression" bedziesz miał poroblem z usunięciem jednego z nich, no chyba, że chcesz się bawić w ręczny zapis imion użytkowników.
Zamiast imion zapisz ID usera, wtedy napiszesz sobie prosty skrypt, który pozwoli Tobie na usunięcie usera, ale równierz userowi pozwoli na wypisanie się z wydarzenia.

No chyba, że ktoś zna inne rozwiązanie to chętnie poczytam.
Pozdrawiam


RE: usunięcie wyrazu z komórki tabeli - harvester2001 - 19-08-2013

Cytat:Wydaje mi się, że Twój problem polega na tym, że prowadzisz zły zapis userów, poniewarz co jeśli zapisze się dwóch userów o imieniu Tomek? Nawet za pomocą "Regular Expression" bedziesz miał poroblem z usunięciem jednego z nich, no chyba, że chcesz się bawić w ręczny zapis imion użytkowników.
Zamiast imion zapisz ID usera, wtedy napiszesz sobie prosty skrypt, który pozwoli Tobie na usunięcie usera, ale równierz userowi pozwoli na wypisanie się z wydarzenia.

Tak właśnie myślałem, że już na samym początku strzeliłem sobie w kolano.

Mógłbyś mi tylko łopatologicznie podpowiedzieć jak przefiltrować informację jak już będę operował id userów, bo jestem lekko zielonkawy w te klocki.
Zakładając że teraz wszystko będzie wyglądało tak :[/quote]
Kod PHP:
$who "1, 2, 3, 4"

Oczywiście bardzo dziękuję za pomoc Smile


RE: usunięcie wyrazu z komórki tabeli - msx83 - 19-08-2013

Hej,
najprościej to:
Kod PHP:
$who "ania, tomek, marta, hubert";

$tablica explode(", "$who);

unset(
$tablica[1]);//numer odpowiadający pozycji w tablicy

$tablica2 implode(", "$tablica);

echo 
$tablica2;//ania, marta, hubert 

I tak samo w przypadku User ID
Z tym, że najlepiej to chyba w jakiejś funkcji zamknąć np:
Kod PHP:
function filtrowanie($who$nr) {
    
$tablica explode(", "$who);
    unset(
$tablica[$nr]);
    
$tablica2 implode(", "$tablica);
    return 
$tablica2;

Jedyny minus tej funkcji to taki, że musisz znać pozycję elementu w tablicy, tak więc trzeba by rozbudować tą funkcję o możliwość usuwania po podaniu id usera.


RE: usunięcie wyrazu z komórki tabeli - Engine - 20-08-2013

Np. id usera który się wypisuje z imprezy:
$id_user = '2, '

zapytanie do mysql:
Kod:
UPDATE calendar SET even_who = REPLACE(even_who, $id_user, '') WHERE id=1
i tak mamy 1 zapytanie i bez wałkowania tablicy w php


RE: usunięcie wyrazu z komórki tabeli - harvester2001 - 20-08-2013

Engine

Bardzo dziękuję za pomoc, jak zwykle działa świetnie Smile

msx83

Dzięki wielkie, dzięki twoim sugestiom wpadłem na dobry pomysł Smile