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

    creare matrice da recod

    Salve a tutti,
    ho tre tabelle: prodotti, taglie e colori. Per normalizzare il database, ho creato una quarta tabella chiamata "combo" che racchiude gli id delle precedenti, più un campo "quantità" che mi indica la quantità presente di un prodotto in magazzino.

    il problema è che risultato della query sulla tabella (la scrivo senza join varie) è che ho la stampa del record in questa maniera:
    articolo | prezzo [...] | taglia | colore | quantità
    da questo record io dovrei ottenere una tabella simile a quella che ho postato nell'immagine...
    qualcuno sa darmi una mano???


    GRAZIE!!
    Immagini allegate Immagini allegate
    Ricorda che mentre tu sei quì a ridere e scherzare, nel mondo c'è qualcun'altro che ride e scherza più di te!

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Se ho ben capito dovrebbe essere una cosa del genere:

    codice:
    select id_articolo,colore,
    sum(if(taglia="S",1,0)) as S,
    sum(if(taglia="M",1,0)) as M,
    sum(if(taglia="L",1,0)) as L,
    sum(if(taglia="XL",1,0)) as XL
    from tabella
    group by id_articolo,colore

  3. #3
    credo di non aver ben capito la sintassi...

    fino alla select ci siamo...
    a sum, possiamo arrivarci...
    il problema è l'if....mysql permette l'utilizzo dell'if? (non si finisce mai di imparare...)
    se si, cosa vogliono dire i numeri di di fianco? sono le "opzioni" se è vero 1 altrimenti 0??

    teoricamente le taglie sono contenute in una tabella (si sa mai il cliente impazzisca e chieda taglie tipo xxl o xs ), quindi dovrei fare due cicli, uno dove seleziono l'id della taglia e l'altra dove eseguo la query suggerita da te, passadogli l'id ricavato dal ciclo precedente...giusto?

    ma non è che poi diventa pesantuccio???
    e come faccio poi a stampare sopra le taglie e nella colonna i colori???

    ....sto valutando il suicidio........
    Ricorda che mentre tu sei quì a ridere e scherzare, nel mondo c'è qualcun'altro che ride e scherza più di te!

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    La query che ti ho scritto raggruppa i prodotti per codice identificativo e per colore (almeno questo è ciò che ho capito io dall'immagine che hai postato), eseguendo un conteggio per taglia.
    Il sum-if non va altro che verificare la taglia di ciascun prodotto, se corrisponde a quel criterio incrementa la quantità di 1, in caso contrario no. Prova.

  5. #5
    grande nicola!!!
    funziona ed è quello che cercavo....ora devo solo cercare di farla funzionare "dinamicamente" sugli id della tabella taglie...e poi mi metto ad imparare a fare i salti mortali...

    grazie ancora...
    Ricorda che mentre tu sei quì a ridere e scherzare, nel mondo c'è qualcun'altro che ride e scherza più di te!

  6. #6
    dunque....
    fin quì tutto funziona, anzi ora funziona anche dinamicamente sulle taglie e sui colori...(figata!!!)
    il problema è che nella "intersezioni" della tabella io ci devo mettere un campo input con le giacenze (per questo ho modificato il sum ecc ) anche quì tutto ok...
    il problema è che la select che opera questa operazione mi restituisce degli id della tabella principale (per me la tabella si chiama combo) non univoci...quindi se ho:

    ROSSO: 10 | 20 | 50 | 5 (questo è una riga della tabella di cui sopra)

    l'id della combo è uno solo... (il primo della riga, ad esempio id_combo è 2) mentre io avrei bisogno di identificare ogni numero in modo da poter operare su ogni songola giacenza...

    non so se sono stato chiaro...
    nel caso posto del codice (che al momento non ho sottomano )

    GRAZIE A TUTTI!!!
    Ricorda che mentre tu sei quì a ridere e scherzare, nel mondo c'è qualcun'altro che ride e scherza più di te!

  7. #7
    nessuno che mi aiuti???
    Ricorda che mentre tu sei quì a ridere e scherzare, nel mondo c'è qualcun'altro che ride e scherza più di te!

  8. #8
    vi prego!!!
    aiutoooooooo!!!!!!1
    Ricorda che mentre tu sei quì a ridere e scherzare, nel mondo c'è qualcun'altro che ride e scherza più di te!

  9. #9
    allora....ho trasformato il mio problema (cercando di risolverlo)

    se prima avevo:
    ROSSO 8 | 5 | 7 | 9

    ho trasformato la query che genra il listato di sopra per mantenere l'id di ogni valore ( 1=>10, 2=>5, 3=>7, 4=>9) così:

    ROSSO 8 | 0 | 0 | 0
    ROSSO 0 | 5 | 0 | 0
    ROSSO 0 | 0 | 7 | 0
    ROSSO 0 | 0 | 0 | 9

    ora via php vorrei poter stampare la tabella come quella di sopra....
    qualcuno mia aiuta???


    Ricorda che mentre tu sei quì a ridere e scherzare, nel mondo c'è qualcun'altro che ride e scherza più di te!

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.