Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
usunięcie wyrazu z komórki tabeli
#1
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
Odpowiedz
#2
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
Odpowiedz
#3
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
Odpowiedz
#4
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.
Odpowiedz
#5
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
Odpowiedz
#6
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
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [PHP][MySQL] - Wtawianie danych tekstowych do tabeli przemysuaw 1 2,615 07-03-2013, 01:23
Ostatni post: Kartofelek
  phpmyadmin i klucz tabeli wsp 5 4,535 24-10-2012, 22:45
Ostatni post: Pedro84
  [MySQL][PHP] Problem z pobieraniem informacji z tabeli cryptarithm 3 3,397 29-05-2012, 12:40
Ostatni post: Marys
Sad [SQL] Pobieranie wiadomości z tabeli carkar 1 2,816 12-12-2011, 01:24
Ostatni post: R_Rafalsky
  Przekazanie wyświetlonego wyniku do innej tabeli atrapa 1 2,053 02-11-2011, 08:55
Ostatni post: Marys

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl