mgiota Δημοσ. 3 Δεκεμβρίου 2009 Δημοσ. 3 Δεκεμβρίου 2009 Γεια σας παιδιά έχω ένα πρόβλημα με μια απλή φόρμα που θέλω να δημιουργήσω στο osCommerce. (τα νεύρα μου) Να περιγράψω λίγο το πρόβλημα. Έχω ένα κουμπί το οποίο λέγεται ταξινόμηση, το οποίο όταν πατηθεί δείχνει μια λίστα με τα πρόσφατα προϊόντα και δίπλα στο καθένα υπάρχει ένα textfield με τον αντίστοιχο αριθμό ταξινόμησης. Όταν ο χρήστης πληκτρολογεί μια νέα τιμή τότε η νέα αυτή τιμή θα πρέπει να αποθηκεύεται στη βάση. Πρόκειται για ένα απλό post, και δεν μπορώ να καταλάβω τι κάνω λάθος. Για την ακρίβεια ό,τι τιμή και να βάλω δείχνει 0. Παρακάτω παραθέτω τον κώδικα της σελίδας order.php και της σελίδας order_result.php. Να πω ότι χρησιμοποίησα τις έτοιμες functions του osCommerce. order.php <?php include('includes/application_top.php'); $order_query = tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, pd.products_name, p.product_new, p.position, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.product_new='1' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by p.position asc limit " . MAX_DISPLAY_NEW_PRODUCTS); ?> <?php echo tep_draw_form('myform', FILENAME_ORDER_RESULTS, 'post', 'enctype="multipart/form-data"'); ?> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <?php while ($new_products = tep_db_fetch_array($order_query)) {?> <tr><td class="main"><?php echo $new_products['products_name'];?> <td> <?php echo tep_draw_input_field('position'.$new_products['products_id'].'', $new_products['position']);?> </td> </tr> <?php } ?> <tr> <td class="main" align="right"><?php echo tep_image_submit('button_preview.gif', IMAGE_PREVIEW) . ' <a href="' . tep_href_link(FILENAME_ORDER_RESULTS).'"></a>'; ?></td></tr></table> </form> order_result.php <?php include('includes/application_top.php'); $order_result_query = tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, pd.products_name, p.product_new, p.position, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.product_new='1' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by p.position asc limit " . MAX_DISPLAY_NEW_PRODUCTS); while ($myrow = tep_db_fetch_array($order_result_query)) { $idp=$myrow['products_id']; $state="position$idp"; //echo $state; $the_position=tep_db_prepare_input($HTTP_POST_VARS['$state']); echo $the_position; tep_db_query("update products set position ='".(int)$HTTP_POST_VARS["$state"]."' where products_id = '$idp'"); echo "update products set position = '".(int)$HTTP_POST_VARS["$state"]."' where products_id = '$idp'"; } if(!$order_result_query){?> <div class="announcewrong">Η ταξινόμηση δεν ολοκληρώθηκε. Υπήρξε κάποιο πρόβλημα στην επικοινωνία με τη βάση δεδομένων</div><br /> <?php } else {?> <div class="announceright">Η ταξινόμηση ολοκληρώθηκε με επιτυχία</div><br /> <?php } ?> **Να πω ότι κάθε textfield έχει όνομα p.x. positionXX όπου ΧΧ είναι ο αριθμός του products_id. Μπορεί κάποιος να εντοπίσει το πρόβλημα γιατί πραγματικά δεν καταλαβαίνω τι φταίει. Αυτός ο κώδικας εκτός osCommerce λειτουργεί κανονικά.
mgiota Δημοσ. 4 Δεκεμβρίου 2009 Μέλος Δημοσ. 4 Δεκεμβρίου 2009 Το έλυσα τελικά το πρόβλημα. Ξεφορτώθηκα τον κώδικα του osCommerce και χρησιμοποίησα τον standar κώδικα που χρησιμοποιεί κανείς για να συνδεθεί σε μια βάση, να κάνει ένα query , να πάρει την τιμή ενός πεδίου με POST και να το αποθηκεύσει στη βάση.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.