Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie rekordów i wykonanie warunku
Forum PHP.pl > Forum > PHP
kristaps
Witam, mam problem. Chciałbym wykonać import do MYSQL, tylko w określonym przypadku. Dlatego sprawdzam, czy dany rekord już występuje.

W bazie mam coś takiego:

id|komputer|cena

1|Samsung|2200
2|HP |2440
3|Samsung|2400
4|Samsung|2100

No i teraz mam 2 warunki:

1. Przed pętlą wykonuje zapytanie, czy występuje już komputer o danej nazwie, jeżeli nie to dodaje rekord do bazy.

2. No i tu mam problem:

  1. if ($baza["komputer"] == $komputer && $baza["cena"] != $cena){ // Wykonuje insert do bazy }


Czyli jeżeli zapytanie zwróciło mi np. 3 rekordy SAMSUNG, ale cena jest inna, to chciałbym wykonać zapytanie i dodać rekord. Problem w tym, że cały czas rekord jest dodawany, bo za każdym wykonaniem pętli mam jeszcze 2 inne rekordy.

Jak zatem wykonać warunek dla wszystkich wpisów w bazie?
lukaskolista
Kompletnie nie rozumiem tego warunku.
  1. $sql = "SELECT * FROM tabela WHERE komputer = '".mysql_real_escape_string($komputer)."' AND cena = ".(float)$cena;
  2. $result = mysql_query($sql);
  3. if (mysql_num_rows($result) === 0)
  4. {
  5. // Dodawanie rekordu do bazy...
  6. }
mmmmmmm
W tabeli ustaw UNIQUE na komputer + cena i użyj polecenia REPLACE. Jak będzie, to będzie, a jak nie to doda...
lukaskolista
IMO samo REPLACE jest bez sensu, bo warto by bylo uzytkownika poinformowac, ze probuje nadpisac dane. Dane nalezy nadpisac dopiero po swiadomym zaakceptowaniu tego przez uzytkownika, inaczej bedziesz mial mase maili ze cos zniknelo, bo oni przeciez dodali produkt po cenie x a teraz ma cene y itp.
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.