Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Dodanie elementów do tablicy
devbazy
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 4
Dołączył: 10.08.2009

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


Otóż zastanawiam się w jaki sposób wrzucić ilość pobranych elementów (ID) do tablicy, a następnie porównać je z tym pobranym za pomocą metody GET. Użytkownik ma do wyboru kilka obrazków (które są odnośnikami), wszystko działa jak należy, dopóki ręcznie nie wpisze własnej wartości w adresie - wtedy nie pokazuje się nic. Chciałbym jakoś zabezpieczyć taką ewentualność, a kompletnie nie wiem jak się za to zabrać, dlatego prosiłbym o jakieś wskazówki, przykładowy kod.
Go to the top of the page
+Quote Post
erix
post
Post #2





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




Cytat
Chciałbym jakoś zabezpieczyć taką ewentualność

Przestaw zmienną na false, daj gdzieś jeszcze die. (jaki opis, taka odpowiedź)

Mamy Ci odpowiedzieć bez jakiegokolwiek Twojego kodu...?
Go to the top of the page
+Quote Post
devbazy
post
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 4
Dołączył: 10.08.2009

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


Tak to mniej więcej wygląda.

  1. $query = mysql_query("SELECT * FROM tabela") or die (mysql_error());
  2.  
  3. while($rekord = mysql_fetch_array($query))
  4. {
  5. echo '<li><a href="index.php?site=img&id='.$rekord['img'].'"><img src="images/'.$rekord['img'].'.jpg" border="0" alt="" /></a></li>';
  6. }
  7.  
  8. if($_GET['site'] == 'img' && isset($_GET['id']))
  9. {
  10. $id = intval($_GET['id']);
  11. $update = mysql_query("UPDATE tabela2 SET img='".$id."' WHERE uzytkownik='".$_SESSION['user']."' ") or die (mysql_error());
  12. }


Pole img przechowuje wartości jako int.

Ten post edytował solid23 25.09.2009, 14:20:25
Go to the top of the page
+Quote Post
erix
post
Post #4





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




Cytat
Użytkownik ma do wyboru kilka obrazków (które są odnośnikami), wszystko działa jak należy, dopóki ręcznie nie wpisze własnej wartości w adresie - wtedy nie pokazuje się nic

Na przykład? Żadnego błędu wtedy nie wysypuje?
Go to the top of the page
+Quote Post
devbazy
post
Post #5





Grupa: Zarejestrowani
Postów: 93
Pomógł: 4
Dołączył: 10.08.2009

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


Wybrany obrazek, który jest odnośnikiem zostaje jeszcze później wyświetlany. Jeżeli któryś z nich zostanie wybrany normalnie - czyli poprzez kliknięcie w dany link, to wszystko jest w jak najlepszym porządku, a z kolei gdy ktoś wpisze w adresie przykładowo: index.php?site=img&id=3, bądź też 180000 - nie pokazuje się nic, bowiem pole img nie posiada takowej wartości. Po wpisaniu błędnej liczby, bądź też tekstu - w polu img, które znajduje się w tabela2 - zmienia się wartość na 0. Chciałbym zrobić to w taki sposób, że gdy ktoś wpisze błędną liczbę (różną od tych pobranych z tabeli "tabela") zwróci false, jednak by do tego dojść najpierw muszę wrzucić pobrane rekordy do tablicy, a następnie je porównywać z tym wybranym.

Mam nadzieję, że zrozumiesz, sam się już powoli motam.
Go to the top of the page
+Quote Post
erix
post
Post #6





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




Zrozumiałem, że zwraca Ci pustą stronę...

  1. if($_GET['site'] == 'img' && isset($_GET['id']))
  2. {
  3. $id = intval($_GET['id']);
  4. $update = mysql_query("UPDATE tabela2 SET img='".$id."' WHERE uzytkownik='".$_SESSION['user']."' ") or die (mysql_error());
  5. }

Dodaj tu sprawdzanie, czy w bazie (poprzednia tabela) taki rekord już istnieje. Możesz również zrobić to nieco wcześniej:

  1. while($rekord = mysql_fetch_array($query))
  2. {
  3. echo '<li><a href="index.php?site=img&id='.$rekord['img'].'"><img src="images/'.$rekord['img'].'.jpg" border="0" alt="" /></a></li>';
  4. }

Wyciągasz w końcu wszystkie rekordy, więc:
  1. daj zmienną ($jest) przed pętlą
  2. w pętli sprawdzaj, czy ID bieżącego jest zgodny z tym, co wysłałeś w URL - jeśli tak - $jest = true
  3. jeśli podasz zły kod w URI, zmienna $jest będzie w takim stanie, co przed pętlą - false
  4. dalej chyba wiesz, co robić (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
devbazy
post
Post #7





Grupa: Zarejestrowani
Postów: 93
Pomógł: 4
Dołączył: 10.08.2009

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


Cytat(erix)
Zrozumiałem, że zwraca Ci pustą stronę...


Wręcz przeciwnie. Po wpisaniu błędnej liczby/tekstu w adresie linku (przykład: index.php?site=img&id=cos /189000) - wartość pola img w tabeli tabela2 zmienia się na 0. W każdym bądź razie spróbuje jeszcze pokombinować, a jeżeli nic z tego nie wyjdzie, to cóż - odezwę się ponownie.

EDIT: Dzięki za zainteresowanie erix, leci pomógł.

Ten post edytował solid23 26.09.2009, 18:42:22
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 19:03