Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql] problem ze sprawdzeniem...
Forum PHP.pl > Forum > Przedszkole
gojira
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
kossa
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
gojira
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.
chlebik
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
SirZooro
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'
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.