ύστερα από μια προσπάθεια για μεταφορά προϊόντων από ενα site στο δικό μου με γέφυρα, εξαφανίστηκαν όλα τα προϊόντα από το site και το admin.
Στην βάση δεδομένων όμως τα προϊόντα φαίνονται κανονικά.
Τι μπορώ να κοιτάξω αρχικά? Οποιαδήποτε ιδέα γιατί είναι πρόβλημα μεγάλο.
Έκανες export την παλιά;
Έκανες το αρχείο import στην νέα;
Μετά μπήκες στο config.php και admin/config.php στο site και έβαλες τα στοιχεία της νέας βάσης;
Πως τα πέρασες ακριβώς ?
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
Μόλις έγινε αυτό, οι περιγραφές των κατηγοριών εμφανίζουν πλέον κινέζικα και χάθηκαν όλα τα παλιά προϊόντα που είχα.
Τα οποία δεν εμφανίζονται ούτε στο admin.
Στην βάση όμως μέσα φαίνονται κανονικά και έχουν status 1.
Επίσης έλεγξες αν η γέφυρα υποστηρίζει πολλές γλώσσες ?
Στην έσχατη αν δεν βρεις λύση με το extension, μπορείς - με περισσότερο κόπο - να κάνεις export τα tables του παλιού καταστήματος σε csv από το phpmyadmin
- να τα ανοίξεις σε ένα excel,
- να κάνεις τις απαραίτητες διορθώσεις στη δομή των στηλών
- να το σώσεις σαν csv και να το κάνεις import ξανά από το phpmyadmin στο νέο
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
Μάλλον έχει γίνει λάθος όταν έπαιρνε τα δεδομένα με την κωδικοποίηση. Μπορεί να γίνει κάτι για αυτό?
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
- Κάνε export το προβληματικό table σε csv
- Μετέτρεψε τα πάντα σε urf8 σώσε το σαν διαφορετικό αρχείο και άνοιξε το σε excel
- Ξανάνοιξε το ίδιο csv σε excel χωρίς να μετατρέψεις τίποτα
- Επίλεξε τη στήλη που είχε πρόβλημα από το πρώτο excel αντίγραψε και επικόλλησε τη στο δεύτερο
- Σώσε και ανέβασε το στο OC από phpmyadmin
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
Πήρα το το προβληματικό table product_decription με export, έπρεπε να γίνει export σε ISO-8859-7 για να μπορέσω να το μετατρέψω μετά σε utf-8 και να φαίνονται οι περιγραφές των προϊόντων σωστά, αν και έτσι μου χάλασε τα υπόλοιπα του πίνακα (δηλαδή όνομα, και άλλα) αλλά δεν με ενδιέφεραν αυτά γιατί ήθελα να κρατήσω και να μεταφέρω μόνο τις περιγραφές.
Το έκανα import σε έναν νέο πίνακα στην βάση με όνομα product_description1 και στην συνέχεια με το εξής query στην mysql αντικατέστησα τις παλιές περιγραφές μόνο και άφησα τις υπόλοιπες στήλες ίδιες:
Code: Select all
update product_description, product_description1
set product_description.description = product_description1.description
where product_description.product_id = product_description1.product_id
Και όλα αυτά έγιναν γιατί δεν υπήρχε σωστό backup.
Code: Select all
UPDATE product SET status = 0 WHERE product_id > 2729;
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
Εάν γίνει μεταφορά των προϊόντων από παλαιότερη βάση σε νέα βάση, θα πρέπει να συμπληρωθούν όλα τα έξτρα πεδία που μπορεί να έχει η νέα βάση, αλλιώς δε φαίνονται πουθενά! Είναι γεγονός και συμβαίνει συχνά σε αναβαθμίσεις.
Από κει και πέρα εάν η μεταφορά γίνει μέσω SQL script ΠΑΝΤΑ κάνουμε export σε UTF-8 και Import αντίστοιχα σε UTF-8, αφού πρώτα η βάση που δημιουργήσαμε έχει collation UTF8_GENERAL_CI.
Τέλος, εάν η μεταφορά γίνει με PHP Script χειροκίνητα, να θυμάστε πάντα ότι όταν συνδέεται το script με τη βάση η πρώτη εντολή να είναι η:
Code: Select all
SET NAMES utf8

Κωνσταντίνε θα ήθελα να προσθέσω ότι η λύση που προτείνεις, σύμφωνα με το εγχειρίδιο της PHP αλλά και στο βιβλίο High Performance MySQL (σελ 606), δεν είναι η καλύτερη μέθοδος και μπορεί να είναι ενίοτε επισφαλής. Ενώ την ίδια μέθοδο (SET NAMES utf8) χρησιμοποιούν πολλές εφαρμογές (συμπεριλαμβανομένου και του Opencart), δεν είναι η προτεινόμενη μέθοδος ορισμού του character set. Επίσης το SET NAMES δίδεται με sql query και είναι πολύ πιο αργό σε επαναλαμβανόμενες κλήσεις του script, ενώ το mysqli_set_charset απευθύνεται στο API.SET NAMES utf8
Η προτεινόμενη μέθοδος σύμφωνα με το εγχειρίδιο της PHP είναι η ακόλουθη:
Code: Select all
$mysqli->set_charset('utf8');
Παραπέμπω σε σχετικές αναλύσεις του manual της php και του O'Reilly
http://gr2.php.net/manual/en/mysqlinfo. ... harset.phpAnother common
garbage query is SET NAMES UTF8, which is the wrong way to do things anyway (it
does not change the client library’s character set; it affects only the server). If
your application uses a specific character set for most of its work, you can avoid
the need to change the character set by configuring it as the default
Example #1 Problems with setting the character set with SQLCaution
The character set and character escaping
The character set should be understood and defined, as it has an affect on every action, and includes security implications. For example, the escaping mechanism (e.g., mysqli_real_escape_string() for mysqli, mysql_real_escape_string() for mysql, and PDO::quote() for PDO_MySQL) will adhere to this setting. It is important to realize that these functions will not use the character set that is defined with a query, so for example the following will not have an effect on them:
Code: Select all
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
// Will not affect $mysqli->real_escape_string();
$mysqli->query("SET NAMES utf8");
// Will not affect $mysqli->real_escape_string();
$mysqli->query("SET CHARACTER SET utf8");
// But, this will affect $mysqli->real_escape_string();
$mysqli->set_charset('utf8');
?>
Caution
Security: the default character set
The character set must be set either at the server level, or with the API function mysqli_set_charset() for it to affect mysqli_real_escape_string(). See the concepts section on character sets for more information.
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
Επισης, για να μην ανοιγω αλλο θεμα και επειδη λογικα εχει να κανει με την βαση δεδομενων, μου εχει χαθει απο τα προιοντα η διαθεσιμοτητα, ειναι κενη ενω στο admin ειναι ορισμενη κανονικα για καθε προιον.
Υπαρχει κατι να κοιταξω?
Μετά, στη βάση, στο table stock_status, δες ποιο stock id είναι για προϊόντα σε απόθεμα και έλεγξε αν όλα τα προϊόντα στη βάση σε έχουν αυτό το stock id (αλλιώς όρισε το ίδιο stock id που έχει οριστεί για προϊόντα σε απόθεμα σε όλα τα προϊόντα με τη μέθοδο που ήδη γνωρίζεις).
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
Κάτι είχε πάει πολύ στραβά με το backup, ευτυχώς ένα ένα διορθώνονται.
Σας ευχαριστώ όλους για την βοήθεια σας.
Υ.Γ. Αρχίζει να μου αρέσει η mysql, είναι σοβαρό αυτό?


PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart

Για να μην ξεφεύγουμε από το θέμα και να έχουμε κάτι να ασχολούμαστε

υπάρχει περίπτωση να μπορέσω να κάνω export τον πίνακα product, για να αφαιρέσω με κάποιο τρόπο όποια περίεργη μορφοποίηση υπάρχει στις περιγραφές και να τον ξανά εισάγω?
Το λέω αυτό γιατί μάλλον οι περιγραφές μου δημιουργούν πρόβλημα στο xml για το skroutz. Και θα πρέπει να τις περνάω από το notepad πρώτα ώστε να φύγει η μορφοποίηση αλλά είναι αδύνατο για τόσα προϊόντα.
Γίνεται κάτι τέτοιο ή είναι τις φαντασίας μου?
2) Επίσης, πρέπει να φτιάξεις ένα php script που θα φορτώνει αυτόματα ένα ένα τα προϊόντα και θα αφαιρεί τα entities και ότι άλλο "ενοχλεί" και θα ξανα αποθηκεύει στη βάση.
Users browsing this forum: DuckDuckGo [Bot] and 5 guests