Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]przeszukanie wszystkich rekordów pod kątem danego warunku
Forum PHP.pl > Forum > Przedszkole
agata
Witam,
po raz kolejny proszę o pomoc. Sama nie mogę dojść do tego jak to zrobić.

Mam tabelę Klient i tabelę Samochod.
Klient może mieć parę samochodów. Chcę zrobić usuwanie Klienta, jednak żeby było to możliwe tylko w momencie jeśli samochodu nie ma w warsztacie.

Samochód ma parę stanów (przyjęty, naprawa, naprawiony, wydany).

Ogólnie wiem jak to napisać, nie wiem tylko jak przeszukać rekordy pod kątem danego warunku.

mam coś takiego:

  1. $klient = $_POST['klient'];
  2.  
  3. $query = mysql_query("Select IdSamochodu, Stan, Rejestracja from Samochod Where IdKlienta = '$klient'") or die (mysql_error('Nie mogę wyszukać samochodu wybranego klienta.'));
  4. $ile = mysql_num_rows($query);
  5.  
  6. if ($ile >0)
  7. {
  8. for ($i=0;$i<$ile;$i++)
  9. {
  10. $row = mysql_fetch_array($query);
  11. $stan = $row['Stan'];
  12. $rejestracja = $row['Rejestracja'];
  13.  
  14. }
  15.  
  16. }

Wyciągam wszystkie samochody danego Klienta i teraz nie wiem jak sprawdzić wszystkie wyniki żeby móc usunąć klienta lub nie, mniej więcej coś takiego osiągnąć:
  1. if ($stan != 'wydany') // sprawdzenie czy któryś z samochodów nie został wydany
  2. {
  3. echo 'nie mogę usunąć klienta ....'.$rejestracja; // komunikat + wyświetlenie które auto nie spełnia warunku
  4. }
  5. else
  6. {
  7. $query = mysql_query("Delete Klient.....");
  8. if ($query)
  9. {
  10. echo 'Klient usunięty';
  11. }
  12. }


Bardzo proszę o pomoc, jak przeszukać wszystkie wyniki żeby sprawdzić czy wszystkie auta zostały wydane.
piotrooo89
ustaw klucze obce. bo jak usuniesz klienta to zostaną jakieś wolne samochody nie wiadomo kogo.
lukaszgolder
  1. DELETE FROM `Samochod` WHERE `IDKlienta`=6 AND `Stan` = 'wydany'

  1. if(mysql_affected_rows() == 1) {
  2. // usunięto
  3. } else {
  4. // nie usunięto
  5. }
exood
hej,
rozumiem, że w tabeli Samochody masz zapisane ID klienta, do którego samochód jest przypisany.
Chcesz usunąć klienta o jakimś ID (dajmy na to 555 winksmiley.jpg ) więc wybierasz z tabeli Samochody
  1. SELECT * FROM samochody WHERE id_klient = 555 AND STATUS <> 'wydany'

jeżeli wynik zwróci 0 rekordów - usuwasz klienta w przeciwnym wypadku masz w wyniku samochody które nie spełniają warunku.
mam nadzieję, że o to chodzi smile.gif
agata
W bazie są klucze obce, także nie ma możliwości że coś zostanie usunięte ot tak.

Nie przypuszczałam że rozwiązanie jest takie proste, wystarczyło tylko dodać and w selecie biggrin.gif

dzięki wielkie smile.gif
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.