Elxis CMS Forum

Ελληνικό Forum => Βάσεις Δεδομένων => Topic started by: intefix on April 01, 2009, 10:32:17

Title: Πρόβλημα με προβολή Ελληνικών χαρακτήρων
Post by: intefix on April 01, 2009, 10:32:17
Προσπαθώ να φτιάξω ένα componet. Σε πρώτη φάση φτιάνω μια εξωτερική σελίδα (http://tydky.org/includes/doctors.php) php.  Ενώ οι πίνακες έχουν τα ίδια χαρακτηριστικά με αυτούς του Elxis (MyISAM,utf8_unicode_ci) και βλέπω τα δεδομένα σωστά...σε 2 DropDownLists που έχω κάνει τα δείχνει με ?????????.  Αγγλικά ερωτηματικά.
Η δουλειά που θα κάνει είναι να δημιουργώ ένα ερώτημα με τις 2 DropDownLists και να παίρνω τα αποτελέσματα σε έναν πίνακα απο κάτω.
Καμμιά βοήθεια;

Για αρχή ο κώδικας...που δεν νομίζω να έχει σχέση
 
Code: [Select]
<?php
$link mysql_connect(&#39;localhost&#39;, &#39;username&#39;, &#39;password&#39;);


$sSql="select SPECIALITY_ID, SPECIALITY from speciality ORDER BY speciality";

$sSql1="select PREFER_ID, PREFER from prefer ORDER BY PREFER";

$result=mysql_db_query("dbase"$sSql$link);
$result1=mysql_db_query("dbase"$sSql1$link);

?>

<select>
<?php
echo " <option value=&#39;-1&#39;>...</option>\n";

while($row=@mysql_fetch_array($resultMYSQL_BOTH))
{
echo " <option value=&#39;".$row[&#39;SPECIALITY_ID&#39;]."&#39; >".$row[&#39;SPECIALITY&#39;]."</option>\n";
}

?>

</select>
<select>
<?php
echo " <option value=&#39;-1&#39;>...</option>\n";
while($row1=@mysql_fetch_array($result1MYSQL_BOTH))
{
echo " <option value=&#39;".$row1[&#39;PREFER_ID&#39;]."&#39; >".$row1[&#39;PREFER&#39;]."</option>\n";
}

?>

</select>

<button id='btnSubmit' value='clickOnMe'>Click</button>
<?php
$sql="SELECT LNAME, FNAME, F_FNAME, ADDRESS, PHONE1, TK, prefer, sp.speciality FROM supplier s, prefer p, speciality sp WHERE s.speciality=sp.speciality_id AND s.municipa=p.PREFER_ID ORDER BY lname";
$result2=mysql_db_query("dbase", $sSql, $link);

echo "result : ".$result."<br>";
while($row2=@mysql_fetch_array($result2))
{
?>

<table border='1'>
<tr>
<?php
foreach($row2 AS $record)
{
?>

<td>
<?php
echo $record[&#39;LNAME&#39;]." ".$record[&#39;FNAME&#39;]." του ". $record[&#39;F_FNAME&#39;];
?>

</td>
<td>
<?php
echo $record[&#39;ADDRESS&#39;];
?>

</td>
<td>
<?php
echo $record[&#39;PHONE1&#39;];
?>

</td>
<td>
<?php
echo $record[&#39;TK&#39;];
?>

</td>
<td>
<?php
echo $record[&#39;prefer&#39;];
?>

</td>
<td>
<?php
echo $record[&#39;speciality&#39;];
?>

</td>
<?php
}

?>

</tr>
</table>
<?php
}
mysql_close($link)

?>

Title: Re: Πρόβλημα με προβολή Ελληνικών χαρακτήρων
Post by: datahell on April 01, 2009, 11:32:14
Η βάση σου είναι σε utf-8, η σύνδεση στη βάση και η κωδικοποίηση της σελίδας όμως δεν είναι. Πιθανότατα έχεις mysql 4.x που έχει default latin1 γιατί στην 5 το default είναι utf8 ή απλά το encoding έχει οριστεί σε Latin1.

Μετά τη σύνδεση στη βάση γράψε: mysql_query("SET NAMES UTF8");
Επίσης μέσα στο head της html σελίδας σου βάλε αυτό:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
και στα headers της php:
header('content-type: text/html; charset: utf-8');
Title: Re: Πρόβλημα με προβολή Ελληνικών χαρακτήρων
Post by: intefix on April 06, 2009, 14:17:54
Ευχαριστώ πολύ...αν και ήδη με είχε βοηθήσει ένας φίλος και έχουμε..


Code: [Select]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Untitled Document</title>
</head>
<body>
<?php
$link mysql_connect(&#39;localhost&#39;, &#39;username&#39;, &#39;password&#39;);
mysql_select_db  (&#39;dbase&#39;,$link);
mysql_query("SET NAMES &#39;utf8&#39;"$link); 
$q1="select SPECIALITY_ID, SPECIALITY from speciality ORDER BY speciality";
$q2="select PREFER_ID, PREFER from prefer ORDER BY PREFER";
$result=mysql_query($q1,$link);
$result1=mysql_query($q2,$link);

//$result=mysql_db_query("dbase", $sSql, $link);
//$result1=mysql_db_query("dbase", $sSql1, $link);

?>

<form method="post" action="doctors.php">
<select name="speciality">
<?php
echo " <option value=&#39;-1&#39;>...</option>\n";

while($row=@mysql_fetch_array($resultMYSQL_BOTH))
{
echo " <option value=&#39;".$row[&#39;SPECIALITY_ID&#39;]."&#39; >".$row[&#39;SPECIALITY&#39;]."</option>\n";
}

?>

</select>
<select name="nomos">
<?php
echo " <option value=&#39;-1&#39;>...</option>\n";
while($row1=@mysql_fetch_array($result1MYSQL_BOTH))
{
echo " <option value=&#39;".$row1[&#39;PREFER_ID&#39;]."&#39; >".$row1[&#39;PREFER&#39;]."</option>\n";
}

?>

</select>
<input type="submit" name="search" value="Αναζήτηση" />
        </form>
<?php
if(isset($_POST[&#39;search&#39;])){
$nomos=trim($_POST[&#39;nomos&#39;]);
$speciality=trim($_POST[&#39;speciality&#39;]);
$sql="select * from supplier where speciality=&#39;$speciality&#39;"
// echo &#39;<br />Q&#39;.$sql.&#39;<br />&#39;;
$result3=mysql_query($sql,$link);

echo 
$result3;
$output="<table border=\"1\">
<tr>
<td>ΟΝΟΜΑΤΕΠΩΝΥΜΟ</td>
<td></td>
</tr>
"
;
while(
$data=mysql_fetch_array($result3,MYSQL_NUM)){
$output.="<tr><td>".$data[1].$data[2]." ".$data[3]." ".$data[4]." ".$data[5]." ".$data[6]."</td></tr>";
  }
}
$output.="</table>";
echo 
$output;
?>

</body>
</html>