【问题标题】:Search two tables and mix the values in output with PHP and MySQL搜索两个表并将输出中的值与 PHP 和 MySQL 混合
【发布时间】:2017-10-31 15:13:54
【问题描述】:

我正在尝试从两个不同的表中搜索值并组合这些值。我需要一个更多的搜索表单,以及一种将值相乘的方法。我是初学者。

顺便说一句,我没有得到任何价值;只是“没有找到与您的查询匹配的记录。”数据库很好!

这是我的代码:

    <title>Search</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "mysql");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}


$search1 = @$_GET['Valorm2'];
$search2 = @$_GET['M2'];

   $sql = "SELECT * FROM porteval, squarefeet WHERE Freguesia = '$search1' AND M2 = '$search2'";
if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>ADVISED VALUE </th>";
            echo "</tr>";
        while($row = mysqli_fetch_array($result)){
            echo "<tr>";
                echo "<td>" . $row['Id'] . "</td>";
                echo "<td>" . $row['Pais'] . "</td>";
                echo "<td>" . $row['Distrito'] . "</td>";
                echo "<td>" . $row['Freguesia'] . "</td>";
                echo "<td>" . $row['Valorm2'] . "</td>";
                echo "<td>" . $row['Valorm2'] * 100 . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        // Free result set
        mysqli_free_result($result);
    } else{
        echo "No records matching your query were found.";
    }
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// Close connection
mysqli_close($link);
?>
</body>

</html>

【问题讨论】:

  • 您的代码容易受到SQL injection 攻击。您应该通过mysqliPDO 驱动程序使用带有绑定参数的预处理语句。 This post 有一些很好的例子。
  • A) 评论不会赢得声誉。 B) 你说你是菜鸟。我发表评论是为了帮助您避免学习坏习惯,并减少未来用户基于此代码进行自己的工作的可能性。 C)“我稍后会修复它”永远不会发生。第一次正确地完成它的工作量要少得多。 D) 侮辱试图帮助你的人往往会产生糟糕的结果。
  • 1- 回显 $_GET['Valorm2']$_GET['M2'] 以确保它们加载了您期望的值。 2-确保您的数据库中有您期望的数据(例如,从任何其他客户端而不是 PHP、MySQL Workbench 执行相同的 SQL 语句)。最后提醒您使用 SQL 注入可以在以后保护您的整个系统。检查此how to switch to prepared statements
  • @BWIS:乐于助人的 cmets 在这里很正常,而且回复说你“解雇”他们乍一看似乎很粗鲁。这反过来可能会为您赢得投票或 mod 报告,因此最好以善意回应(或根本不回应)。
  • @BWIS 对您的问题的评论不仅针对您,也针对其他用户。使用易受 SQL 注入攻击的代码是危险的,应警告其他用户不要使用它。

标签: php


【解决方案1】:

您的搜索查询不正确。如果表是相关的,那么您必须使用连接查询。如果表彼此不相关但结果是相关的,则使用联合查询。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    相关资源
    最近更新 更多