Modyfikacja skryptu zakupu na sklepie

0

Witam

Chciałbym zmodyfikować pewien skrypt na sklepie dzięki któremu można złożyć zamówienie do kontaktu tak aby klient mógł dodawać adres dostawy. Bo teraz klient jak składa zamówienie to przychodzi email z zamówieniem oraz do panelu zarządzania przychodzi zamówienie ale bez adresu klienta.

I dopisałem do skryptu parę linijek


array('delivery_street_address', $filtr->process($_POST['ulica']))


define('ULICA_KLIENTA', $filtr->process($_POST['ulica']));


  echo '<span>' . $GLOBALS['tlumacz']['ULICA_KLIENTA'] . ' <em class="required"></em></span>';
                
                echo '<input type="text" name="ulica" id="ulica" style="width:80%" size="20" value="" class="required" />';
            
            echo '</p>';

a cały plik tutaj wrzuciłem http://wklej.org/id/2988719/

I problem polega na tym że po złożeniu zamówienia jest błąd

"Zapytanie nie zostalo wykonane poprawnie

Kod bledu: 1054

Opis bledu: Unknown column 'delivery_street_address' in 'field list'

Zapytanie: insert into orders_fast(customers_name,customers_telephone,delivery_street_address,orders_fast_products_id,orders_fast_products_stock_attributes,date_purchased,products_price,products_price_tax,products_final_price_tax,orders_fast_status,orders_fast_currencies_id) values ('gdsggds','test','fsaifsaoijfa','4256','',now(),'89.35','109.90','109.90','1','1')"

0

Abstrahując od tego, że w tym skrypcie absolutnie wszystko jest źle od podstaw - problem jest w tym, iż nie możesz dodać danych do kolumny, która w bazie nie istnieje (o czym wyraźnie informuje Cię komunikat błędu).

0

No rozumiem ale powinno być w bazie bo podejrzałem w innym pliku sklepu który jest odpowiedzialny za edycję adresu w zamówieniach że istnieje parametr "delivery_street_address"

Ale chodzi o cały skrypt że jest źle czy linijki które dodałem?

Mogę wrzucić plik z którego wziąłem ten parametr.

0

Cały skrypt do kosza generalnie - brak zastosowania jakiegoś MVC, polskie nazewnictwo (...).

Odnośnie problemu: być może pomyliłeś relacje (tj. ta kolumna istnieje, ale w innej tabeli) bądź popełniłeś literówkę.

0

Tylko jak namierzyć tą tabele? Szukałem w MySQL ale nie mogę znaleźć a przecież musi gdzieś być tabela z adresami bo kupując przez koszyk klienci podają adresy itd.

Tu wklejam plik z którego skorzystałem z tego parametru ( jest to plik odpowiadający za zamianę adresu w zamówieniach )

http://wklej.org/id/2988752/

0
  1. Kod to dramat
  2. select * from information_schema.columns where column_name = 'delivery_street_address'
0

Wykonałem zapytanie i uzyskałem taką informację:

Static analysis:

1 błędów zostało znalezionych podczas analizy.

Unexpected beginning of statement. (near "select * from information_schema.columns where column_name = 'delivery_street_address'" at position 0)
Zapytanie SQL: Dokumentacja

select * from information_schema.columns where column_name = 'delivery_street_address'

MySQL zwrócił komunikat: Dokumentacja

#1064 - Something is wrong in your syntax obok '`select * from information_schema.columns where column_name = 'delivery_street_a' w linii 1

Może dlatego że w panelu mysql.nazwa.pl jest oprócz information_schema druga baza z której korzysta sklep?

0

A gdzie Ty tego SQLa wykonałeś? Nie wkradł Ci się na początku zapytania jakiś znak? Wygląda na spację, ale to może być cokolwiek innego dziwnego. Masz jakiś znak przed selectem.

0

Wykonałem w panelu mysql na nazwie "Uruchom zapytanie/zapytania SQL na serwerze "mysql.nazwa.pl":"

Tyle że tam mam dwie bazy information_schema i druga z której korzysta sklep.

0

@Wojciech87 no nie wygłupiaj się, przecież widzisz z errorloga że skopiowałeś przypadkiem znak ` na początku zapytania...

0

Tak tyle że próbowałem i bez tego i też jest błąd

Static analysis:

1 błędów zostało znalezionych podczas analizy.

Ending quote ' was expected. (near "" at position 97)
Zapytanie SQL: Dokumentacja

select * from information_schema.columns where column_name = 'delivery_street_address LIMIT 0, 25

MySQL zwrócił komunikat: Dokumentacja

#1064 - Something is wrong in your syntax obok ''delivery_street_address LIMIT 0, 25' w linii 1

1

Jezu chłopie ty serio nie potrafisz skopiować poprawnie jednej linijki tekstu? I jeszcze teraz niby "developujesz" coś w tym sklepie a nie umiesz podstaw SQLa? WTF? Teraz uciąłeś znak ' na końcu zapytania. Brak mi słów.

0

To z pośpiechu teraz nie zauważyłem. Poszło.

kolumna delivery_street_adress jest w tabeli orders

0

Dobrze tylko co teraz? Muszę dopisać polecenie żeby tabela została załadowana?

np. $GLOBALS['db']->insert_query('orders' , $pola);

0

Oezu - nikt z nas nie wie jak dziala ten Twój dziwny framework, zatem nie jesteśmy w stanie napisać Ci cokolwiek więcej ponad to, abyś wyrzucił cały ten kod i wziął się za naukę na przykład Symfony :P

0

Rozumiem tylko zależy mi na tej modyfikacji i nie wiedziałem że dopisanie tej możliwości będzie tak skomplikowane. Owszem formularz zrobiłem tak że jest możliwość podawania adresu tylko kwestia by to zapisywało się do bazy i było uwzględniane w panelu zarządzania.

0

@Wojciech87 nie no to nie będzie takie proste skoro ten formularz zapisuje dane do ZUPEŁNIE INNEJ TABELI. Możesz sobie do tej tabeli dodać brakującą kolumnę, albo spróbować zrozumieć czemu w ogóle są tam dwie tabele. Ale ten kod to jest dramat i zalecałbym go zaorać i użyć jakiegoś porządnego skrypty albo napisać to od nowa. Bo teraz modyfikacje do tego to tzw "rzeźba w brązie".

0

Dobrze też właśnie myślę że jedyne najszybsze wyjście to dodanie kolumny. Tylko oczywiście gwarancji nie ma czy po dodaniu kolumny do tabeli orders_fast, kolumna o tej samej nazwie w tabeli orders będzie działać prawidłowo?

I czy kolumnę dodaje się po prostu klikając dodaj w panelu phpMyAdmin?
title

0

Tak, można tak dodać kolumnę, ale nie, to nie będzie działać dobrze jeśli gdzieś masz selecty joinujące te tabele. Bo pewnie będzie błąd z niejednoznacznością kolumny.

0

To strasznie zamknięty jest ten skrypt bo nie można nic nowego dodać. A czy jest możliwość żeby tylko w formie jakiegoś komentarza dodawało adres dostawy wpisany przez klienta? Żeby to był zwykły statyczny tekst bez tabel itd. żeby osoba co przyjmuje zamówienie mogła na podstawie tego co klient wpisał stworzyć zamówienie ręcznie w programie rachunkowym.

1

No skrypt to jakaś masakra i wygląda jak pisany przez gimnazjaliste po 3 komandosach ;)
Z tym komentarzem to rozumiem że żart? Bo przecież GDZIEŚ te dane musisz zapisać...

0

To może stworzyć nową kolumnę o unikalnej nazwie i informacje od klienta o adresie przypisać do niej? Czy takie rozwiązanie raczej nie będzie zbyt dobre?

1 użytkowników online, w tym zalogowanych: 0, gości: 1