PDA

Zobacz pełną wersję : Dodanie nowego pola w tabeli bazy danych



erper
12-12-2011, 09:44
Witam,
Chciałbym w jednej z tabel bazy dodać nowe pole liczbowe, ale mam z tym problem, bo jak - korzystając z phpmyadmin - wchodzę do konkretnej bazy i korzystając z zakładki SQL wpisuję polecenie:

ALTER TABLE 'stds_vm_shipping_rate' ADD 'shipping_rate_order_value_start' DECIMAL (10,2) NOT NULL;

to próba wykonania zwraca następujący komunikat o błędzie składni:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''stds_vm_shipping_rate' ADD 'shipping_rate_order_value_start' DECIMAL(10,2)' at line 1

Nie jestem specjalnie biegły w tym temacie, więc będę wdzięczny za podpowiedź gdzie tkwi błąd.

erper

Jola
12-12-2011, 14:41
Witam,
musi być NULL - nie NOT NULL lub zdefiniowana wartość domyślna np: NOT NULL DEFAULT '00.00'

erper
12-12-2011, 19:04
Witam,
Dziękuję za cenną wskazówkę. Pomogło. Pola w tabeli zostały dodane, ale ..... Zrobiłem to, bo chciałem sobie zmodyfikować formularz dodawania stawek za wysyłkę w Virtuemart. Teraz korzystam z rozwiązania warunkującego metodę wysyłki od rodzaju płatności (StandardShippingPaymentRestriction). Chciałbym to rozwiązanie trochę zmodyfikować, tak żeby jako dodatkowy atrybut była brana wartość zamówienia (a że mam dużo czasu, więc mogę się uczyć i kombinować).
Zacząłem od próby zmodyfikowania formularza "Dodaj stawkę wysyłkową" i w tym celu utworzyłem dwa dodatkowe pola w tabeli bazy danych stds_vm_shipping_rate, a mianowicie pola "shipping_rate_order_value_start" i "shipping_rate_order_value_end".
Następnie zmodyfikowałem plik językowy administrator/components/com_virtuemart/languages/shipping/english.php, dodając wpisy:
'PHPSHOP_RATE_FORM_ORDER_VALUE_START' => 'Lowest value'
'PHPSHOP_RATE_FORM_ORDER_VALUE_END' => Highest value'
W dalszej kolejności zmodyfikowałem plik: administrator/components/com_virtuemart/html/shipping.rate_form, dodając linie kodu formatujące i definiujące nowe pola formularza:
<tr>
<td width="21%" ><div align="right"><strong><?php echo $VM_LANG->_('PHPSHOP_RATE_FORM_ORDER_VALUE_START') ?>:</strong></div></td>
<td width="79%" >
<input type="text" class="inputbox" name="shipping_rate_order_value_start" size="32" maxlength="255" value="<?php $db->sp("shipping_rate_order_value_start") ?>">
</td>
</tr>
<tr>
<td width="21%" ><div align="right"><strong><?php echo $VM_LANG->_('PHPSHOP_RATE_FORM_ORDER_VALUE_END') ?>:</strong></div></td>
<td width="79%" >
<input type="text" class="inputbox" name="shipping_rate_order_value_end" size="32" maxlength="255" value="<?php $db->sp("shipping_rate_order_value_end") ?>">
</td>
</tr>
Dokonałem też dodatkowych wpisów w pliku:
administrator/components/com_virtuemart/classes/ps_shipping wskazujących na to, że istnieją dodatkowe pola w formularzu wprowadzania nowej stawki wysyłkowej.

Niestety, formularz dodawania stawek wysyłkowych wyświetla się w dotychczasowej wersji, tj. bez dodatkowych pól.

Czy z powyższych wywodów można wywnioskować gdzie zrobiłem błąd i jaki ?

erper