J'ai essayé cela pendant un bon moment et j'ai besoin d'aide. Fondamentalement, j'ai un fichier PHP qui interroge la base de données et je veux changer la requête en fonction d'un nom d'utilisateur connecté.Modifier dynamiquement la requête MYSQL dans un fichier PHP en utilisant jQuery .post?
Ce qui se passe sur mon site, c'est qu'un utilisateur se connecte avec Twitter Oauth et je peux afficher leurs coordonnées (nom d'utilisateur twitter, etc.). J'ai une base de données à laquelle l'utilisateur a ajouté des informations et je voudrais que l'utilisateur se connecte avec Twitter Oauth, je pourrais utiliser jQuery pour prendre le nom d'utilisateur et mettre à jour la requête mysql pour afficher uniquement les résultats user_name = ce nom d'utilisateur particulier.
Au moment où la requête MySQL est:
"SELECT * FROM markers WHERE user_name = 'dave'"
J'ai essayé quelque chose comme:
"SELECT * FROM markers WHERE user_name = '$user_name'"
Et ailleurs dans le fichier PHP je $ user_name = $ _POST [ 'user_name' ] ;. Dans un fichier séparé (celui dans lequel l'utilisateur est redirigé après qu'ils ouvrent une session via Twitter) J'ai quelques jQuery comme ceci:
$(document).ready(function(){
$.post('phpsqlinfo_resultb.php',{user_name:"<?PHP echo $profile_name?>"})});
$ profile_name a été défini plus haut sur cette page.
Je sais que je fais clairement quelque chose de mal, j'apprends encore. Existe-t-il un moyen de réaliser ce que je veux en utilisant jQuery pour publier le nom d'utilisateur des utilisateurs dans le fichier PHP pour modifier la requête mysql afin d'afficher uniquement les résultats liés à l'utilisateur connecté. J'ai inclus le fichier PHP avec la requête ci-dessous :
<?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;
?>
Ceci est à utiliser avec un google map mashup im essayant de faire. Merci beaucoup si vous pouvez m'aider. Si ma question n'est pas assez claire, veuillez dire et j'essaierai de clarifier pour vous. Je suis sûr que c'est une solution simple, je suis juste relativement inexpérimenté pour le faire. Été à cela pendant deux jours et je suis à court de temps malheureusement.
Où définissez-vous $ profile_name? – streetparade
Je l'ai mis dans une section de php en haut de la page. $ profile_name = "{$ user-> screen_name}"; {$ user-> screen_name} est défini à l'aide du code php Twitter Oauth également situé en haut de la page. – John