screwman Δημοσ. 13 Ιουλίου 2009 Δημοσ. 13 Ιουλίου 2009 Χαιρετώ, Προσπαθώ να κάνω update ένα πεδίο σε μία mySQL και το άτιμο δεν γίνεται. Ούτε καν insert δεν μπορώ να κάνω νέες εγγραφές. Ο κώδικας που χρησιμοποιώ είναι: <?php $username="user"; $password="pass"; $database="database"; $host="where_is_the_host"; mysql_connect($host,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); $update_date=$_POST['update_date']; $first_name=$_POST['first']; $last_name=$_POST['last']; $parent_name=$_POST['parent']; $query = "UPDATE unpaid SET paid_status = 1, paid = ".$update_date." WHERE last_name='".$last_name."' and first_name='".$first_name."' and parent_name='".$parent_name."'"; echo ($query); //απλώς για να τσεκάρω ότι το query είναι γραμμένο σωστά mysql_query($query); mysql_close(); ?> Πεδία, πίνακες, μεταβλητές όλα σωστά. Απλά search queries δουλεύουν επίσης σωστά. Υποπτεύθηκα κάποια στιγμή ότι μπορεί να είναι θέμα privileges αλλά ο user μου έχει full access πάνω στον πίνακα. Any help appreciated...
macabre_sunsets Δημοσ. 13 Ιουλίου 2009 Δημοσ. 13 Ιουλίου 2009 $query = "UPDATE `unpaid` SET `paid_status` = 1, `paid` = ".$update_date." WHERE `last_name`='".$last_name."' and `first_name`='".$first_name."' and `parent_name`='".$parent_name."'"; Μήπως τα `` βοηθήσουν? Επίσης δεν θα ήταν πιο εύκολο αντί να δίνεις ονοματεπώνυμο και πατρώνυμο, να έχει ο καθένας ένα προσωπικό ID και να λες ' WHERE id=".$id" ' ας πούμε?
screwman Δημοσ. 13 Ιουλίου 2009 Μέλος Δημοσ. 13 Ιουλίου 2009 $query = "UPDATE `unpaid` SET `paid_status` = 1, `paid` = ".$update_date." WHERE `last_name`='".$last_name."' and `first_name`='".$first_name."' and `parent_name`='".$parent_name."'"; Μήπως τα `` βοηθήσουν? Επίσης δεν θα ήταν πιο εύκολο αντί να δίνεις ονοματεπώνυμο και πατρώνυμο, να έχει ο καθένας ένα προσωπικό ID και να λες ' WHERE id=".$id" ' ας πούμε? Τα ` δεν βοήθησαν καθόλου. Και έχω και την εντύπωση ότι άμα υπήρχε πρόβλημα με τα `, λογικά δεν θα μου δούλευαν ούτε τα select queries που κάνω και δεν τα χρησιμοποιώ, σωστά? Το where clause δυστυχώς δεν γίνεται να αλλάξει. Δεν καταλαβαίνω ρε γαμώτο...
Uberalles_gr Δημοσ. 13 Ιουλίου 2009 Δημοσ. 13 Ιουλίου 2009 Δοκίμασε να βάλεις το αυτάκι στο paid = ".$update_date." δηλαδή paid = '".$update_date."'
screwman Δημοσ. 14 Ιουλίου 2009 Μέλος Δημοσ. 14 Ιουλίου 2009 Δοκίμασε να βάλεις το αυτάκι στο paid = ".$update_date." δηλαδή paid = '".$update_date."' Δεν έπιασε... Θα το σπάσω το άτιμο. Και τρέχω το query με copy paste directly από το phpMyAdmin και δουλεύει κανονικά! ---------- Το μήνυμα προστέθηκε στις 09:58 ---------- Νομίζω ότι κάτι βρήκα! Εάν κάνω update εγγραφή που περιέχει λατινικούς χαρακτήρες, τότε δουλεύει κανονικά. Μήπως το πρόβλημα είναι στα ελληνικά? ---------- Το μήνυμα προστέθηκε στις 10:00 ---------- <?php $username="user"; $password="pass"; $database="database"; $host="where_is_the_host"; mysql_connect($host,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); mysql_query("SET NAMES 'greek'"); $update_date=$_POST['update_date']; $first_name=$_POST['first']; $last_name=$_POST['last']; $parent_name=$_POST['parent']; $query = "UPDATE unpaid SET paid_status = 1, paid = ".$update_date." WHERE last_name='".$last_name."' and first_name='".$first_name."' and parent_name='".$parent_name."'"; echo ($query); //απλώς για να τσεκάρω ότι το query είναι γραμμένο σωστά mysql_query($query); mysql_close(); ?> Ορίστε! Με την παραπάνω προσθήκη δούλεψε κανονικά! Κάτι μου βρωμάει πάντως...
Uberalles_gr Δημοσ. 14 Ιουλίου 2009 Δημοσ. 14 Ιουλίου 2009 Φίλε το είχα πει και σε ένα άλλο Post ότι το καλύτερο για να συνδεθείς στην βάση σου είναι mysql_query('set character set greek',$link); mysql_query("SET NAMES 'greek'",$link); και μου είχε πει ένα παιδί να βάζω utf-8 αλλά ποτέ μα ποτέ με το greek δεν είχα κανένα πρόβλημα σε αντίθεση με το utf-8
Crawl_From_Death Δημοσ. 21 Ιουλίου 2009 Δημοσ. 21 Ιουλίου 2009 Αν βάλεις utf-8 (κάτι που προτείνεται) θα πρέπει η βάση σου να έχει collation utf-8 αλλιώς λογικά δεν θα σου δουλεύει. Στην περίπτωση που βάλεις greek θα έχεις σοβαρό πρόβλημα σε πολυγλωσσικές εφαρμογές.
screwman Δημοσ. 24 Ιουλίου 2009 Μέλος Δημοσ. 24 Ιουλίου 2009 Αν βάλεις utf-8 (κάτι που προτείνεται) θα πρέπει η βάση σου να έχει collation utf-8 αλλιώς λογικά δεν θα σου δουλεύει. Στην περίπτωση που βάλεις greek θα έχεις σοβαρό πρόβλημα σε πολυγλωσσικές εφαρμογές. Collation στην βάση έχω utf8_unicode_ci. Γενικά, πως είναι ο σωστός τρόπος να παίξεις με το encoding? Τι πρέπει να μπει στο meta στο head, τι θα πρέπει να μπει στο SET NAMES, τι θα πρέπει να μπει στο collation κ.ο.κ.
Uberalles_gr Δημοσ. 24 Ιουλίου 2009 Δημοσ. 24 Ιουλίου 2009 Ότι collation έχεις στην βάση σου πρέπει να έχεις και σε αυτά που ανέφερες
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.