Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732

    CakePHP come faccio una select AVG(campo)?

    sto smazzulando un pò cakephp, e per imparare un pò a manovrarlo vorrei ricreare il sito che ho in firma...

    va tutto abbastanza bene, però ora sono arrivato al punto in cui devo popolare la tabella principale con le medie dei commenti... ora la mia query è questa:

    codice:
    	$sql_val = "SELECT";
    	$sql_val .= " AVG(voto_durata) AS voto_durata";
    	$sql_val .= ", AVG(voto_temperatura) AS voto_temperatura";
    	$sql_val .= ", AVG(voto_tenuta_temp) AS voto_tenuta_temp";
    	$sql_val .= ", AVG(voto_tenuta_bagnato) AS voto_tenuta_bagnato";
    	$sql_val .= ", AVG(voto_frenata) AS voto_frenata";
    	$sql_val .= ", AVG(voto_dinamicita) AS voto_dinamicita";
    	$sql_val .= ", AVG(voto_stabilita) AS voto_stabilita";
    	$sql_val .= ", AVG(durata) AS durata";
    	$sql_val .= ", AVG(consigliate) AS consigliate";
    	$sql_val .= ", AVG(prezzo) AS prezzo";
    	$sql_val .= ", COUNT(prezzo) AS numcommenti";
    	$sql_val .= " FROM commenti JOIN modello";
    	$sql_val .= " ON (modello.idmodello = commenti.idmodello)";
    	$sql_val .= " WHERE modello.idmodello = $idmodello";
    e viene eseguita una volta per ogni riga

    adesso mi sono creato i miei controllori e i miei metodi, ho detto a cake che i commenti sono collegati ai modelli di pneumatico con relazione belongsto, e che gli pneumatici sono collegati ai commenti con hasmany... tutto carino, però non funziona una cippa di niente

    adesso mi esegue due query, una giusta che si collega alla tabella dei marchi ed a quella dei tipi di pneumatico, e poi questa:

    Codice PHP:
    SELECT `Comment`.`id`, `Comment`.`Nome`, `Comment`.`Email`, 
    `
    Comment`.`Commento`, `Comment`.`tyre_id`, `Comment`.`voto_durata`, 
    `
    Comment`.`voto_temperatura`, `Comment`.`voto_tenuta_temp`, 
    `
    Comment`.`voto_tenuta_bagnato`, `Comment`.`voto_frenata`, 
    `
    Comment`.`voto_dinamicita`, `Comment`.`voto_stabilita`, `Comment`.`durata`, 
    `
    Comment`.`consigliate`, `Comment`.`prezzo`, `Comment`.`motoFROM `comments` AS 
    `
    CommentWHERE `Comment`.`tyre_idIN (505272232122302745252457
    5342615564626145441237069161715294344668656664,
     
    87109676340554160481332121135363433383937195918,
     
    20472871
    che sinceramente non so cosa dovrebbe restituirmi, ma nel dubbio non fa nulla

  2. #2
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    allora... sono riuscito a capire come mandargli query personalizzate:

    Codice PHP:
            $this->set('tyres'$this->Tyre->query("
                SELECT
                AVG(voto_durata) AS voto_durata,
                AVG(voto_temperatura) AS voto_temperatura,
                AVG(voto_tenuta_temp) AS voto_tenuta_temp,
                AVG(voto_tenuta_bagnato) AS voto_tenuta_bagnato,
                AVG(voto_frenata) AS voto_frenata,
                AVG(voto_dinamicita) AS voto_dinamicita,
                AVG(voto_stabilita) AS voto_stabilita,
                AVG(durata) AS durata,
                AVG(consigliate) AS consigliate,
                AVG(prezzo) AS prezzo,
                COUNT(prezzo) AS numcommenti
                FROM comments AS comment
                WHERE tyre_id = 50
            "
    )); 
    ora arriva la parte stupida, ma è il mio primo limite nella programmazione ad oggetti: come diamine faccio per lanciare il tutto?

    io ho messo tutto dentro un controller TyresController, in questo modo

    Codice PHP:
    class TyresController extends AppController
    {
        var 
    $name 'Tyres';


        function 
    index()
        {
            
    $this->set('tyres'$this->Tyre->findAll(nullnull'brand_id, nomemodello DESC'));
            
    $this->set('comments'$this->Comment->query(
                SELECT (query di prima)
            "
    ));
        }
    .... 
    tante altre cose .... 

    e nel viewer ho questo:

    Codice PHP:
    echo "<td>"$tyre['Brand']['nomemarchio'] . "</td>";
    echo 
    "<td>"$tyre['Tyre']['nomemodello'] . "</td>";
    echo 
    "<td>"$tyre['Tyretype']['tipogomma'] . "</td>";
    echo 
    "<td>[img]immagini/valutazioni/"$tyre[[/img]</td>";
    echo "
    <td>[img]immagini/valutazioni/". $tyre[[/img]</td>";
    echo 
    "<td>[img]immagini/valutazioni/"$tyre[[/img]</td>";
    echo "
    <td>[img]immagini/valutazioni/". $tyre[[/img]</td>";
    echo 
    "<td>[img]immagini/valutazioni/"$tyre[[/img]</td>";
    echo "
    <td>[img]immagini/valutazioni/". $tyre[[/img]</td>";
    echo 
    "<td>[img]immagini/valutazioni/"$tyre[[/img]</td>";
    echo "
    <td>". $tyre['Comment']["durata"] . "</td>";
    echo "
    <td>". $tyre['Comment']["consigliate"] . "%</td>";
    echo "
    <td>". $tyre['Comment']["prezzo"] ." &euro;</td>"; 

    mi visualizza tutto bene, tranne i commenti... come faccio?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.