【问题标题】:AJAX, Join Table and Complex QueryAJAX、连接表和复杂查询
【发布时间】:2011-06-07 05:28:43
【问题描述】:

我有两个名为“nodes”和“joinTable”的 MySQL 表,如下所示。我需要基于一个节点 ID(在第一个表中)进行 AJAX/jQuery?/MySQL 调用,该调用返回以下内容并将数据推送或放置到两个 JavaScript 数组和一些变量中:

  1. 返回“类型”和“文本” 节点表。这些将被放置在 一个单独的变量以及 id。
  2. SELECT to_ FROM joinTable WHERE from_='$id' 然后...通过 节点表来获取所有 关联的“类型”和“文本” 每个“_from”和地点或 将这些推送到 javascript 数组中 称为“pointsTo”以及 节点 ID。
  3. 从_FROM中选择 joinTable WHERE to_='$id' 和 然后...遍历节点表 获取所有相关的“类型”和 每个“_to”的“文本”和 将这些放置或推入 名为“pointsFrom”的javascript数组 以及 nodeID。

节点:

nodeID    type  text  
0           1   Dr. Joelson  
1           1   Ms. Appletree 
2           1   Mr. Miller  
3           1   Dr. Wilson  
4           0   Pediatrician  
5           0   Teacher  
6           0   Waiter  
...

加入表:

recordID    from_   to_   weight    type    typeText  
0              0    4        1        1      isa  
1              1    5        4        1      isa  
2              2    6        3        1      isa  
...  

这个 AJAX 选项对我来说太过分了,我还没有做过 MySQL 调用这个 复杂之前。我不介意更多地了解适用但对不同方法持开放态度的 jQuery 方法。


编辑: 服务器正在运行 PHP。

【问题讨论】:

  • 啊...我不认为 Javascript 可以访问 MySQL。你的网络服务器在运行什么? php? JSP?
  • 服务器正在运行php。 AJAX 技术访问 MySQL。

标签: jquery mysql ajax


【解决方案1】:

您首先需要选择一种服务器端语言(如 PHP)来查询您的数据库并将 JSON 响应发送回客户端。另一方面,使用 jQuery 之类的 javascript 框架从您的 javascript 代码对服务器上的 PHP 脚本进行 ajax 调用:

// Get your nodeId from the user
var id = 2;

$.post("/scripts/doTheQuery.php",{
  nodeId: id
},function (result) {
  // when query finishes
  // do stuff with result
  console.log(result);
}

就您的 SQL 问题而言: 1. SELECT type,text FROM nodes WHERE nodeID = {$nodeIDinQuestion}

我将重点介绍连接查询,让您先了解这一点。

【讨论】:

  • 感谢 mikermcneil。这与我的基本设置非常相似 - 我已经解析了一个字符串以在页面上获取输出以及问题 1 的基本解决方案。我对此表示赞赏,因为它表明我可能走在正确的道路上。 ...我不确定解析字符串是否是最好的(或唯一的)方法。我需要查找“JSON”。
  • JSON 代表 Javascript Object Notation,它只是一种用于传输数据的编码,例如 XML。您可以定义 javascript 对象而不是 XML 实体(使用更具体的规则)。 PHP 有一个名为 encode_json 的类,它将 PHP 对象或关联数组转换为有效的 JSON。前任。 { "成功": true, "用户": [ {"name":"mike"}, {"name","john"} ] }
  • 再次感谢 mikermcneil。我将我的 MySQL 查询发送回页面。它通过 'json_encode(...)' 作为 php 数组发送,并通过 jQuery 的 'parseJSON' 在页面中获取。如果我理解正确,细微的区别在于虽然它可以像数组一样被访问,但它是一个对象(例如,object[3][1])。像 push、pop、length 等数组函数在它上面不起作用。所以我做得很好,但会研究将 javascript 对象转换为 javascript 数组。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-21
  • 2010-11-02
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 2019-06-20
相关资源
最近更新 更多