【问题标题】:Need help concerning zipcode tables join statement需要有关邮政编码表连接语句的帮助
【发布时间】:2022-11-02 10:26:38
【问题描述】:

对编码非常陌生。我有 2 个表格, zips_usa 包括美国所有格式正确的 zip(邮政编码、纬度/经度/城市/州等),以及表格 ageus 包括名字、姓氏、类别、cmets 等列。编写邮政编码半径搜索花了 3 周时间,但我到了那里,主要是因为我在这个网站上找到了答案。谢谢。 我现在需要帮助处理输出。我认为我需要表之间的连接语句,并且无法理解逻辑。任何帮助,将不胜感激。

用于 zip 半径搜索的 sql 语句运行无错误。输入由 html 表单执行。

  $sql = "SELECT latitude, longitude FROM zips_usa WHERE zipcode = '$zipcode'";

表 ageus 列详细信息(用户发布到的位置)

id first_name last_name dog_type cmets 城市 州 输入的 性别 类别 邮政编码

如何连接这两个表,以便我可以选择包含来自表 ageus 的所有信息的输出,其中包括在 X 英里半径内找到的邮政编码?

【问题讨论】:

  • 你的代码是张大SQL注入攻击。不要像这样在查询中插入变量。相反,使用参数化查询。
  • 尝试内连接查询
  • @Brad你怎么知道的?如果邮政编码来自提交的值,则只需 $zipcode = intval($POST['zipcode']);但是这里没有显示。在这种情况下,您不知道 $zipcode 来自哪里。您是否知道您不太可能受到 SQL 注入 (sqli) 的影响?除非您对 sqli 的了解来自销售 sqli 解决方案的豺狼。我从 NIST 获得有关安全的信息。 NIST 从未在其保护网站的建议中提及 sqli。还有很多其他比sqli更容易利用的漏洞。
  • @Misunderstood Lol,每当您将任意数据插入不同的上下文时,都需要正确处理。在这种情况下,这意味着正确地转义数据。当然,没有整数可以作为 SQL 执行,这很安全,但是你读过这个问题吗? “对编码非常陌生”,它说。所有带有任意数据的查询都应该被参数化。那么,就没有什么好担心的了。否则......某个地方的某个人可能会将该变量更改为您未预料到的内容,并且您将度过糟糕的一天。学会做正确的事……不需要额外的努力。
  • 你在 LOL 中失去了我。我同意,你应该学习。即参数化不是sqli的灵丹妙药。虽然 intval($zipcode) 是一个万无一失的解决方案。 “没什么好担心的”,这是不正确的。做对了。我的观点是你不对。我做符合 HIPPA 的网络应用程序。如果我犯了一个错误,它将花费我 50,000 美元以上。你呢?在我看来,您从出售他们所谓的“sqli 解决方案”的豺狼那里获得了您的信息。是的,我确实读过这个问题。你的评论没有帮助。最糟糕的是你不懂sqli。

标签: php mysql join select zipcode


【解决方案1】:

您所需要的只是一个带有邮政编码、lat、lng 的表格,一个用于查找该半径内表格中每条记录的半径,以及每个邮政编码的 lat 和 lng 列表。

我做了一个“ziplocation”表。

$sql = "SELECT `lat`,`lng` FROM `zipLocation` WHERE `zip` = $zip ";
$results = mysqli_query($link,$sql);
list($lat,$lng) = mysqli_fetch_array($results, MYSQLI_NUM);

除了邮政编码之外,使用结果用 lat 和 lng 填充表。

恕我直言,最好的方法是使用邮政编码 lat 和 lng 列表来填充表格的 lat 和 long。

很容易找到一张带有 lat 和 lang 的拉链表。
这是查询:

$sql = "SELECT `level`,`id`,`pics`,`name`,`city`,`zip` , ( 3959 * acos( cos( radians($lat) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians($lng) ) + sin( radians($lat) ) * sin( radians( `lat` ) ) ) ) AS `distance` FROM `photos` WHERE 1 HAVING `distance` <= $miles ORDER BY `distance` ASC"; 

我从我为 Ft 的客户做的演示应用程序中复制了上面的 sql。劳德代尔想要一个约会网站。
用户输入他们的邮政编码和半径,它会显示该半径内的可用女孩。

页面底部的数字是生成 HTML 所需的秒数。

Dating app where only Girls within a zipcode radius are shown

【讨论】:

  • 非常感谢大家的建议、信息和更新,不胜感激。我知道我需要提高我的整体编码知识,我正在努力。我的邮政编码半径搜索返回了我期望的所有值,并且它们的距离非常准确。我已经有一个可以处理一个邮政编码的脚本,我的目标是将半径脚本的输出传递给它,以便用户可以增加他们居住的任何邮政编码的搜索距离,但我仍然不确定如何传递这些结果或者确实有其他方法。花了两天时间尝试内部连接但没有运气:-(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多