Пробовал это уже довольно долго, и мне нужна помощь. В основном у меня есть PHP-файл, который запрашивает базу данных, и я хочу изменить запрос на основе имени пользователя.Динамически изменять MYSQL-запрос в PHP-файле с помощью jQuery .post?
Что происходит на моем сайте, так это то, что пользователь входит в систему с помощью Twitter Oauth, и я могу отображать их данные (имя пользователя и т. Д.). У меня есть база данных, к которой пользователь добавил информацию, и я, что бы хотел, произошло, когда пользователь входит в систему с помощью 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;
?>
Это предназначение для использования с mashup-картой google, которую я пытаюсь сделать. Большое спасибо, если вы можете мне помочь. Если мой вопрос недостаточно ясен, скажите, и я попробую уточнить для вас. Я уверен, что это простое решение, я просто относительно неопытен, чтобы это сделать. Был в течение двух дней, и к сожалению, у меня не хватает времени.
Где вы задаете $ profile_name? – streetparade
Я установил его в разделе php в верхней части страницы. $ profile_name = "{$ user-> screen_name}"; {$ user-> screen_name} устанавливается с использованием кода Twitter Oauth, также расположенного в верхней части страницы. – John