Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt ulubionych w MySQL
mith
post 5.06.2006, 17:30:23
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

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


Witam
Chce zrobić coś w rodzaju ulubionych.

Wygląd bazy danych:
login: | haslo: | ulubione: |

login1 | haslo1 | 001,004,008,159 |
login2 | haslo2 | 251,244,238 |
login3 | haslo4 | 051,034 |
login4 | haslo4 | |
login5 | haslo5 | 201,057,035,137,204,465 |

Skrypt do otwierania tych ulubionych już mam.
A chce teraz zrobić coś aby była możliwość dodawania i usuwania danych z kolumny ulubione. Każda trzy cyfrowa nazwa np.: 004 oznacza 1 dział, działy są oddzielone , (przecinkiem)

Dzięki z góry.
Go to the top of the page
+Quote Post
erix
post 5.06.2006, 17:58:39
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




(dla wybranego rekordu)
  1. <?php
  2. //usuwanie
  3. $ulubione = explode(',', $rekord['ulubione']);
  4. unset($ulubione, array_search($do_wywalenia, $ulubione); 
  5.  
  6. if(isset($dodaj)){
  7. $ulubione[] = $dodaj;
  8. }
  9.  
  10. $do_zapisu = implode(',', $ulubione);
  11. ?>


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mith
post 5.06.2006, 18:49:19
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

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


Wielkie dzięki erix mogę dodawać ale jest problem z usuwaniem bo w linijce:

unset($ulubione, array_search($do_wywalenia, $ulubione);

wyświetla mi się taki błąd:
Fatal error: Can't use function return value in write context in F:\WebServ\httpd\ulubione.php on line 14
Go to the top of the page
+Quote Post
erix
post 5.06.2006, 19:20:06
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




LUDZIE, ALE GAFA, SORY!
  1. <?php
  2. unset($ulubione[array_search($do_wywalenia, $ulubione)]);
  3. ?>


zgubilem sie w nawiasach biggrin.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mith
post 5.06.2006, 21:12:05
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

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


Jeszcze raz wielkie dzięki erix ale mam jeszcze jedno pytanie. Mianowicie gdy ktoś już doda coś do tych ulubionych np.: 004 i potem doda jeszcze raz 004 to w bazie danych zostaje dodany podwójnie te same cyferki np.: 003,019,109,004,004 a jak można zrobić jakiś skrypt aby sprawdzał czy te cyferki się nie powtarzają?
Go to the top of the page
+Quote Post
em1X
post 5.06.2006, 21:29:00
Post #6





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


zmodyfikuj ten kawałek kodu

  1. <?php
  2. if(isset($dodaj)){
  3. $ulubione[] = $dodaj;
  4. }
  5. ?>


na ten

  1. <?php
  2. if (isset($dodaj) && !strpos(implode(" ", $ulubione)))
  3.  $ulubione[] = $dodaj;
  4. ?>


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
mith
post 5.06.2006, 21:55:40
Post #7





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

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


Zmodyfikowałem to, ale wyświetla mi się taki błąd:
Warning: Wrong parameter count for strpos() in F:\WebServ\httpd\ulubione.php on line 37
Go to the top of the page
+Quote Post
erix
post 5.06.2006, 22:52:16
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <?php
  2. if (isset($dodaj) && !strpos(implode(' ', $ulubione))){
  3.  $ulubione[] = $dodaj;
  4. }
  5. ?>

em1X zjadl jeden parametr biggrin.gif
(swoja droga, glodni dzisiaj jestesmy smile.gif)

poprawnie:
  1. <?php
  2. if (isset($dodaj) && strpos(implode(' ', $ulubione), $dodaj)!==false){
  3.  $ulubione[] = $dodaj;
  4. }
  5. ?>

(zmienilem drugi warunek, patrz manual: strpos" title="Zobacz w manualu php" target="_manual)


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mith
post 6.06.2006, 15:25:08
Post #9





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

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


Ale to też jakoś nie działa bo dodaje mi dalej takie same. Skrypt wygląda tak:
Zapisywanie:

  1. <?php
  2. $konto = mysql_query("SELECT * FROM konta WHERE login = '".$_SESSION['login']."' AND haslo = '".$_SESSION['haslo']."' LIMIT 1");
  3.  
  4. if ($row1 = mysql_fetch_array($konto)) { $db_kolumna=$row1["ulubione"]; }
  5.  
  6. if($db_kolumna) {
  7.  
  8. $db_dzielenie = explode(',', $db_kolumna);
  9.  
  10. if (isset($dodaj) && strpos(implode(' ', $db_dzielenie), $dodaj)!==false){
  11. $db_dzielenie[] = $dodaj;
  12. }
  13.  
  14. $zapisz = implode(',', $db_dzielenie);
  15.  
  16. } else { $zapisz = $dodaj; }
  17.  
  18. mysql_query("UPDATE konta SET `ulubione` = '".$zapisz."' WHERE login = '".$_SESSION["login"]."' AND haslo = '".$_SESSION['haslo']."' LIMIT 1");
  19. ?>


Ten post edytował mith 6.06.2006, 17:55:25
Go to the top of the page
+Quote Post
erix
post 7.06.2006, 16:49:29
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




ale gafa biggrin.gif
  1. <?php
  2. if (isset($dodaj) && strpos(implode(',', $db_dzielenie), $dodaj)==false){
  3. $db_dzielenie[] = $dodaj;
  4. }
  5. ?>


mozna jeszcze za pomoca array_search" title="Zobacz w manualu php" target="_manual


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mith
post 7.06.2006, 19:29:50
Post #11





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

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


No teraz to elegancko działa dzięki erix. Ale jest jeszcze jeden problem tym razem z usuwaniem z ulubionych. A problem polega na tym że jak np kliknę aby usunęło mi np.: 004 i np odświeżę stronę lub podam taką cyfrę której nie ma w bazie to usuwa mi pierwsze 3 cyferki czyli jak mam w bazie: 000,001,005,127 i uruchomi się plik ulubione.php?do_wywalenia=004 którego nie ma w bazie to wychodzi coś takiego 001,005,127 Jak można temu zaradzić?
Go to the top of the page
+Quote Post
erix
post 7.06.2006, 23:07:51
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <?php
  2. if(array_search($id_do_skasowania, $tablica)){
  3. instrukcja_do_kasowania();
  4. }
  5. ?>


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 18:19