golemicata Posted July 11, 2012 Share Posted July 11, 2012 I have 2 files: search.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <h1>***</h1> <form action="results.php" method="post"> Choose Search Type:<br /> <select name="searchtype"> <option value="ItemType">артикул</option> <option value="size">размер</option> </select> <br /> Enter Search Term:<br /> <input name="searchterm" type="text"> <br /> <input type="submit" value="Search"> </form> </body> </html> and results.php <!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>**** Резултати от търсенето</title> </head> <body> <h1> - Резултати от търсенето</h1> <?php // create short variable names $searchtype=$_POST['searchtype']; $searchterm=$_POST['searchterm']; $searchterm= trim($searchterm); if (!$searchtype || !$searchterm) { echo 'You have not entered search details. Please go back and try again.'; exit; } $searchtype = addslashes($searchtype); $searchterm = addslashes($searchterm); @ $db = mysql_pconnect('localhost', '***', '***'); if (!$db) { echo 'Error: Could not connect to database. Please try again later.'; exit; } mysql_select_db('eshop'); $query = "select * from item where ".$searchtype." like '%".$searchterm."%'"; $result = mysql_query($query); $num_results = mysql_num_rows($result); echo '<p>Брой намерени артикули: '.$num_results.'</p>'; for ($i=0; $i <$num_results; $i++) { $row = mysql_fetch_array($result); echo '<p><strong>'.($i+1).'. ItemType: '; echo htmlspecialchars(stripslashes($row['ItemType'])); echo '</strong><br />size: '; echo stripslashes($row['size']); echo '<br />Price: '; echo stripslashes($row['price']); echo '</p>'; } ?> </body> </html> When I entered a Bulgarian letters in search box and press search button --> the message is Брой намерени артикули: 0 ( number of items found: 0 ) . In the database in column ItemType have a bulgarian language names. When I search in English - do not have a problem : Брой намерени артикули: 1 ( Numbers of items found: 1 ) 1.ItemType: t-shirt size: L Price: 5.00 Can you help me? Next problem is : newitem.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>****</title> </head> <body> <h1>***</h1> <form action="insert_item.php" method="post"> <table border="0"> <tr> <td>ItemID</td> <td><input type="text" name="ID" maxlength="190" size="190"><br /></td> </tr> <tr> <td>Вид артикул</td> <td><input type="text" name="ItemType" maxlength="63" size="63"><br /></td> </tr> <tr> <td>Размер</td> <td> <input type="text" name="size" maxlength="19" size="19"><br /></td> </tr> <tr> <td>Цена (лева)</td> <td><input type="text" name="price" maxlength="7" size="7"><br /></td> </tr> <tr> <td>Език ( 1 за BG, 2 за EN )</td> <td><input type="text" name="IDL" maxlength="2" size="2"><br /></td> </tr> <tr> <td colspan="2"><input type="submit" value="Register"></td> </tr> </table> </form> </body> </html> insert_item.php <!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>****</title> </head> <body> <h1>****</h1> <?php // create short variable names $ItemID=$_POST['ItemID']; $ItemType=$_POST['ItemType']; $size=$_POST['size']; $price=$_POST['price']; $IDL=$_POST['IDL']; if ( !$ItemType || !$size || !$price || !$IDL ) { echo 'You have not entered all the required details.<br />' .'Please go back and try again.'; exit; } $ItemID = addslashes($ItemID); $ItemType = addslashes($ItemType); $size = addslashes($size); $price = doubleval($price); $IDL = addslashes($IDL); @ $db = mysql_pconnect('localhost', '***', '**'); if (!$db) { echo 'Error: Could not connect to database. Please try again later.'; exit; } mysql_select_db('eshop'); $query = "insert into item values ('".$ItemID."','".$ItemType."', '".$size."', '".$price."', '".$IDL."')"; $result = mysql_query($query); if ($result) echo mysql_affected_rows().' item inserted into database.'; ?> </body> </html> When I add an article with Bulgarian letters (for exampe ?обувки?) in my Database in the column ItemType is saved unknown symbols. The Collation is utf8_general_ci. And the columns ? price and size exchanged his values I don't want. (the sequence in table is ItemID, ItemType, price, size, IDL ) When I manual insert a values into this table on my database do not have a problem with Bulgarian letters. I don?t known why ? ItemID is auto increment not null and I wish when I add new item do not have to add ID, but when I remove it the item can not add to the database . PS: I wish don?t add a value in ItemId into html form and it?s automatically add in the database. When I removed ItemID from results.php and add a new item --- nothing happens ? Sorry for stupid questions but I'm new in this field. Quote Link to comment https://forums.phpfreaks.com/topic/265516-problem-with-search-bulgarian-language/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.