Je souhaite exécuter une requête SQL dans un fichier .JS. J'ai essayé d'y ajouter quelques codes PHP mais cela n'a pas fonctionné bien sûr.
Je veux exécuter la requête SQL: SELECT price FROM list WHERE q=1
. Je veux afficher le prix dans le graphique. Est-ce que quelqu'un sait comment exécuter cette requête SQL dans le fichier .JS afin que je puisse obtenir le prix de l'article dans la base de données?
J'utilise le code JavaScript suivant:
/* Morris.js Charts */
// Sales chart
var area = new Morris.Area({
element: 'revenue-chart',
resize: true,
data: [
{y: '2016 Q1', item1: 5000, item2: 4460},
{y: '2016 Q2', item1: 8432, item2: 5713}
],
xkey: 'y',
ykeys: ['item1', 'item2'],
labels: ['Item 1', 'Item 2'],
lineColors: ['#a0d0e0', '#3c8dbc'],
hideHover: 'auto'
});
var line = new Morris.Line({
element: 'line-chart',
resize: true,
data: [
{y: '2015 Q4', item1: 0},
{y: '2016 Q1', item1: 5000},
{y: '2016 Q2', item1: 8432}
],
xkey: 'y',
ykeys: ['item1'],
labels: ['Item 1'],
lineColors: ['#efefef'],
lineWidth: 2,
hideHover: 'auto',
gridTextColor: "#fff",
gridStrokeWidth: 0.4,
pointSize: 4,
pointStrokeColors: ["#efefef"],
gridLineColor: "#efefef",
gridTextFamily: "Open Sans",
gridTextSize: 10
});
Vous ne pouvez pas exécuter une requête à l'aide de javascript car javascript ne peut pas se connecter directement à votre base de données, mais vous pouvez utiliser AJAX. Avec cette technologie, vous pourrez envoyer une demande à une page PHP (ou autre langage côté serveur) où réside le code qui peut exécuter une requête sur votre base de données et récupérer le résultat de cette requête.
Vous pouvez trouver des informations sur le serveur client ici:
https://spin.atomicobject.com/2015/04/06/web-app-client-side-server-side/
http://www.codeconquest.com/website/client-side-vs-server-side/
Et vous pouvez trouver beaucoup d'informations utiles sur ajax ici:
https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started
Jetez un œil à jQuery pour gérer l'appel Ajax: http://api.jquery.com/jquery.ajax/
[~ # ~] modifier [~ # ~] Vous pouvez utiliser javascript côté serveur pour accéder à votre base de données, ici vous pouvez trouver un bon article sur MySql Cluster. En un mot:
Le pilote JavaScript du cluster MySQL pour Node.js est exactement ce que cela ressemble: c'est un connecteur qui peut être appelé directement à partir de votre code JavaScript pour lire et écrire vos données. Comme il accède directement aux nœuds de données, il n'y a pas de latence supplémentaire lors du passage via un serveur MySQL et il est nécessaire de convertir des objets de code JavaScript // en opérations SQL. Si pour une raison quelconque, vous préférez qu'il passe par un serveur MySQL (par exemple si vous stockez des tables dans InnoDB), cela peut être configuré.
Vous ne pouvez pas vous connecter à Mysql directement depuis JS côté client, mais uniquement depuis JS côté serveur, comme node
. Il peut tout comme PHP se connecter en utilisant les extensions PDO ou mysqli, exécuter votre requête puis transmettre les informations au client côté JS.
Exécutez votre requête en dehors du JS et passez les prix en javascript.
Exemple :
$res_price = $conn -> query("SELECT price FROM list WHERE q=1");
$row_price = mysqli_fetch_assoc($res_price);
echo $row_price['price'];
Maintenant, en Javascript, ajoutez Like,
<?php echo $row_price['price']; ?>
Si vous souhaitez ajouter plus d'un prix, vous pouvez le gérer via le tableau également créer un tableau de prix et le passer dans le js.
Vous ne pouvez pas vous connecter directement à mysql avec javascript mais vous pouvez faire écho à votre variable php en javascript comme ceci.
var area = new Morris.Area({
element: 'revenue-chart',
resize: true,
data: [
{y: '2016 Q1', item1: <?php echo $price ?>, item2: <?php echo $price ?>},
{y: '2016 Q2', item1: 8432, item2: 5713}
]
vous pouvez couvrir tout le javascript à l'intérieur du script php.
cela remplacera comme ceci lors de l'exécution.
{y: '2016 Q1', item1: 12054, item2: 65242},