πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
dynoroad
Δημοσιεύσεις: 44
Εγγραφή: 13 Νοέμ 2008 00:09

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από dynoroad » 28 Δεκ 2011 10:09

Καλημέρα σας και χρόνια πολλά..

Αυτές τις μέρες προσπαθώ να φτιάξω μία σελίδα στην οποία έχω ενα πλαίσιο κειμένου που εκεί μέσα όταν θα γράφω ένα γράμμα να μου εμφανίζει τα επιθυμητά αποτελέσματα τα οποία τα αντλεί απο μία βάση δεδομένων.

Τα δεδομένα μου στην βάση δεδομένων είναι σε ελληνικά αλλά όταν πληκτρολογώ ένα γράμμα στα ελληνικά δεν μου εμφανίζει τίποτα.

Παραθέτω τον κώδικά μου πιο κάτω μήπως και μπορεί κάποιος να με βοηθήσει..

Κώδικας: Επιλογή όλων

<?php
require_once "sqlconnect.php";
$q = strtolower&#40;$_GET&#91;"q"&#93;&#41;;

mysql_query&#40;'SET NAMES utf-8'&#41;;

if &#40;!$q&#41; return;

$sql = "select DISTINCT onoma as onoma from pelatologio where onoma LIKE '%$q%'";
$rsd = mysql_query&#40;$sql&#41;;
while&#40;$rs = mysql_fetch_array&#40;$rsd&#41;&#41; &#123;

	$cname = $rs&#91;'onoma'&#93;;
	echo "$cname\n";


&#125;
?>

Σας ευχαριστώ εκ των προτέρων..

Χρόνια πολλά κ πάλι κ καλή χρονιά να έχουμε...

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από korgr » 28 Δεκ 2011 10:17

Χρόνια πολλά και καλά!
Για αρχή δοκίμασε με την mb_strtolower

dynoroad
Δημοσιεύσεις: 44
Εγγραφή: 13 Νοέμ 2008 00:09

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από dynoroad » 28 Δεκ 2011 12:07

Συνεχίζει να μην μου εμφανίζει τα ελληνικά αποτελέσματα. Μήπως μπορείτε να μου πείτε αν κάνω κάποιες ρυθμίσεις στην γλώσσα της βάσης δεδομένων μου? Χρησιμοποιώ το navicat mysql και ρωτάω μήπως πρέπει να ρυθμίσω κάτι στην γλώσσα απο τις ρυθμίσεις τισ βάσης μου.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από korgr » 28 Δεκ 2011 16:48

Όταν δοκιμάσεις να τραβήξεις ελληνικά με ένα απλό query στα φέρνει?
Είναι UTF-8 η βάση σου ή μήπως είναι Latin?

dynoroad
Δημοσιεύσεις: 44
Εγγραφή: 13 Νοέμ 2008 00:09

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από dynoroad » 29 Δεκ 2011 09:26

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

Έχω μία σελίδα δηλαδή με ένα textfield που εκεί πληκτρολογείς το γράμμα κ σου βγάζει τα αποτελέσματα με το που πληκτρολογήσεις το πρώτο γράμμα σου.
Η σελίδα είναι η εξής :

Κώδικας: Επιλογή όλων

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript" src="jquery.js"></script>
<script type='text/javascript' src='jquery.autocomplete.js'></script>
<link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />

<script type="text/javascript">
$&#40;&#41;.ready&#40;function&#40;&#41; &#123;
	$&#40;"#course"&#41;.autocomplete&#40;"get_course_list.php", &#123;
		width&#58; 260,
		matchContains&#58; true,
		selectFirst&#58; false
	&#125;&#41;;
&#125;&#41;;
</script>

</head>

<body>
<input type="text" name="course" id="course"/>
</body>
</html>

και η σελίδα get_course_list.php που κάνει την ανακατεύθυνση έχει τον εξής κώδικα (μετά απο κάποιες αλλαγές που έκανα) :

Κώδικας: Επιλογή όλων

<?php
require_once "sqlconnect.php";
$q = mb_strtolower&#40;$_GET&#91;"q"&#93;&#41;;

if &#40;!$q&#41; return;

$query = "select onoma from pelatologio where onoma LIKE CONVERT&#40;'%$q%' USING utf8&#41;";
$result = mysql_query&#40;$query&#41; or die&#40;'query failed&#58; '.mysql_error&#40;&#41;&#41;;


while&#40;$rs = mysql_fetch_assoc&#40;$result&#41;&#41; &#123;

	$cname = $rs&#91;'onoma'&#93;;
	echo "$cname\n";
break&#40;&#41;;

&#125;

?>
Αυτό που ψάχνω είναι το που κάνω λάθος στον κώδικα και δεν μου "τραβάει" τα σωστά αποτελέσματα απο την βάση μου.

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από nbc » 29 Δεκ 2011 09:46

- η πρώτη query θα πρέπει να είναι "SET NAMES utf8", όπως είχες αρχικά (utf8 όχι utf-8)
- η CONVERT είναι λάθος όπως την έχεις, αλλά και δεν χρειάζεται
- η mb_strtolower δεν χρειάζεται αν το collation της βάσης είναι utf8_general_ci

Για περισσότερα,
http://www.freestuff.gr/forums/viewtopic.php?t=52609

dynoroad
Δημοσιεύσεις: 44
Εγγραφή: 13 Νοέμ 2008 00:09

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από dynoroad » 30 Δεκ 2011 10:22

Σε αυτό που έψαχνα θα το κάνω αλλιώς τελικά.

Τώρα έχω κολλήσει σε άλλο σημείο.
Θέλω να δημιουργώ έναν πίνακα στην βάση μου με ονομα που θα δίνει ο χρήστης.

Συγκεκριμένα θέλω με το που εισάγει το ονοματεπώνυμό του και πατήσει ΕΙΣΑΓΩΓΗ να δημιουργήται ένας πίνακας που για όνομα θα έχει το ονοματεπώνυμό του.

Ο παρακάτω κώδικας κάνει εισαγωγή κάποιων δεδομένων στον πίνακα "pelatologio" αλλά και ταυτόχρονα δημιουργεί έναν πίνακα με το ονοματεπώνυμο του.

Κώδικας: Επιλογή όλων

<?php

session_start&#40;&#41;;

include&#40;'sqlconnect.php'&#41;;
$name=$_POST&#91;'onoma'&#93;;

$query= "INSERT INTO pelatologio &#40;onoma, patros, ergo, afm, til&#41; values &#40;".'$name'.", ".'$_POST&#91;patros&#93;'.", ".'$_POST&#91;ergo&#93;'.", ".'$_POST&#91;afm&#93;'.", ".'$_POST&#91;til&#93;'."&#41;"; 

$result=mysql_query&#40;$query&#41;;
mysql_query&#40;'SET NAMES utf-8'&#41;;

$query1 = "CREATE TABLE '$name' &#40;'id' int&#40;10&#41;, 'date' varchar&#40;15&#41;, 'taxe' varchar&#40;15&#41;, 'eidos' varchar&#40;200&#41; collate utf8, 'axia' decimal&#40;6,2&#41;&#41;";

$result1=mysql_query&#40;$query1&#41; or die&#40;'Query failed&#58; '.mysql_error&#40;&#41;&#41;;

header&#40;"Location&#58; ../index.php"&#41;;
?>
Όταν όμως πηγαίνω στην σελίδα αυτήν εισάγει τα δεδομένα μου στον πίνακα pelatologio αλλά :
a) δεν μου δημιουργεί τον νέο πίνακα με το ονοματεπώνυμο που του δίνω
b) δεν μου εισάγει τα ελληνικά ονοματεπώνυμα στον πίνακα pelatologio.. Παρά μόνο ??????..

Καμία βοήθεια έστω σε ένα απο τα 2 ερωτήματά μου??
:( :( :(

Ευχαριστώ εκ των προτέρων...

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από dva_dev » 30 Δεκ 2011 11:39

To set names utf8 τρέξε το αμέσως μετά το connect (πριν το insert).

Η απαίτηση να δημιουργείται νέος πίνακας είναι δική σου ή σου ζητήθηκε σε κάποια άσκηση;

dynoroad
Δημοσιεύσεις: 44
Εγγραφή: 13 Νοέμ 2008 00:09

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από dynoroad » 30 Δεκ 2011 12:06

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

dynoroad
Δημοσιεύσεις: 44
Εγγραφή: 13 Νοέμ 2008 00:09

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από dynoroad » 04 Ιαν 2012 11:41

Καλημέρα σας και καλή χρονιά.

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

Ο κώδικας της σελίδας είναι ο εξής :

Κώδικας: Επιλογή όλων

<?php
session_start&#40;&#41;;

include&#40;'sqlconnect.php'&#41;;

$onoma=$_GET&#91;'name'&#93;;


$query = "select id from pelatologio where onoma='$onoma'";
$result = mysql_query&#40;$query&#41; or die&#40;'query failed&#58; '.mysql_error&#40;&#41;&#41;;

while&#40;$rs = mysql_fetch_assoc&#40;$result&#41;&#41; &#123;

	$code = $rs&#91;'id'&#93;;

&#125;

$query1 = 'create table "'.$code.'" &#40;id int&#40;10&#41; NOT NULL AUTO_INCREMENT, primary key &#40;id&#41;, imer varchar&#40;15&#41;, taxe varchar&#40;15&#41;, eidos varchar&#40;200&#41; collate utf8_general_ci, axia decimal&#40;6,2&#41;&#41;';

$result1=mysql_query&#40;$query1&#41; or die&#40;'Query failed&#58; '.mysql_error&#40;&#41;&#41;;


header&#40;"Location&#58; ../index.php"&#41;;

?>
Και το σφάλμα που μου επιστρέφει η εκτέλεση της σελίδας αυτής είναι το εξής :

Κώδικας: Επιλογή όλων

Query failed&#58; 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 '"13" &#40;id int&#40;10&#41; NOT NULL AUTO_INCREMENT, primary key &#40;id&#41;, imer varchar&#40;15&#41;, ta' at line 1
Οι προσπάθειες που έχω κάνει για τυχόν διόρθωση του προβλήματος είναι η αλλαγή από μονό ' σε διπλό " και διάφορους συνδυασμούς στην μεταβλητή που την χρησιμοποιώ για την δημιουργία του ονόματος του πίνακα.

Έχει κάποιος οποιαδήποτε λύση προκειμένου να εκτελεστεί σωστά η σελίδα?? Έχω κολλήσει σε αυτό το σημείο 2 μέρες και δεν μπορώ να καταλάβω τί φταίει.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από Apostolis_38 » 04 Ιαν 2012 11:51

dynoroad έγραψε:$query1 = 'create table "'.$code.'" (id int(10) NOT NULL AUTO_INCREMENT, primary key (id), imer varchar(15), taxe varchar(15), eidos varchar(200) collate utf8_general_ci, axia decimal(6,2))';

Η θα το κάνεις

Κώδικας: Επιλογή όλων

create table "'.$code.'" &#40;id int&#40;10&#41; NOT NULL AUTO_INCREMENT, primary key,
ή έτσι:

Κώδικας: Επιλογή όλων

id int&#40;10&#41; NOT NULL AUTO_INCREMENT,imer varchar&#40;15&#41;, taxe varchar&#40;15&#41;, eidos varchar&#40;200&#41; collate utf8_general_ci, axia decimal&#40;6,2&#41;,primary key &#40;`id`&#41;
Δηλαδή ή θα ορίσεις το primary key στην ίδια "σειρά" που δίνεις τις άλλες ιδιότητες ΧΩΡΙΣ να αναφέρεις ξανά το όνομα του field, ή
θα ορίσεις το primary key (και τυχόν indexes κ.λ.π.) ΜΕΤΑ τα χαρακτηριστικά των fields.

dynoroad
Δημοσιεύσεις: 44
Εγγραφή: 13 Νοέμ 2008 00:09

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από dynoroad » 04 Ιαν 2012 12:03

Το έκανα με τον δεύτερο τρόπο που μου είπες αλλά εξακολουθεί να μου βγάζει το ίδιο πρόβλημα.

:-? :-? :-?

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από Apostolis_38 » 04 Ιαν 2012 12:21

:evil: Είναι λίγο σπαστικό όντως αυτό το θέμα.

Κώδικας: Επιλογή όλων

$query1 = "CREATE table IF NOT EXISTS ".$code."
&#40;id int&#40;10&#41; NOT NULL auto_increment primary key,
imer varchar&#40;15&#41;,
taxe varchar&#40;15&#41;,
eidos varchar&#40;200&#41;,
axia decimal&#40;6,2&#41; &#41;
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
Για ρίχτου μία.

dynoroad
Δημοσιεύσεις: 44
Εγγραφή: 13 Νοέμ 2008 00:09

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από dynoroad » 04 Ιαν 2012 12:33

Πάλι τα ίδια... Πραγματικά δεν ξέρω τι μπορεί να φταίει... Δεν βγάζω άκρη... :( :(

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

πρόβλημα με εμφάνιση ελληνικών σε δυναμική αναζήτηση

Δημοσίευση από Apostolis_38 » 04 Ιαν 2012 12:39

Κάνε ένα echo το query και αμέσως μετά βάλε exit; και πόσταρέ το.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες