Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema con PHP e JSON

    Salve ragazzi,

    ho questa esigenza:

    Al click su di un pulsante attraverso una chiamata JSon eseguo una query a db tramite PHP.

    codice:
    $j.getJSON('classe.php', {dataStart: dataStart, dataEnd: dataEnd}, function(data) {	
    ...
    ....
    ....
    La query mi restituisce un array di record che io tramite javascript inserisco in una tabella html creata a runtime.

    codice:
    $j.each(data,function(i,item){
    		cells=cells+ '<tr>';
    		cells=cells+ '<td width=5%;>' + item.CODARTIOLO + '</td>';
    		cells=cells+ '<td width=30%;> ' + item.NOMEARTICOLO + '</td>';
    		cells=cells+ '<td width=5%; class=right>' + item.QUANTITA + '</td>';
    		cells=cells+ '<td width=8%; class=right>' + 
    
    .......
    ......
    ......
    ora ad ogni ciclo io dovrei eseguire un'altra query passando come parametro item.CODARTICOLO, il risultato sarà inserito in una cella della stessa riga.

    Allora ho provato ad inserire un' altra chiamata json ma non viene eseguita o meglio viene eseguita ma il valore restituito nn viene scritto.

    l'esempio finale è questo. Dove sbaglio??

    codice:
    $j.getJSON('rotazioneArticoli.php', {dataStart: dataStart, dataEnd: dataEnd}, function(data) {							
    	var totaleMagazzino=0;;
    	var numScontrini=0;
    	var cells="<th width=5%;>Codice Articolo</th><th width=30%;>Descrizione Articolo</th><th width=5%;>Quantità venduta</th><th width=8%;>Prezzo Medio Vendita (I.C.) (€)</th><th width=8%;>Prezzo Medio Acquisto (I.C.) (€)</th><th width=8%;>Totale Vendita (I.C.) (€)</th><th width=8%;>Utile (I.C.) (€)</th>";
    	$j.each(data,function(i,item){
    		cells=cells+ '<tr>';
    		cells=cells+ '<td width=5%;>' + item.CODARTIOLO + '</td>';
    		cells=cells+ '<td width=30%;> ' + item.NOMEARTICOLO + '</td>';
    		cells=cells+ '<td width=5%; class=right>' + item.QUANTITA + '</td>';
    		cells=cells+ '<td width=8%; class=right>' + number_format(toFixedFix(item.TOTALE,3),3,',','.') + '</td>';
            var prezzoMedio = (item.prezzomedio * 1.21);
           $j.getJSON('rotazioneArticoli.php', {dataStart: dataStart, dataEnd: dataEnd, codiceBarre: item.CODICEBARRE}, function(datae) {
    				//cells=cells+ '<td width=8%; class=right>' + number_format(toFixedFix(datae,3),3,',','.') + '</td>';
    				cells=cells+ '<td width=8%; class=right>prova</td>';
    		});
            var totale = item.TOTALE * item.QUANTITA;
    		var utile = totale - prezzoMedio;
            totaleMagazzino= totaleMagazzino+ totale;
    		totale = toFixedFix(totale,3);
    		cells=cells+ '<td width=8%; class=right>' + number_format(totale,2,',','.')+ '</td>';        
            cells=cells+ '<td width=8%; class=right>' + number_format(toFixedFix(utile,3),2,',','.')+ '</td>';
    		cells=cells+ '</tr>';	
    		//da qui mi dovrei tirare fuori il prezzo medio di acquisto
    		
    	});

  2. #2
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Ma perché la seconda query non la esegui alla prima richiesta, quando chiami classe.php? Indendo dentro classe.php, farai un foreach in php eseguendo la query.

  3. #3
    Ciao allora il codice è questo

    codice:
    if (isset($_REQUEST['dataStart']) && isset($_REQUEST['dataEnd'])) { 
    	$dataStart = mysql_real_escape_string(htmlentities($_REQUEST['dataStart'])); 
    	$dataEnd = mysql_real_escape_string(htmlentities($_REQUEST['dataEnd'])); 
    	$sql = mysql_query("SELECT ..........");
        if (!$sql) {
            echo "
    
    Nessun Risultato Trovato</p>";
        }else{
            $scontrino=array();
    		 while($row = mysql_fetch_array($sql)){
    		  $scontrino[] = $row; 
            }
            echo json_encode($scontrino);
        }
    }
    ecco il dovrei eseguire la seconda query all'interno del ciclo while passando un parametro specificato nella select, come faccio?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da bircastri
    Ciao allora il codice è questo

    codice:
    if (isset($_REQUEST['dataStart']) && isset($_REQUEST['dataEnd'])) { 
    	$dataStart = mysql_real_escape_string(htmlentities($_REQUEST['dataStart'])); 
    	$dataEnd = mysql_real_escape_string(htmlentities($_REQUEST['dataEnd'])); 
    	$sql = mysql_query("SELECT ..........");
        if (!$sql) {
            echo "
    
    Nessun Risultato Trovato</p>";
        }else{
            $scontrino=array();
    		 while($row = mysql_fetch_array($sql)){
    		  $scontrino[] = $row; 
            }
            echo json_encode($scontrino);
        }
    }
    ecco il dovrei eseguire la seconda query all'interno del ciclo while passando un parametro specificato nella select, come faccio?
    $row è un array quindi ti basta richiamare un elemento selezionato, es. $row['mio_elemento_sql'], se è questo ciò che intendevi sennò spiegati meglio

  5. #5
    e si forse hai ragione mi sono spiegato male.

    Allora dopo aver eseguito la prima query attraverso il ciclo while scorro tutti i record e per ogni record faccio così

    codice:
      while($row = mysql_fetch_array($sql)){
           $sql2 = mysql_query(SELECT CAMPO FROM TABELLA WHERE ID = $row['mio_elemento_sql']);       
           $scontrino[] = $row; 
      }
    a me interessa anche inserire il risultato della seconda query nell array che poi restituisco.

    Da premettere che la seconda query restituirà uno ed un solo record

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.