php - 在数据库搜索中找不到数据的正确的其他条件是什么

标签 php mysql database

我使用 php 和数据库制作了一本英语到波斯语的字典,我从用户那里获取英语单词并将其发布到 process.php,然后在该文件中我在数据库中搜索输入的单词并返回波斯语的意思。这工作正常,但我的问题是,当输入的单词不在我的数据库中时,代码不会输入 else 条件,并且不会打印“0 结果”语句。如果有人可以提供帮助,我将非常感激。 这是我的第一个文件:

<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

最佳答案

您可以使用一个函数:

    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);

    }

并根据需要编写自己的代码:)

关于php - 在数据库搜索中找不到数据的正确的其他条件是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41966254/

相关文章:

php DOMDocument nodeName 属性返回 '#text' 和 nodeName

php - 用于匹配 WP 重定向插件中不以字符串开头的 URL 的正则表达式

php - PHP 数组中的歧义

java - 重用数据库连接

asp.net - 我应该如何确保此表中的值对是唯一的?

php - 36列表的数据库设计

php - 在mysqli中获取多行

mysql - 根据mysql中的特定列切换行和列

php - 尝试简化代码以获取 2 个表的结果,不包括表 1 中的一些结果和表 2 中的一些结果

mysql - [Qt][QMYSQL] 已部署的应用程序 - 未加载驱动程序