Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z dodaniem danych do bazy MySQL
sebap123
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 26.08.2009
Skąd: Szczecin

Ostrzeżenie: (10%)
X----


Mam pewien problem z dość zawiłą bazą danych. Chciałbym, żeby wszystko działo na dwóch tabelach -> jedna orders, a druga carts. W momencie dodania ,rekordu chce aby w orders pojawiało się (jeśli jeszcze nie istnieje): cartid i user. Cartdid jest tworzony z randoma a user pobierany zał, czy ma sesji. I takie coś ma byc tylko raz. A w carts ma się dla każdego rekordu tworzyć jeden wiersz ze stałym cartid. Wymyśliłem, żeby skrypt najpierw sprawdz już coś z tym userem w ordersach i potem pobierał z niego cartid i w nim umieszczał dane w carts. No i wszystko działa, oprócz własnie pobierania cartid z orders. Teraz nie wiem co jest nie tak. Tak ten fragment skryptu wygląda:
  1. else if($_GET['op']==1&&$_GET['op']!=null){
  2. $test0 = mysql_query("SELECT FROM orders WHERE user='".$_SESSION['user']."'");
  3. if(mysql_fetch_array($test0)<1){
  4. $dodajc = mysql_query("INSERT INTO carts (cartid, productid, quantity)
  5. VALUES ('".$cart_id."', '".$pr."', '7')");
  6. $test = mysql_query("SELECT FROM orders (cartid, user)
  7. VALUES ('".$cart_id."', '".$_SESSION['user']."')");
  8. if(mysql_fetch_array($test)<1){
  9. $dodaj_usr = mysql_query("INSERT INTO orders (cartid, user)
  10. VALUES ('".$cart_id."', '".$_SESSION['user']."')");
  11. }}
  12. else{
  13. $cart=mysql_fetch_array($test0);
  14. $dodajc = mysql_query("INSERT INTO carts (cartid, productid, quantity)
  15. VALUES ('".$cart['cartid']."', '".$pr."', '7')");
  16. }
  17. header("Location: twoj-koszyk.php?podstrona=aktualnie-w-koszyku&msg=1");
  18. }


W tabeli carts ląduje mi wszystko oprócz własnie cartid. Jest tylko pusta komórka. Co jest nie tak w tym skrypcie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Quadina
post
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 38
Dołączył: 1.12.2010
Skąd: Wrocław

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


O święta bogini Quapre...
  1. // po co && i !=null jak sprawdzales czy jest rowne 1?
  2. else if($_GET['op']==1&&$_GET['op']!=null){
  3. // stosuj gwiazdkę po SELECT, żeby nie robić bazie sieczki z dupy i poprawi to trochę czytelność Twojego kodu
  4. $test0 = mysql_query("SELECT FROM orders WHERE user='".$_SESSION['user']."'");
  5. // co to a sprawdzanie czy tablica jest mniejsza od 1? mysql_fetch_array() nie zwraca ile jest elementów tablicy. Wystarczy sprawdzić czy jest
  6. if(mysql_fetch_array($test0)<1){
  7. $dodajc = mysql_query("INSERT INTO carts (cartid, productid, quantity)
  8. VALUES ('".$cart_id."', '".$pr."', '7')");
  9. $test = mysql_query("SELECT FROM orders (cartid, user)
  10. VALUES ('".$cart_id."', '".$_SESSION['user']."')");
  11. if(mysql_fetch_array($test)<1){
  12. $dodaj_usr = mysql_query("INSERT INTO orders (cartid, user)
  13. VALUES ('".$cart_id."', '".$_SESSION['user']."')");
  14. }}
  15. else{
  16. // wyciagasz kolejny element z bazy juz wyciagajac go wczeniej w ifie, dostaniesz nulla, albo pusta tablice (nie pamietam jak to tam się dzieje jak już się elementy wyciągane z bazy skończą)
  17. $cart=mysql_fetch_array($test0);
  18. // i tutaj dodajesz cartid do bazy gdzie linijke wczesniej dostales pusta zmienna, zatem nie dziwne, ze do bazy za kazdym razem dodaje sie pusty string
  19. $dodajc = mysql_query("INSERT INTO carts (cartid, productid, quantity)
  20. VALUES ('".$cart['cartid']."', '".$pr."', '7')");
  21. }
  22. header("Location: twoj-koszyk.php?podstrona=aktualnie-w-koszyku&msg=1");
  23. }


Więc to co musisz zrobić to poprawić trochę logikę tego co napisałeś, zamienić to $cart=mysql... na coś co ma sens, bo tutaj nie ma go najmniejszego oraz zamienić w dodawaniu do bazy (opcja nie mamy danych w bazie) zmiennej $cart_id.
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 8.10.2025 - 21:22