2017-01-31 7 views
0

phpとデータベースを使用して英語からペルシア語の辞書を作成しました。ユーザーから英語の単語を取得し、process.phpに投稿してから私はデータベース内の入力された単語を検索し、私はpersianの意味を返します。これはうまく動作しますが、私の問題は、入力された単語がデータベースにないときにコードがelse条件を入力せず、私は誰かを助けることができたら本当に感謝しています。 これが私の最初のファイルである:データベース検索で見つからないデータのための条件がありません

<html> 
<head> 

<style> 
    body { 
    background-image: url("final.jpg"); 
    } 


#par { 
    width: 320px; 
    padding: 10px; 
    border: 5px solid gray; 
    margin-left:auto; 
    margin-Right:auto; 
    position: absolute; 
    top: 20%; 
    left:35%; 
    text-align: center; 
    background-color:Powderblue; 
} 




#footer{ 
margin-top:45%; 
background-color:#C7BDBB; 
text-align:right; 
} 


</style> 


<title>niloofar-dictionary</title> 
</head> 




<body> 

<div id=par> 
<?php 



$username="raanaste_niloo1"; 
$password="Nt13541372"; 
$dbname="raanaste_niloofar-dictionary"; 
$usertable="dictionary"; 
$yourfield = "english"; 
$yourfield1 = "persian"; 

//Connect to the database 
$connection = mysql_connect($hostname, $username, $password); 
mysql_select_db($dbname, $connection); 

$name = $_POST["word"]; 


//Setup our query 
$query = "SELECT persian FROM $usertable WHERE english='{$_POST["word"]}'"; 

//Run the Query 
$result = mysql_query($query); 

//If the query returned results, loop through 
// each result 
if($name) 
{ 
if($result!=NULL) 
{ 
while($row = mysql_fetch_array($result)) 
{ 
    $na = $row["$yourfield1"]; 

    echo "word in persian: " . $na; 
}} 

else { 
echo "0 results" 
} 

} 




?> 
</div> 
<div id="footer"> 
    <h4> COPYRIGHT: &copy; 2017 niloofartarighat. </h4></div> 

</body> 
</html> 

、これはあなたが機能を使用することができますprocess.php

+0

[リトルボビー](http://bobby-tables.com/)と言う*** [スクリプトがSQLインジェクション攻撃のリスクがある。](http://stackoverflow.com/質問/ 60174/how-can-i-prevent-sql-injection-in-php)***。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –

+0

*** [mysql_ * '関数の使用をやめる](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)*** [これらの拡張機能](http://php.net/manual/en/migration70.removed-exts-sapis.php)がPHP 7で削除されました。[prepared](http://en.wikipedia.org/wiki/Prepared_statement)について学んでください。 )[PDO](http://php.net/manual/en/pdo.prepared-statements.php)と[MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared- statements.php)、PDOの使用を検討してください。[これは本当に簡単です](http://jayblanchard.net/demystifying_php_pdo.html)。 –

+2

どこにもelse条件はありません。 –

答えて

0

です:

function getDataForAdmin($select, $from, $where, $orderBy, $multi = false){ 
    global $con; 
    $q = "select ".$select." from ". $from; 
    if(strlen($where)>0 && $where != " " || $where != null){ 
     $q .= " where ".$where; 
    } 
    if(strlen($orderBy)>0 && $orderBy != " " || $orderBy != null){ 
     $q .= " order by ".$orderBy; 
    } 
    $r = mysqli_query($con, $q); 
    if($r){ 
     if(mysqli_num_rows($r)>0){ 
      $data['result'] = true; 
      if($multi){ 
       $data['data'] = getMultilineData($r); 
      }else{ 
       $data['data'] = mysqli_fetch_assoc($r); 
      } 
     }else{ 
      $data['result'] = false; 
      $data['data'] = "No Record Found!"; 
     } 
    }else{ 
     $data['result'] = false; 
     $data['data'] = "Error: 0xDS31ADMN". mysqli_errno($con); 
    } 
    return $data; 
} 
function getMultilineData($sql){ 
    $c = 0; 
    while ($r = mysqli_fetch_assoc($sql)){ 
     $data[$c] = $r; 
     $c++; 
    } 
    return $data; 
} 
function escapeString($val) { 
    global $con; 
    return mysqli_real_escape_string($con, $val); 
} 

    if(isset($_POST)){ 
     $name = escapeString($_POST['name']); 
$data = getDataForAdmin("*", "table", "name = '$name'", null); 

    } 

をし、同様にあなたが望むよう独自のコードを作ります: )

0

もう一度変更して問題を修正しました!! '

if($name) 
 
{ 
 
if($result!=NULL) 
 
{ 
 
if($row = mysql_fetch_array($result))\\this is the change 
 
{ 
 
    $na = $row["$yourfield1"]; 
 

 
    echo "word in persian: " . $na; 
 
}} 
 

 
else { 
 
echo "0 results" 
 
} 
 

 
} 
 
`

関連する問題