Post by antstyl » Sat Sep 14, 2013 5:59 pm

Καλησπέρα,

ύστερα από μια προσπάθεια για μεταφορά προϊόντων από ενα site στο δικό μου με γέφυρα, εξαφανίστηκαν όλα τα προϊόντα από το site και το admin.
Στην βάση δεδομένων όμως τα προϊόντα φαίνονται κανονικά.

Τι μπορώ να κοιτάξω αρχικά? Οποιαδήποτε ιδέα γιατί είναι πρόβλημα μεγάλο.

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm

Post by alexharalam12270 » Sat Sep 14, 2013 6:23 pm

Φίλε δημιούργησες μια νέα βάση δεδομένων;
Έκανες export την παλιά;
Έκανες το αρχείο import στην νέα;
Μετά μπήκες στο config.php και admin/config.php στο site και έβαλες τα στοιχεία της νέας βάσης;

My Profile


New member

Posts

Joined
Sun Jul 14, 2013 3:05 pm
Location - Greece

Post by Opencart-Hellas » Sat Sep 14, 2013 6:24 pm

Το status σε όλα τα προϊόντα είναι 1 ?

Πως τα πέρασες ακριβώς ?

Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Athens, Hellas

Post by antstyl » Sat Sep 14, 2013 6:28 pm

Δεν δημιούργησα νέα βάση, απλά με κάποια γέφυρα προσπάθησα να περάσω νέα προϊόντα μέσα στην ήδη υπάρχουσα βάση δεδομένων.

Μόλις έγινε αυτό, οι περιγραφές των κατηγοριών εμφανίζουν πλέον κινέζικα και χάθηκαν όλα τα παλιά προϊόντα που είχα.
Τα οποία δεν εμφανίζονται ούτε στο admin.

Στην βάση όμως μέσα φαίνονται κανονικά και έχουν status 1.

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm

Post by Opencart-Hellas » Sat Sep 14, 2013 6:38 pm

Το πιθανότερο είναι η γέφυρα να έχει τα ίδια προβλήματα με encoding όπως με τα import/export tools που συζητούσαμε παλιά ... Αν δεν δω στο κώδικα πως λειτουργεί, δεν μπορώ να σου δώσω λύση. Πρέπει να ενοχλήσεις το developer που το έφτιαξε.

Επίσης έλεγξες αν η γέφυρα υποστηρίζει πολλές γλώσσες ?

Στην έσχατη αν δεν βρεις λύση με το extension, μπορείς - με περισσότερο κόπο - να κάνεις export τα tables του παλιού καταστήματος σε csv από το phpmyadmin
- να τα ανοίξεις σε ένα excel,
- να κάνεις τις απαραίτητες διορθώσεις στη δομή των στηλών
- να το σώσεις σαν csv και να το κάνεις import ξανά από το phpmyadmin στο νέο

Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Athens, Hellas

Post by antstyl » Sat Sep 14, 2013 9:33 pm

Επαναφέραμε την βάση δεδομένων σε προηγούμενο σημείο που είχε πάρει ο προγραμματιστής, εμφανίστηκαν τα προϊόντα κανονικά αλλά οι περιγραφές τους είναι στα κινέζικα.

Μάλλον έχει γίνει λάθος όταν έπαιρνε τα δεδομένα με την κωδικοποίηση. Μπορεί να γίνει κάτι για αυτό?

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm

Post by Opencart-Hellas » Sat Sep 14, 2013 10:40 pm

Εξαρτάται. Όταν βλέπεις τις περιγραφές από phpmyadmin, μπορείς να διαβάσεις τα κείμενα αλλάζοντας κωδικοποίηση ?

Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Athens, Hellas

Post by antstyl » Sat Sep 14, 2013 11:42 pm

Οχι παλι κινεζικα φαινονται.
Αλλα εκανα export τον πινακα αυτον μονο με αλλη κωδικοποιηση iso 8859-7 τον μετετρεψα σε utf8 και ανεβηκε αλλα χαλασε τα υπολοιπα. Υπαρχει τροπος να κανω export και import μονο καποια στηλη?

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm

Post by Opencart-Hellas » Sun Sep 15, 2013 6:21 am

Ναι,
- Κάνε export το προβληματικό table σε csv
- Μετέτρεψε τα πάντα σε urf8 σώσε το σαν διαφορετικό αρχείο και άνοιξε το σε excel
- Ξανάνοιξε το ίδιο csv σε excel χωρίς να μετατρέψεις τίποτα
- Επίλεξε τη στήλη που είχε πρόβλημα από το πρώτο excel αντίγραψε και επικόλλησε τη στο δεύτερο
- Σώσε και ανέβασε το στο OC από phpmyadmin

Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Athens, Hellas

Post by antstyl » Sun Sep 15, 2013 9:21 pm

Έκανα κάτι παρόμοιο.

Πήρα το το προβληματικό 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.

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm

Post by antstyl » Mon Sep 16, 2013 8:57 pm

Γνωρίζει κάποιος τι εντολή πρέπει να δώσω μέσα στην βάση ώστε να αλλάξω την τιμή του status από 1 σε 0 σε όσα προϊόντα έχουν product_id πάνω από 2730 στον πίνακα product?

Code: Select all

UPDATE product SET status = 0 WHERE product_id > 2729;
Είναι σωστό αυτό, για να σιγουρευτώ πριν το κάνω.

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm

User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Athens, Hellas

Post by botonakis » Tue Sep 17, 2013 3:55 pm

Ξέρω ότι κάποια πράγματα τα έχετε λύσει απλά θα ήθελα να προσθέσω κάτι που γνωρίζω.
Εάν γίνει μεταφορά των προϊόντων από παλαιότερη βάση σε νέα βάση, θα πρέπει να συμπληρωθούν όλα τα έξτρα πεδία που μπορεί να έχει η νέα βάση, αλλιώς δε φαίνονται πουθενά! Είναι γεγονός και συμβαίνει συχνά σε αναβαθμίσεις.

Από κει και πέρα εάν η μεταφορά γίνει μέσω SQL script ΠΑΝΤΑ κάνουμε export σε UTF-8 και Import αντίστοιχα σε UTF-8, αφού πρώτα η βάση που δημιουργήσαμε έχει collation UTF8_GENERAL_CI.

Τέλος, εάν η μεταφορά γίνει με PHP Script χειροκίνητα, να θυμάστε πάντα ότι όταν συνδέεται το script με τη βάση η πρώτη εντολή να είναι η:

Code: Select all

SET NAMES utf8
Τα γράφω εδώ αυτά γιατί βλέπω ότι πολλοί χρήστες συχνά μου λένε ότι έχουν το ίδιο πρόβλημα.

User avatar
Active Member

Posts

Joined
Tue Jan 24, 2012 7:55 pm
Location - Athens, Greece

Post by Opencart-Hellas » Tue Sep 17, 2013 5:55 pm

Ωραία, άντε να κάνουμε και λίγη κουβεντούλα μεταξύ μας οι developers ;D
SET NAMES utf8
Κωνσταντίνε θα ήθελα να προσθέσω ότι η λύση που προτείνεις, σύμφωνα με το εγχειρίδιο της PHP αλλά και στο βιβλίο High Performance MySQL (σελ 606), δεν είναι η καλύτερη μέθοδος και μπορεί να είναι ενίοτε επισφαλής. Ενώ την ίδια μέθοδο (SET NAMES utf8) χρησιμοποιούν πολλές εφαρμογές (συμπεριλαμβανομένου και του Opencart), δεν είναι η προτεινόμενη μέθοδος ορισμού του character set. Επίσης το SET NAMES δίδεται με sql query και είναι πολύ πιο αργό σε επαναλαμβανόμενες κλήσεις του script, ενώ το mysqli_set_charset απευθύνεται στο API.

Η προτεινόμενη μέθοδος σύμφωνα με το εγχειρίδιο της PHP είναι η ακόλουθη:

Code: Select all

$mysqli->set_charset('utf8');
Η σωστότερη λύση πάντως, όπου αυτό είναι εφικτό (VPS, Dedicated) είναι η απευθείας ρύθμιση του character set στο server.

Παραπέμπω σε σχετικές αναλύσεις του manual της php και του O'Reilly
Another 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
http://gr2.php.net/manual/en/mysqlinfo. ... harset.php
Caution
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:
Example #1 Problems with setting the character set with SQL

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.

Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Athens, Hellas

Post by antstyl » Tue Sep 17, 2013 6:22 pm

Σχετικα με το οτι κανουμε παντα export σε UTF-8 και εγω αυτο γνωριζω ως κανονα αλλα στην δικη μου περιπτωση, λογω καποιου μπερδεματος αυτο δεν γινοταν και επρεπε να γινει εξαγωγη σε Iso 8859-7 και μετα σε Utf-8 για να μετατραπουν τα κινεζικα σε ελληνικα και παλι. Δεν ξερω ακομα εαν ευθυνεται και ο κειμενογραφος που ειχα αλλαξει, γιατι μονο στις περιγραφες των προιοντων και σε οτι κειμενο ειχα με τον κειμενογραφο εγινε αυτο το μπερδεμα και παρατηρησα οτι στο html πισω απο καθε κειμενο δεν βγαζεις ακρη, ενω αν το γυρισω στον παλιο κειμενογραφο το html ειναι σωστο.

Επισης, για να μην ανοιγω αλλο θεμα και επειδη λογικα εχει να κανει με την βαση δεδομενων, μου εχει χαθει απο τα προιοντα η διαθεσιμοτητα, ειναι κενη ενω στο admin ειναι ορισμενη κανονικα για καθε προιον.
Υπαρχει κατι να κοιταξω?

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm

Post by Opencart-Hellas » Tue Sep 17, 2013 6:43 pm

Πήγαινε στο Σύστημα->τοπική προσαρμογή->κατάσταση αποθέματος και δες αν εκεί έχουν οριστεί οι καταστάσεις αποθέματος, αλλιώς όρισε τες.

Μετά, στη βάση, στο table stock_status, δες ποιο stock id είναι για προϊόντα σε απόθεμα και έλεγξε αν όλα τα προϊόντα στη βάση σε έχουν αυτό το stock id (αλλιώς όρισε το ίδιο stock id που έχει οριστεί για προϊόντα σε απόθεμα σε όλα τα προϊόντα με τη μέθοδο που ήδη γνωρίζεις).

Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Athens, Hellas

Post by antstyl » Tue Sep 17, 2013 8:12 pm

Στο admin υπήρχαν οι καταστάσεις αποθέματος και στην βάση περασμένες, αλλά στα προϊόντα όμως στην βάση δεν αντιστοιχούσε πουθενά το id του stock_status. Το διόρθωσα και όλα ΟΚ.

Κάτι είχε πάει πολύ στραβά με το backup, ευτυχώς ένα ένα διορθώνονται.
Σας ευχαριστώ όλους για την βοήθεια σας.

Υ.Γ. Αρχίζει να μου αρέσει η mysql, είναι σοβαρό αυτό? :P

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm

Post by Opencart-Hellas » Tue Sep 17, 2013 8:33 pm

... όταν αρχίσει να σου αρέσει και η javascript... τότε ν' αρχίσεις ν' ανησυχείς ;D

Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Athens, Hellas

Post by antstyl » Tue Sep 17, 2013 9:28 pm

Θέλω να πιστεύω ότι δεν έχω τέτοια βίτσια :P για αυτό μακριά...

Για να μην ξεφεύγουμε από το θέμα και να έχουμε κάτι να ασχολούμαστε :P ,
υπάρχει περίπτωση να μπορέσω να κάνω export τον πίνακα product, για να αφαιρέσω με κάποιο τρόπο όποια περίεργη μορφοποίηση υπάρχει στις περιγραφές και να τον ξανά εισάγω?

Το λέω αυτό γιατί μάλλον οι περιγραφές μου δημιουργούν πρόβλημα στο xml για το skroutz. Και θα πρέπει να τις περνάω από το notepad πρώτα ώστε να φύγει η μορφοποίηση αλλά είναι αδύνατο για τόσα προϊόντα.

Γίνεται κάτι τέτοιο ή είναι τις φαντασίας μου?

User avatar
Active Member

Posts

Joined
Mon Nov 12, 2012 5:40 pm

Post by botonakis » Tue Sep 17, 2013 9:32 pm

1) Στο extension του skroutz βάλε να φορτώνει το meta description και δε θα έχει html έξτρα πράγματα.
2) Επίσης, πρέπει να φτιάξεις ένα php script που θα φορτώνει αυτόματα ένα ένα τα προϊόντα και θα αφαιρεί τα entities και ότι άλλο "ενοχλεί" και θα ξανα αποθηκεύει στη βάση.

User avatar
Active Member

Posts

Joined
Tue Jan 24, 2012 7:55 pm
Location - Athens, Greece
Who is online

Users browsing this forum: No registered users and 5 guests