2016-05-26 34 views
7

Voglio eseguire una query SQL in un file .JS. Ho provato ad aggiungere alcuni codici PHP ma non ha funzionato, ovviamente.Eseguire una query SQL in JS

Voglio eseguire la query SQL: SELECT price FROM list WHERE q=1. Voglio mostrare il prezzo nel grafico. Qualcuno sa come posso eseguire questa query SQL nel file .JS in modo da poter ottenere il prezzo dell'articolo dal database?

Sto usando il seguente codice JavaScript:

/* 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 
    }); 
+0

Possibile duplicato di [È possibile connettere JavaScript con MySQL?] (Http://stackoverflow.com/questions/3020751/can-javascript-connect-with-mysql) –

risposta

2

Non è possibile connettersi a MySQL direttamente dal lato client JS, ma solo dal lato server JS, come ad esempio node. Può semplicemente far sì che PHP si connetta usando le estensioni PDO o mysqli, esegui la tua query e poi trasmetta le informazioni al lato client JS.

4

Esegui la query dal lato JS e passa i prezzi in javascript.

Esempio:

$res_price = $conn -> query("SELECT price FROM list WHERE q=1"); 
$row_price = mysqli_fetch_assoc($res_price); 

echo $row_price['price']; 

Ora in Javascript aggiungere come,

<?php echo $row_price['price']; ?> 

Se si desidera aggiungere i prezzi più di una, allora si può gestire all'interno di un array anche fare gamma di prezzo e passarlo in il js.

2

Non è possibile collegare direttamente a MySQL con javascript, ma si può echeggiare la vostra variabile PHP in JavaScript come questo ..

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} 
] 

è possibile coprire l'intera javascript all'interno script php.

questo verrà sostituito in questo modo all'esecuzione.

{y: '2016 Q1', item1: 12054, item2: 65242}, 
4

Non è possibile eseguire una query utilizzando javascript poiché javascript non è in grado di connettersi direttamente al database, ma è possibile utilizzare AJAX. Con questa tecnologia sarai in grado di inviare una richiesta a una pagina PHP (o altra lingua lato server) dove risiede il codice che può eseguire una query sul tuo db e recuperare il risultato di questa query.

Potete trovare alcune informazioni su client server qui:

https://spin.atomicobject.com/2015/04/06/web-app-client-side-server-side/

http://www.codeconquest.com/website/client-side-vs-server-side/

E si possono trovare un sacco di informazioni utili su ajax qui:

https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

Dai un'occhiata anche a jQuery per gestire la chiamata Ajax: http://api.jquery.com/jquery.ajax/

EDIT È possibile utilizzare lato server JavaScript per accedere al database, here è possibile trovare un buon articolo su MySQL Cluster. In breve:

Il driver MySQL Cluster JavaScript per nodo.js è proprio quello che sembra come è - è un connettore che può essere chiamato direttamente dal tuo codice JavaScript per leggere e scrivere i tuoi dati. Poiché accede direttamente ai dati nodi, non vi è alcuna latenza aggiuntiva da passare attraverso un server MySQL e devono convertire da oggetti codice JavaScript // in operazioni SQL . Se per qualche motivo, preferiresti passare attraverso un server MySQL (ad esempio se stai memorizzando le tabelle in InnoDB) e poi che può essere configurato.