ελληνικα σε table

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

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

Απάντηση
H_TSOPELAS
Δημοσιεύσεις: 16
Εγγραφή: 31 Αύγ 2010 21:33

ελληνικα σε table

Δημοσίευση από H_TSOPELAS » 08 Ιαν 2011 18:22

καλησπερα, βρηκα εναν php code για να φτιαξω μια shopping cart για την σελιδα μου. το προβλημα μου ειναι πως φτιαχνω ενα table στο phpmyadmin αλλα η σελιδα οπου εχει τα ελληνικα βγαζει ???????? εχω δοκιμασει να βαλω collation utf-8 και collation greek στη database αλλα συνεχιζει να βγαζει ερωτηματικα. αν μπορει να βοηθησει καποιος θα το εκτημουσα γιατι ειμαι αρχαριος στο ολο θεμα. ο κωδικος απο το table ειναι:

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

CREATE TABLE books (
  id int(6) unsigned NOT NULL auto_increment,
  title varchar(100) NOT NULL default '',
  author varchar(100) NOT NULL default '',
  price decimal(3,2) NOT NULL default '0.00',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

INSERT INTO books VALUES (1, 'ΤΙΤΛΟΣ', 'ΠΕΡΙΓΡΑΦΗ', '24.99');
INSERT INTO books VALUES (2, 'Who Is This God Person Anyway?', 'Oolon Colluphid', '14.99');
INSERT INTO books VALUES (3, 'Who Is This God Person Anyway?', 'Oolon Colluphid', '14.99');
INSERT INTO books VALUES (4, 'Who Is This God Person Anyway?', 'Oolon Colluphid', '14.99');
INSERT INTO books VALUES (5, 'Who Is This God Person Anyway?', 'Oolon Colluphid', '14.99');
INSERT INTO books VALUES (6, 'Who Is This God Person Anyway?', 'Oolon Colluphid', '14.99');
INSERT INTO books VALUES (7, 'Who Is This God Person Anyway?', 'Oolon Colluphid', '14.99');
σας ευχαριστω παρα πολυ.

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

ελληνικα σε table

Δημοσίευση από nbc » 08 Ιαν 2011 20:35


H_TSOPELAS
Δημοσιεύσεις: 16
Εγγραφή: 31 Αύγ 2010 21:33

ελληνικα σε table

Δημοσίευση από H_TSOPELAS » 08 Ιαν 2011 22:39

διαβασα ολο τον οδηγο και εκανα ακριβως οτι λεει. το αποτελεσμα ομως παραμενει το ιδιο.
στο phpmyadmin βλεπω τα ελληνικα ενω στην σελίδα βλέπω ερωτηματικα.

σας γραφω τους κωδικες απο τα 6 αρχεια μηπως και καταλαβεται τι εχω κανει λαθος... σκεφτομαι πως αφου φενονται τα ελληνικα στο phpmyadmin και οχι στην σελιδα, κατι κανω εγω λαθος... σας ευχαριστω πολυ εκ των προτερων για τον χρονο σας.

cart.php

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

<?php

// Include MySQL class

require_once&#40;'inc/mysql.class.php'&#41;;

// Include database connection

require_once&#40;'inc/global.inc.php'&#41;;

// Include functions

require_once&#40;'inc/functions.inc.php'&#41;;

// Start the session

session_start&#40;&#41;;

// Process actions
header&#40;'Content-type&#58; text/html; charset=UTF-8'&#41;; 

$cart = $_SESSION&#91;'cart'&#93;;

$action = $_GET&#91;'action'&#93;;

switch &#40;$action&#41; &#123;

	case 'add'&#58;

		if &#40;$cart&#41; &#123;

			$cart .= ','.$_GET&#91;'id'&#93;;

		&#125; else &#123;

			$cart = $_GET&#91;'id'&#93;;

		&#125;

		break;

	case 'delete'&#58;

		if &#40;$cart&#41; &#123;

			$items = explode&#40;',',$cart&#41;;

			$newcart = '';

			foreach &#40;$items as $item&#41; &#123;

				if &#40;$_GET&#91;'id'&#93; != $item&#41; &#123;

					if &#40;$newcart != ''&#41; &#123;

						$newcart .= ','.$item;

					&#125; else &#123;

						$newcart = $item;

					&#125;

				&#125;

			&#125;

			$cart = $newcart;

		&#125;

		break;

	case 'update'&#58;

	if &#40;$cart&#41; &#123;

		$newcart = '';

		foreach &#40;$_POST as $key=>$value&#41; &#123;

			if &#40;stristr&#40;$key,'qty'&#41;&#41; &#123;

				$id = str_replace&#40;'qty','',$key&#41;;

				$items = &#40;$newcart != ''&#41; ? explode&#40;',',$newcart&#41; &#58; explode&#40;',',$cart&#41;;

				$newcart = '';

				foreach &#40;$items as $item&#41; &#123;

					if &#40;$id != $item&#41; &#123;

						if &#40;$newcart != ''&#41; &#123;

							$newcart .= ','.$item;

						&#125; else &#123;

							$newcart = $item;

						&#125;

					&#125;

				&#125;

				for &#40;$i=1;$i<=$value;$i++&#41; &#123;

					if &#40;$newcart != ''&#41; &#123;

						$newcart .= ','.$id;

					&#125; else &#123;

						$newcart = $id;

					&#125;

				&#125;

			&#125;

		&#125;

	&#125;

	$cart = $newcart;

	break;

&#125;

$_SESSION&#91;'cart'&#93; = $cart;

?>
<!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>PHP Shopping Cart Demo &#0183; Cart</title>

<link rel="stylesheet" href="css/styles.css" />
</head>



<body>



<div id="shoppingcart">



<h1>Your Shopping Cart</h1>



<?php
echo writeShoppingCart&#40;&#41;;

?>



</div>



<div id="contents">



<h1>Please check quantities...</h1>



<?php
echo showCart&#40;&#41;;

?>



<p><a href="index.php">ΕΠΙΣΤΡΟΦΗ</a></p>



</div>



</body>

</html>



index.php

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

<?php

// Include MySQL class

require_once&#40;'inc/mysql.class.php'&#41;;

// Include database connection

require_once&#40;'inc/global.inc.php'&#41;;

// Include functions

require_once&#40;'inc/functions.inc.php'&#41;;

// Start the session

session_start&#40;&#41;;
header&#40;'Content-type&#58; text/html; charset=UTF-8'&#41;; 

?>
<!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>PHP Shopping Cart Demo &#0183; Bookshop</title>
<link rel="stylesheet" href="css/styles.css" />

</head>



<body>



<div id="shoppingcart">



<h1>Your Shopping Cart</h1>



<?php
echo writeShoppingCart&#40;&#41;;

?>



</div>



<div id="booklist">



<h1>Books In Our Store</h1>



<?php
$sql = 'SELECT * FROM books ORDER BY id';

$result = $db->query&#40;$sql&#41;;

$output&#91;&#93; = '<ul>';

while &#40;$row = $result->fetch&#40;&#41;&#41; &#123;

	$output&#91;&#93; = '<li>"'.$row&#91;'title'&#93;.'" by '.$row&#91;'author'&#93;.'&#58; &pound;'.$row&#91;'price'&#93;.'<br /><a href="cart.php?action=add&id='.$row&#91;'id'&#93;.'">Add to cart</a></li>';

&#125;

$output&#91;&#93; = '</ul>';

echo join&#40;'',$output&#41;;

?>



</div>



</body>

</html>




fuctions.inc.php

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

<?php
header&#40;'Content-type&#58; text/html; charset=UTF-8'&#41;; 

function writeShoppingCart&#40;&#41; &#123;

	$cart = $_SESSION&#91;'cart'&#93;;

	if &#40;!$cart&#41; &#123;

		return '<p>You have no items in your shopping cart</p>';

	&#125; else &#123;

		// Parse the cart session variable

		$items = explode&#40;',',$cart&#41;;

		$s = &#40;count&#40;$items&#41; > 1&#41; ? 's'&#58;'';

		return '<p>You have <a href="cart.php">'.count&#40;$items&#41;.' item'.$s.' in your shopping cart</a></p>';

	&#125;

&#125;



function showCart&#40;&#41; &#123;

	global $db;

	$cart = $_SESSION&#91;'cart'&#93;;

	if &#40;$cart&#41; &#123;

		$items = explode&#40;',',$cart&#41;;

		$contents = array&#40;&#41;;

		foreach &#40;$items as $item&#41; &#123;

			$contents&#91;$item&#93; = &#40;isset&#40;$contents&#91;$item&#93;&#41;&#41; ? $contents&#91;$item&#93; + 1 &#58; 1;

		&#125;

		$output&#91;&#93; = '<form action="cart.php?action=update" method="post" id="cart">';

		$output&#91;&#93; = '<table>';

		foreach &#40;$contents as $id=>$qty&#41; &#123;

			$sql = 'SELECT * FROM books WHERE id = '.$id;

			$result = $db->query&#40;$sql&#41;;

			$row = $result->fetch&#40;&#41;;

			extract&#40;$row&#41;;

			$output&#91;&#93; = '<tr>';

			$output&#91;&#93; = '<td><a href="cart.php?action=delete&id='.$id.'" class="r">Remove</a></td>';

			$output&#91;&#93; = '<td>'.$title.' by '.$author.'</td>';

			$output&#91;&#93; = '<td>&pound;'.$price.'</td>';

			$output&#91;&#93; = '<td><input type="text" name="qty'.$id.'" value="'.$qty.'" size="3" maxlength="3" /></td>';

			$output&#91;&#93; = '<td>&pound;'.&#40;$price * $qty&#41;.'</td>';

			$total += $price * $qty;

			$output&#91;&#93; = '</tr>';

		&#125;

		$output&#91;&#93; = '</table>';

		$output&#91;&#93; = '<p>Grand total&#58; <strong>&pound;'.$total.'</strong></p>';

		$output&#91;&#93; = '<div><button type="submit">Update cart</button></div>';

		$output&#91;&#93; = '</form>';

	&#125; else &#123;

		$output&#91;&#93; = '<p>You shopping cart is empty.</p>';

	&#125;

	return join&#40;'',$output&#41;;

&#125;

?>




mysql.class.php

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

<?php
header&#40;'Content-type&#58; text/html; charset=UTF-8'&#41;; 

/**

* MySQL Database Connection Class

* @access public

* @package SPLIB

*/

class MySQL &#123;

    /**

    * MySQL server hostname

    * @access private

    * @var string

    */

    var $host;



    /**

    * MySQL username

    * @access private

    * @var string

    */

    var $dbUser;



    /**

    * MySQL user's password

    * @access private

    * @var string

    */

    var $dbPass;



    /**

    * Name of database to use

    * @access private

    * @var string

    */

    var $dbName;



    /**

    * MySQL Resource link identifier stored here

    * @access private

    * @var string

    */

    var $dbConn;



    /**

    * Stores error messages for connection errors

    * @access private

    * @var string

    */

    var $connectError;



    /**

    * MySQL constructor

    * @param string host &#40;MySQL server hostname&#41;

    * @param string dbUser &#40;MySQL User Name&#41;

    * @param string dbPass &#40;MySQL User Password&#41;

    * @param string dbName &#40;Database to select&#41;

    * @access public

    */

    function MySQL &#40;$host,$dbUser,$dbPass,$dbName&#41; &#123;

        $this->host=$host;

        $this->dbUser=$dbUser;

        $this->dbPass=$dbPass;

        $this->dbName=$dbName;

        $this->connectToDb&#40;&#41;;

    &#125;



    /**

    * Establishes connection to MySQL and selects a database

    * @return void

    * @access private

    */

    function connectToDb &#40;&#41; &#123;

        // Make connection to MySQL server

        if &#40;!$this->dbConn = @mysql_connect&#40;$this->host,

                                      $this->dbUser,

                                      $this->dbPass&#41;&#41; &#123;

            trigger_error&#40;'Could not connect to server'&#41;;

            $this->connectError=true;

        // Select database

        &#125; else if &#40; !@mysql_select_db&#40;$this->dbName,$this->dbConn&#41; &#41; &#123;

            trigger_error&#40;'Could not select database'&#41;;

            $this->connectError=true;

        &#125;

    &#125;



    /**

    * Checks for MySQL errors

    * @return boolean

    * @access public

    */

    function isError &#40;&#41; &#123;

        if &#40; $this->connectError &#41;

            return true;

        $error=mysql_error &#40;$this->dbConn&#41;;

        if &#40; empty &#40;$error&#41; &#41;

            return false;

        else

            return true;

    &#125;



    /**

    * Returns an instance of MySQLResult to fetch rows with

    * @param $sql string the database query to run

    * @return MySQLResult

    * @access public

    */

    function query&#40;$sql&#41; &#123;

        if &#40;!$queryResource=mysql_query&#40;$sql,$this->dbConn&#41;&#41;

            trigger_error &#40;'Query failed&#58; '.mysql_error&#40;$this->dbConn&#41;.

                           ' SQL&#58; '.$sql&#41;;

        return new MySQLResult&#40;$this,$queryResource&#41;;

    &#125;

&#125;



/**

* MySQLResult Data Fetching Class

* @access public

* @package SPLIB

*/

class MySQLResult &#123;

    /**

    * Instance of MySQL providing database connection

    * @access private

    * @var MySQL

    */

    var $mysql;



    /**

    * Query resource

    * @access private

    * @var resource

    */

    var $query;



    /**

    * MySQLResult constructor

    * @param object mysql   &#40;instance of MySQL class&#41;

    * @param resource query &#40;MySQL query resource&#41;

    * @access public

    */

    function MySQLResult&#40;& $mysql,$query&#41; &#123;

        $this->mysql=& $mysql;

        $this->query=$query;

    &#125;



    /**

    * Fetches a row from the result

    * @return array

    * @access public

    */

    function fetch &#40;&#41; &#123;

        if &#40; $row=mysql_fetch_array&#40;$this->query,MYSQL_ASSOC&#41; &#41; &#123;

            return $row;

        &#125; else if &#40; $this->size&#40;&#41; > 0 &#41; &#123;

            mysql_data_seek&#40;$this->query,0&#41;;

            return false;

        &#125; else &#123;

            return false;

        &#125;

    &#125;



    /**

    * Returns the number of rows selected

    * @return int

    * @access public

    */

    function size &#40;&#41; &#123;

        return mysql_num_rows&#40;$this->query&#41;;

    &#125;



    /**

    * Returns the ID of the last row inserted

    * @return int

    * @access public

    */

    function insertID &#40;&#41; &#123;

        return mysql_insert_id&#40;$this->mysql->dbConn&#41;;

    &#125;

    

    /**

    * Checks for MySQL errors

    * @return boolean

    * @access public

    */

    function isError &#40;&#41; &#123;

        return $this->mysql->isError&#40;&#41;;

    &#125;

&#125;

?>




global.inc.php

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

<?php
header&#40;'Content-type&#58; text/html; charset=UTF-8'&#41;; 

$host = 'localhost';

$user = '';

$pass = '';

$name = '';

$db = &new MySQL&#40;$host,$user,$pass,$name&#41;;

?>


books.txt

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

CREATE TABLE books &#40;
  id int&#40;6&#41; unsigned NOT NULL auto_increment,
  title varchar&#40;100&#41; NOT NULL default '',
  author varchar&#40;100&#41; NOT NULL default '',
  price decimal&#40;3,2&#41; NOT NULL default '0.00',
  PRIMARY KEY  &#40;id&#41;
&#41;
ENGINE=MyISAM CHARSET=DEFAULT; 


INSERT INTO books VALUES &#40;1, 'ΤΙΤΛΟΣ', 'ΠΕΡΙΓΡΑΦΗ', '24.99'&#41;;
INSERT INTO books VALUES &#40;2, 'Who Is This God Person Anyway?', 'Oolon Colluphid', '14.99'&#41;;

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

ελληνικα σε table

Δημοσίευση από korgr » 09 Ιαν 2011 09:07

Έχεις καταλάβει την διαφορά του έχω γράψει τις εντολές για utf-8 encoding μέσα στο αρχείο και του σώζω το αρχείο με utf-8 encoding (διασφαλίζω πως δεν σώζεται ως ANSI)?

Δεν λέω πως σίγουρα φταίει αυτό στην περίπτωση σου, ούτε είχα τον χρόνο να δω διεξοδικά όλο τον κώδικά που έδωσες...

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

ελληνικα σε table

Δημοσίευση από nbc » 09 Ιαν 2011 09:25

H_TSOPELAS έγραψε:...διαβασα ολο τον οδηγο και εκανα ακριβως οτι λεει...
Δε βλέπω να εκτελείς τη "SET NAMES 'utf8'" για την οποία ο οδηγός είναι σαφέστατος (αναφέρεται σε 4 σημεία, με bold και code snippet).

H_TSOPELAS
Δημοσιεύσεις: 16
Εγγραφή: 31 Αύγ 2010 21:33

ελληνικα σε table

Δημοσίευση από H_TSOPELAS » 09 Ιαν 2011 17:29

πωσ κανω SET NAMES 'utf8'? ισως να φανταζει κατι απλο για εσας αλλα βουνο για εμενα. :)

Απάντηση

Επιστροφή στο “MySQL”

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

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