【问题标题】:MySql PHP Connection issuesMySql PHP 连接问题
【发布时间】:2020-11-20 04:15:03
【问题描述】:

我知道这已经发布了,但已经尝试过这里可用的选项,所以我不得不再次询问...已经尝试了好几个星期...无济于事!

在 cPanel 中有一个帐户,在 phpMyAdmin 中有一个数据库,我正在尝试将数据返回到我的网站。

最初,我一直在连接错误,并发现我没有设置用户权限(对此很陌生)。

现在我已经对它进行了排序,当我在文本区域中创建搜索并点击返回时,Favicon 会旋转并返回到初始状态。

我现在对它很感兴趣,我不确定它是否是 PHP、MYSQL、HTML 等。

这是 PHP 代码:

<?php
$output=NULL;   
if(isset($_POST['submit'])){
    //Connect to the database
    $mysqli = new mysqli("localhost", "jj3wg2td_wix", "Sebastian!16", "jj3wg2td_careerslist");
    $search = $mysqli->real_escape_string($_POST['search']);
    //Query the database    
    $result = $mysqli->query("SELECT * FROM careers WHERE Job Title LIKE '%$search%'");
    if($resultSet->num_rows > 0){
        while($rows=$resultSet->fetch_assoc())
        {
            $jobTitle=$rows['Job Title'];
            $jobDesription=$rows['Job Description'];
            $salaryLow=$rows['Salary Low'];
            $salaryHigh=$rows['Salary High'];
            $output .="Job Title:$jobTitle<br />
                        Job Description:$jobDesription<br />
                        Salary Low:$salaryLow<br />
                        Salary High:$salaryHigh<br />
                        <br />";
         }
    }else{
        $output="No results";   
    }       
}
?>

这根本不返回“无结果”,只是空白。

在我的搜索按钮代码之后还有一个 PHP 输出:

&lt;?php echo $output; ?&gt;

搜索按钮是:

<!--SEARCH BOX-->
    <div class="search-box">
        <form method="POST">
        <input class="search-txt" type="TEXT" name="search" placeholder="SEARCH CAREERS">
            <a class="search-btn" type="SUBMIT" name="submit">
                <i class="fa fa-search" aria-hidden="true"></i>
                    </a>
                        </form>
                            </div>

phpMyAdmin 中的“本地主机”表明名称“Localhost:3306”(经常看到此问题)。所以我已经尝试过了,以及只是 'localhost....但现在根本没有任何效果。

提前为我的基本理解道歉......以及您的任何帮助!!!

彻底放弃!

【问题讨论】:

  • 如果它没有输出任何内容,则表明 $_POST['submit'] 未设置 - 您可以为该场景添加“else”以进行检查 - &lt;a&gt; 是否作为表单字段输入,或者应该是&lt;button&gt; 还是&lt;input type="button"&gt;?无论如何,您应该检查$_SERVER['REQUEST_METHOD']=="POST" 而不是旧方法。你可以var_dump($_POST); 看看是否设置好了。你可以添加大量的echo 语句,这样你就可以准确地调试它通过 PHP 的距离。
  • 有发送表单请求的JS吗?
  • 好的,先给我一些信息: 1. 你能用用户名和密码登录phpmyadmin吗? 2. 你能看到你在 phpmyadmin 中创建的数据库吗?请尽快回答问题...
  • 当您得到空白页时,请在 devtools 中打开 Network 选项卡并再次尝试您的操作。您可以看到您的 php 程序发送到浏览器的内容。查看源代码也有帮助。
  • @CarlosBazilio 表单不需要action,因为它只会提交到它所在的相同网址。表单的默认行为。现在,更好的编码实践是始终指定action,这样就不会混淆。

标签: php html mysql localhost


【解决方案1】:

您的代码中没有分配给变量$resultSet 的对象。 但是您尝试读取它的属性,例如$resultSet-&gt;num_rows this。

使用$result insted of $resultSet

试试这个

$output=NULL;

if(isset($_POST['submit'])){
//Connect to the database
$mysqli = new mysqli("localhost", "jj3wg2td_wix", "Sebastian!16", "jj3wg2td_careerslist");
    
$search = $mysqli->real_escape_string($_POST['search']);
    
//Query the database    
$result = $mysqli->query("SELECT * FROM careers WHERE Job Title LIKE '%$search%'");
    if($result->num_rows > 0)
    {
        while($rows=$result->fetch_assoc())
        {
            $jobTitle=$rows['Job Title'];
            $jobDesription=$rows['Job Description'];
                $salaryLow=$rows['Salary Low'];
                    $salaryHigh=$rows['Salary High'];
            
            $output .="Job Title:$jobTitle<br />
                        Job Description:$jobDesription<br />
                        Salary Low:$salaryLow<br />
                        Salary High:$salaryHigh<br />
                        <br />";
        }
    }
    else{
        $output="No results";   
    } 
}

【讨论】:

  • 虽然这似乎是代码的次要问题,但提问者最终会遇到......提问者甚至还没有达到这一点,这是他们当前的重点问题。
  • reyad - 是的,我可以登录并查看数据库
  • 不……他们是假名!
  • 嗨乔伊,感谢您的代码!现在看它,它设法归结为代码的“无结果”部分!我已经删除了
  • 如果有帮助,这里是页面 - flighteducation.co.uk/Careers%20Connect.php
【解决方案2】:

我认为您的表单未在点击 &lt;a&gt; 时提交。因此,您必须先进行此类更改才能提交表单。

方案一(借助JS):

<div class="search-box">
  <form method="POST" id="searchForm">
    <input class="search-txt" type="TEXT" name="search" placeholder="SEARCH CAREERS">
    <a class="search-btn" onclick="document.getElementById('searchForm').submit()">
       <i class="fa fa-search" aria-hidden="true"></i>
    </a>
  </form>
</div>

解决方案2:使用&lt;button&gt;作为表单提交的控件

    <button class="search-btn" name="submit" type="submit">
      <i class="fa fa-search" aria-hidden="true"></i>
    </button>

或者使用&lt;input&gt;作为提交按钮,

<input type="submit" name="submit" value="submit" />

代码中的主要问题来自 PHP 端,当您在此处检查 $_POST['submit'] 时,

if(isset($_POST['submit'])){ }

它没有进入if() 语句,因为它没有在你的代码中得到$_POST['submit']。

请确保您关注数据表和字段的命名对话。因此,请不要在表/字段名称中使用 大写 和 空格。就像您在查询中使用的一样(“SELECT * FROM careers WHERE Job Title LIKE...”)。这里的 Job Title 应该是 job_title。 (***也在数据表中更新)

$mysqli->query("SELECT * FROM careers WHERE job_title LIKE '%$search%'");

希望这会对你有所帮助。

【讨论】:

  • 谢谢,迪帕克。你是绝对正确的!现在更改,并提交...但仍然返回“无结果”,即使我在数据库中搜索已知项目 (grrr)
  • @wix 为您的方便更新了答案。如果您认为答案正确,请投票/接受作为正确答案。因此,这将对面临相同问题的其他人有所帮助。感谢您的评论。
猜你喜欢
  • 2020-01-22
  • 2016-04-24
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 2019-06-30
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多