【发布时间】:2010-04-26 20:58:26
【问题描述】:
尝试这个已经有一段时间了,我需要帮助。基本上我有一个查询数据库的 PHP 文件,我想根据登录的用户名更改查询。
在我的网站上发生的情况是用户使用 Twitter Oauth 登录,我可以显示他们的详细信息(Twitter 用户名等)。我有一个用户向其中添加信息的数据库,我希望当用户使用 Twitter Oauth 登录时,我可以使用 jQuery 获取用户用户名并更新 mysql 查询以仅显示结果user_name = 那个特定的用户名。
目前mysql查询为:
"SELECT * FROM markers WHERE user_name = 'dave'"
我尝试过类似的方法:
"SELECT * FROM markers WHERE user_name = '$user_name'"
在 PHP 文件的其他地方我有 $user_name = $_POST['user_name'];。在一个单独的文件中(用户通过 Twitter 登录后被重定向到的文件)我有一些这样的 jQuery:
$(document).ready(function(){
$.post('phpsqlinfo_resultb.php',{user_name:"<?PHP echo $profile_name?>"})});
$profile_name 已在该页面前面定义。
我知道我显然做错了什么,我还在学习。有没有办法实现我想要使用 jQuery 将用户用户名发布到 PHP 文件以更改 mysql 查询以仅显示与登录用户相关的结果。我已将 PHP 文件包含在下面的查询中:
<?php
// create a new XML document
//$doc = domxml_new_doc('1.0');
$doc = new DomDocument('1.0');
//$root = $doc->create_element('markers');
//$root = $doc->append_child($root);
$root = $doc->createElement('markers');
$root = $doc->appendChild($root);
$table_id = 'marker';
$user_name = $_POST['user_name'];
// Make a MySQL Connection
include("phpsqlinfo_addrow.php");
$result = mysql_query("SELECT * FROM markers WHERE user_name = '$user_name'")
or die(mysql_error());
// process one row at a time
//header("Content-type: text/xml");
header('Content-type: text/xml; charset=utf-8');
while($row = mysql_fetch_assoc($result)) {
// add node for each row
$occ = $doc->createElement($table_id);
$occ = $root->appendChild($occ);
$occ->setAttribute('lat', $row['lat']);
$occ->setAttribute('lng', $row['lng']);
$occ->setAttribute('type', $row['type']);
$occ->setAttribute('user_name', utf8_encode($row['user_name']));
$occ->setAttribute('name', utf8_encode($row['name']));
$occ->setAttribute('tweet', utf8_encode($row['tweet']));
$occ->setAttribute('image', utf8_encode($row['image']));
} // while
$xml_string = $doc->saveXML();
$user_name2->response;
echo $xml_string;
?>
这是与我试图做的谷歌地图混搭一起使用的。如果你能帮助我,非常感谢。如果我的问题不够清楚,请说,我会尽力为你澄清。我敢肯定这是一个简单的解决方法,我只是相对缺乏经验。在这里呆了两天,不幸的是我的时间不多了。
【问题讨论】:
-
你在哪里设置 $profile_name ?
-
我将它设置在页面顶部的一段php中。 $profile_name= "{$user->screen_name}"; {$user->screen_name} 使用同样位于页面顶部的 Twitter Oauth php 代码设置。