$idaukcji = $c[0]; if($row3["id_auction"] === $c[0] && $row3["count"] === $c[5] && $row3["login"] === $c[2] && $row3["date"] === $unixtime_to_date){ } else if($row3["id_auction"] === $c[0] && $row3["login"] !== $c[2]){ $import = "INSERT INTO sold (id_auction,count,login,date) values('$Auction','$c[5]','$c[2]','$unixtime_to_date')"; // Import do bazy MYSQL } } else if($row3["id_auction"] != $c[0] && $row3["count"] != $c[5] && $row3["login"] != $c[2] && $row3["date"] != $unixtime_to_date){ $import = "INSERT INTO sold (id_auction,count,login,date) values('$Auction','$c[5]','$c[2]','$unixtime_to_date')"; // Import do bazy MYSQL } }
Załóżmy, że po wykonaniu skryptu mam w bazie 2 rekordy o tym samym id_auction:
id|id_auction|count|login|date
1|26179|1|szuki|2012-09-25
2|26179|3|kotis|2012-09-22
Gdy odpalę skrypt ponownie, to poniższy warunek nie jest już spełniony:
else if($row3["id_auction"] === $c[0] && $row3["login"] !== $c[2])
Ok, id_auction jest takie samo, ale są dwa loginy. A w założeniu funkcja ma omijać wszystkie wpisy o tym samym numerze i loginie. W tym przypadku warunek już nie jest spełniony, bo załóżmy w pętli porównywany jest aktualnie pobrany login, z tym 2 (a później na odwrót). Jak obejść ten problem (nie wiem jak to jaśniej napisać)? ID ma włączone auto_increment, także jest unikalne. Myślałem, że mógłbym zrobić to tak:
else if($row3["id_auction"] === $c[0] && $row3["login"] !== $c[2] && $row3["id"] !== NO WŁAŚNIE CO?)
Ewentualnie za każdym razem generować w pętli niepowtarzalny ciąg znaków, a wraz z importem przy spełnionych warunkach też dodawać klucz, np tak:
<?php ?>
Wtedy klucz na pewno będzie zawsze inny, no ale te rozwiązanie wydaje się najgorszym ze wszystkich. Chyba największy sens ma sprawdzanie ID, tylko jak wyciągnąć inne z bazy, by porównać wartości?
Wiem, że to zawiłe.
Z góry dzięki za pomoc, pozdrawiam.