Mahys
14.08.2010, 20:30
<?php
/*config.php*/
$mysql_server='localhost';
$mysql_user='root';
$mysql_pass='';
$mysql_name='Tester';
function do_query($z){
global $mysql_server,$mysql_user, $mysql_pass, $mysql_name;
$lin = mysql_pconnect($mysql_server,$mysql_user, $mysql_pass);
mysql_query("SET NAMES 'utf8'");
if (mysql_select_db($mysql_name, $lin)) {
return mysql_query($z);
}
}
?>
<?php
/* search3.php*/
include_once('config.php');
$my_query = 'SELECT * FROM `Recept` WHERE 1';
$name = $_GET['name'];
if ($name) $my_query .= ' AND `name` LIKE "%'.$name.'%"';
$s = $_GET['yes'];
$type = (int)$_GET['type'];
if ($type) $my_query .= ' AND `type`="'.$type.'"';
if ($s) {
$mass = explode(", ", $s);
for ($i= 0; $i<count($mass); $i++)
$my_query .= ' AND `composition` LIKE "%'.$mass[$i].'%"';
}
$s = $_GET['no'];
if ($s) {
$mass = explode(", ", $s);
for ($i= 0; $i<count($mass); $i++)
$my_query .= ' AND NOT (`composition` LIKE "%'.$mass[$i].'%")';
}
/*echo $my_query."<br>";*/
$result = do_query($my_query);
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<main>";
if (mysql_num_rows($result))
while ($r = mysql_fetch_array($result)) {
echo '<recipe>
<id>'.$r[id].'</id>
<name>'.$r[name].'</name>
<authorid>'.$r[author].'</authorid>
<rating>'.$r[rating].'</rating>
</recipe>';
}
echo '<count>'.mysql_num_rows($result).'</count>
</main>';
?>
protected function find_clickHandler(event:MouseEvent):void
{
var receptlist:XML = new XML();
var xmlLoader:URLLoader = new URLLoader();
var url:String= new String;
var GT:Boolean=false;
url='http://rusl/search3.php?'
if (Fname.text.length>0)
{ url=url+'name='+Fname.text;
GT=true;
}
if (Fsorts.selectedIndex>0){
if (GT){
url=url+'&';
}
url=url+'type='+Fsorts.selectedIndex;
GT=true;
}
if (Fyes.text.length>0){
if (GT){
url=url+'&';
}
url=url+'yes='+Fyes.text;
GT=true;
}
if (Fno.text.length>0){
if (GT){
url=url+'&';
}
url=url+'no='+Fno.text;
}
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest(url));
function LoadXML(event:Event):void {
receptlist = new XML(event.target.data);
var list:ArrayList= new ArrayList;
var count:int = receptlist.count;
for (var i:int = 0; i < count; i++) {
var s:Object = { name:String, authorid:int, id:int, rating:Number};
s.name=receptlist.recipe[i].name;
s.authorid=receptlist.recipe[i].authorid;
s.id=receptlist.recipe[i].id;
s.rating=receptlist.recipe[i].rating;
list.addItem(s);
}
currentState="list";
relist.dataProvider=list;
}
}
Нормально обрабатывается только поле type. В БД стоит utf8_unicode_ci. Если в config.php убрать строку mysql_query("SET NAMES 'utf8'"); то все обратывается, но вместо русских букв выдаются крякозябры. В чем может быть проблема?
ps: Над безопасностью пока не заморачивались. Заранее спасибо
/*config.php*/
$mysql_server='localhost';
$mysql_user='root';
$mysql_pass='';
$mysql_name='Tester';
function do_query($z){
global $mysql_server,$mysql_user, $mysql_pass, $mysql_name;
$lin = mysql_pconnect($mysql_server,$mysql_user, $mysql_pass);
mysql_query("SET NAMES 'utf8'");
if (mysql_select_db($mysql_name, $lin)) {
return mysql_query($z);
}
}
?>
<?php
/* search3.php*/
include_once('config.php');
$my_query = 'SELECT * FROM `Recept` WHERE 1';
$name = $_GET['name'];
if ($name) $my_query .= ' AND `name` LIKE "%'.$name.'%"';
$s = $_GET['yes'];
$type = (int)$_GET['type'];
if ($type) $my_query .= ' AND `type`="'.$type.'"';
if ($s) {
$mass = explode(", ", $s);
for ($i= 0; $i<count($mass); $i++)
$my_query .= ' AND `composition` LIKE "%'.$mass[$i].'%"';
}
$s = $_GET['no'];
if ($s) {
$mass = explode(", ", $s);
for ($i= 0; $i<count($mass); $i++)
$my_query .= ' AND NOT (`composition` LIKE "%'.$mass[$i].'%")';
}
/*echo $my_query."<br>";*/
$result = do_query($my_query);
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<main>";
if (mysql_num_rows($result))
while ($r = mysql_fetch_array($result)) {
echo '<recipe>
<id>'.$r[id].'</id>
<name>'.$r[name].'</name>
<authorid>'.$r[author].'</authorid>
<rating>'.$r[rating].'</rating>
</recipe>';
}
echo '<count>'.mysql_num_rows($result).'</count>
</main>';
?>
protected function find_clickHandler(event:MouseEvent):void
{
var receptlist:XML = new XML();
var xmlLoader:URLLoader = new URLLoader();
var url:String= new String;
var GT:Boolean=false;
url='http://rusl/search3.php?'
if (Fname.text.length>0)
{ url=url+'name='+Fname.text;
GT=true;
}
if (Fsorts.selectedIndex>0){
if (GT){
url=url+'&';
}
url=url+'type='+Fsorts.selectedIndex;
GT=true;
}
if (Fyes.text.length>0){
if (GT){
url=url+'&';
}
url=url+'yes='+Fyes.text;
GT=true;
}
if (Fno.text.length>0){
if (GT){
url=url+'&';
}
url=url+'no='+Fno.text;
}
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest(url));
function LoadXML(event:Event):void {
receptlist = new XML(event.target.data);
var list:ArrayList= new ArrayList;
var count:int = receptlist.count;
for (var i:int = 0; i < count; i++) {
var s:Object = { name:String, authorid:int, id:int, rating:Number};
s.name=receptlist.recipe[i].name;
s.authorid=receptlist.recipe[i].authorid;
s.id=receptlist.recipe[i].id;
s.rating=receptlist.recipe[i].rating;
list.addItem(s);
}
currentState="list";
relist.dataProvider=list;
}
}
Нормально обрабатывается только поле type. В БД стоит utf8_unicode_ci. Если в config.php убрать строку mysql_query("SET NAMES 'utf8'"); то все обратывается, но вместо русских букв выдаются крякозябры. В чем может быть проблема?
ps: Над безопасностью пока не заморачивались. Заранее спасибо