Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][sql] problem ze sprawdzeniem...
gojira
post 27.11.2007, 11:35:00
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 14.10.2007

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


witam, otoz chce mam usuwanie pewnych elementow z bazy (dziala) ale nei wiem jak zrobic sprawdzenie, ze jezeli element ktory chce usunac jest w bazie uzywany (czyli jest w bazie) to nie usuwa i wywala ostrzezenie.

np. w pole tekstowe wpisuje slowo "lama" . i jezeli to slowo jest w bazie w kolumnie rodzaje, to nie usuwa. niestety nie wiem jak zrobic takie sprawdzenie

zrobilem z ifem
  1. <?php
  2. $rodzaj="lama";
  3. if (!(`Rodzaj`=='$rodzaj'))
  4. ?>

ale przy usuwaniu mam cos takiego:
Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /homel/informatyka/2004/ID/m/makowsm0/public_html/zabawa/usunrodz.php on line 108

wychodzi ze to nie dziala, gdyz mi usunelo z bazy produkt, pomimo iz byl w kolumnie rodzaj a wiec nie powinno go usunac
Go to the top of the page
+Quote Post
kossa
post 27.11.2007, 11:49:15
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


Pokaż swój kod bo coś namotałeś i to mocno.

Do szukania i kasowani musisz użyć zapytania i słowa kluczowego where np:

  1. <?php
  2. $sql="delete from tabela where kolumna='$rodzaj' ";
  3. ?>


Łukasz


--------------------
Go to the top of the page
+Quote Post
gojira
post 27.11.2007, 13:13:11
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 14.10.2007

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


zle zrozumiales, zapytanie mam zeby usunac smile.gif usuwanie dziala

ale chodzi mi o to, aby sprawdzenie napisac, ze jak w tabeli `produkty` w kolumnie `rodzaje` jest to slowo wpisane w pole tekstowe, to zeby nie doszlo do usuniecia.
jedyny problem jaki mam to wlasnie skonstrulowanie takiego sprawdzenia. chcialem tym ifem alezapomnialem ze o `rodzaj` nie bylo sprecyzowane do jakiej tabeli to sie odnosi. no ale nie wiem jak to ma wygladac

edit: narazie jestem poza domem i nie mam dostepu do kodu, ale jak bede, pokaze co mam. tyle ze wszystko chodzi o to zapytanie lub warunek, ze jak to lsowo jest w tabeli, to zeby nie usuwalo.

Ten post edytował gojira 27.11.2007, 13:14:36
Go to the top of the page
+Quote Post
chlebik
post 27.11.2007, 15:52:21
Post #4





Grupa: Zarejestrowani
Postów: 113
Pomógł: 5
Dołączył: 12.09.2006
Skąd: Pruszków/Warszawa

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


Kod
$zapytanie = mysql_query(SELECT * FROM tabela WHERE rodzaj = 'lama', $linkDoBazy);

$wynik = mysql_num_rows($zapytanie);



Jesli nazwa 'lama' wystepuje w bazie to w zmiennej $wynik bedziesz mial 1 wiersz, jesli zas nie ma to bedzie to 0 lub FALSE (nie pamietam, doczytaj w manualu). Sprawdzasz zwrocona wartosc w prostym IFie i po problemie.



PS. Rozwiazanie proste jak kontrukcja gwozdzia, pewnie sa jakies madrzejsze funkcje wbudowane w PHP, ale nie chce mi sie ich teraz szukac smile.gif

Ten post edytował chlebik 27.11.2007, 15:53:17


--------------------
"Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog
KulturalnyChlebik
Go to the top of the page
+Quote Post
SirZooro
post 27.11.2007, 19:00:30
Post #5





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


Cytat(chlebik @ 27.11.2007, 15:52:21 ) *
Kod
$zapytanie = mysql_query(SELECT * FROM tabela WHERE rodzaj = 'lama', $linkDoBazy);

$wynik = mysql_num_rows($zapytanie);

Jesli nazwa 'lama' wystepuje w bazie to w zmiennej $wynik bedziesz mial 1 wiersz, jesli zas nie ma to bedzie to 0 lub FALSE (nie pamietam, doczytaj w manualu). Sprawdzasz zwrocona wartosc w prostym IFie i po problemie.
PS. Rozwiazanie proste jak kontrukcja gwozdzia, pewnie sa jakies madrzejsze funkcje wbudowane w PHP, ale nie chce mi sie ich teraz szukac smile.gif


Ludzie tak nie piszcie bo zabijecie kiedyś bazę nieoptymalnymi zapytaniami! Nie lepiej poprosić bazę aby policzyła ile jest rekordów i odczytać jedną liczbę zamiast wczytywać ileśtam(-dziesiąt, -set, -tysięcy albo i więcej) rekordów tylko po to aby sprawdzić ile ich jest? Do liczenia rekordów służy funkcja COUNT():

  1. SELECT COUNT(*) AS Ilosc FROM tabela WHERE rodzaj = 'lama'


--------------------
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: 14.06.2025 - 19:35