Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    calcolo di quantità e select

    ciao a tutti, molto probabilmente è più facile di quanto pensi però sono incartato con un problema, ho una tabella db mysql con questi campi: venditore | marca ecc... (premesso che le marche sono 4 e sono fisse, mentre i venditori sono diversi e aumentano e diminuiscono a seconda dei periodi)
    Io vorrei sistemare in una tabella i dati in questa maniera:

    venditore | skoda | mitsubishi | ssangyong | hyundai
    Paolo | 12 | 0 | 3 | 2
    Mario | 2 | 2 | 0 | 1
    ecc...

    Come posso fare?
    Vi ringrazio in anticipo per la risposta

  2. #2
    ciao, volevo sapere se mi sono spiegato male, oppure c'è qualche altro problema di incompresibilità riguardante il mio post!

  3. #3
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Non hai spiegato come tutto questo dovrebbe interagire. Da cosa hai scritto direi che sei gia' a posto. Fai la tabella come tu stesso hai scritto ^^'


  4. #4
    Il problema è contare il numero di vetture vendute di quella data marca da ogni singolo venditore, e cioè non riesco a fare la SELCT. In altre parole io riesco a contare solo le vetture vendute dal venditore ma non riesco a filtrare la marca in modo sa separarle.

  5. #5
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Codice PHP:
    SELECT skoda FROM tabella_vendite
    WHERE venditore 
    'Paolo' 
    Prendendo come esempio la porzione di tabella che hai postato, questa query dovrebbe darti 12.


  6. #6
    io però vorrei ciclare la riga in modo che in automatico mi dia tutti i venditori, se faccio come dici tu devo fare una select per ogni venditore, ma i venditori possono cambiare e quindi devo fare una cosa che vada in automatico.

  7. #7
    Codice PHP:
    $qry "SELECT * FROM tabella_vendite";
    $res mysql_query ($qry);
    while (
    $line mysql_fetch_array ($res)) {
    qui quello che vuoi fare per ogni venditore (puoi richiamaread esempioil numero di skoda vendute dal venditore in questione semplicemente con $line['skoda'])


  8. #8
    nella maniera che mi dici tu mi stampa tante righe quante volte il valore è presente, io vorrei invece che mi stampi tante righe quanti sono i venditori con il nome del venditore e la quantità di auto vendute per quella marca. Ho cercato di fare un esempio nel mio primo post più sopra.

  9. #9
    penso di aver fatto qualche passo in più però poi mi blocco, vi illustro il punto


    $query_contatto = "SELECT * FROM contatto";
    $contatto = mysql_query($query_contatto, $conn) or die(mysql_error());
    $row_contatto = mysql_fetch_assoc($contatto);
    $totalRows_contatto = mysql_num_rows($contatto);

    do {
    $chiavi=array_keys($row_contatto,"Hyundai");
    $numero_valori=count($chiavi);
    echo $row_contatto['cod_venditore'] ." | ". $numero_valori ." | ". $row_contatto['marca'] ."
    "; } while ($row_contatto = mysql_fetch_assoc($contatto));

    l'output che mi viene fuori però è questo

    001 | 1 | Hyundai
    001 | 1 | Hyundai
    001 | 1 | Hyundai
    001 | 1 | Hyundai
    002 | 0 | SsangYong
    002 | 1 | Hyundai
    002 | 0 | Skoda
    001 | 1 | Hyundai
    001 | 0 | SsangYong

    io vorrei che invece mi desse questo

    001 | 5 | Hyundai
    002 | 1 | Hyundai

    Non so se adesso sia riuscito ad essere più chiaro in modo da avere un aiuto da parte vostra

  10. #10
    Utente di HTML.it L'avatar di Avalox
    Registrato dal
    Nov 2003
    Messaggi
    302
    Purtroppo la struttura della tabella che hai utilizzato ti complica un pò la vita...
    era molto più semplice fare una tabella venditori e una tabella marche tra le quali sussiste una relazione n:m. Portavi tutto in terza forma normale e usciva fuori una tabella vendite che metteva in relazione ogni singolo venditore con le marche vendute... comunque... proviamo a risolvere utilizzando la tua struttura.

    Forse dovresti utilizzare una query più appropriata...

    Prova con questa:
    Codice PHP:
    SELECT DISTINCT cod_venditorecount($campo_tabella) as tot
    FROM contatto
    GROUP BY venditore 
    quindi, mettendo tutto insieme:
    Codice PHP:
    $query "
      SELECT DISTINCT venditore, COUNT(
    $campo_tabella) as tot_vendite, marca
      FROM contatto
      GROUP BY venditore
      "
    ;

    $result mysql_query($query) or die("errore nella query: ".mysql_error());
    while( (
    $row mysql_fetch_assoc($result)) ) {
      echo 
    "|".$row['cod_venditore']."|".$row['tot_vendite']."|".$row['marca']."|
    "
    ;

    Il problema è che fino a qui si considera una sola marca... se volessi ciclare su tutte le marche devi aggiungere queste righe...

    Codice PHP:
    //Aggiungi le marche all'array... occhio alle maiuscole/minuscole
    $marche_disponibili = array("Hyunday","Mitsubishi","SsangYong","Skoda");  

    // cicla sulle marche
    for($i=0$i count($marche_disponibili); $i++) {
      
    $campo_tabella $marche_disponibili[$i];
      
    /**
       *  ATTENZIONE: qui devi incollare tutto il codice scritto sopra
       *
       */

    Se tutto va come credo, dovresti avere la "lista della spesa" per tutti i venditori e per tutte le marche...

    Ovviamente se vuoi considerare una sola marca, basta che nell'array indichi solo quella...

    Ho scritto di getto, quindi è possibile che vi siano degli errori... confido nelle tue conoscenze per correggerli, ma se hai dei problemi non esitare a contattarmi

    Fammi sapere

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.