Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Query su db con php

  1. #1

    Query su db con php

    Salve,
    avrei bisogno di un consiglio su come impostare una query che mi estragga dati identici da un db mysql.

    Ho una tabella con all'interno dei prodotti con nome identico ma che hanno caratteristiche differenti.

    Ad esempio:
    codice:
    ID|   Nome   | Taglia | Colore
    --|----------|--------|--------
    1 | T-shirt  |  XXL   | Bianco
    2 | T-shirt  |   L    | Blu
    3 | T-shirt  |   M    | Verde
    4 |  Guanti  |   5    | Nero
    5 |  Guanti  |   4    | Nero
    5 |  Guanti  |   4    | Bianco
    Avrei bisogno di una query che come risultato mi dia (notare l'ID):
    codice:
    ID|   Nome   | Taglia | Colore
    --|----------|--------|--------
    1 | T-shirt  |  XXL   | Bianco
    1 | T-shirt  |   L    | Blu
    1 | T-shirt  |   M    | Verde
    2 |  Guanti  |   5    | Nero
    2 |  Guanti  |   4    | Nero
    2 |  Guanti  |   4    | Bianco
    e cioé ID identico in base al nome.

    Ovviamente nel mio db i prodotti sono migliaia e qundi con centinaia di nomi ripetuti.

    So che per un esperto bastano due righe di codice ma io proprio non riesco a venirne a capo.

    Grazie in anticipo a chiunque voglia darmi una mano.

  2. #2
    Ma hai un'altra tabella che contiene i nomi ad esempio t-shirt, guanti ecc.

  3. #3
    Ciao,
    non ho altre tabelle.
    Al momento mi accontento di stampare a video i risultati per poterli verificare e successivamente utilizzerò lo script per la creazione di un csv o un xls.

  4. #4
    Secondo me l'impostazione è sbagliata, dovresti crearti un'ulteriore tabella per i nomi, in questo modo:

    codice:
    ID| Nome     
    --|----------
    1 | T-shirt   
    2 | Guanti
    poi nell'altra tabella inserisci questo:

    codice:
    ID|  ID_Nome   | Taglia | Colore
    --|----------|--------|--------
    1 | 1            |  XXL   | Bianco
    2 | 1            |   M    | Verde
    3 | 2            |   5    | Nero
    A questo punto effettuando una query riesci ad ottenere il risultato che a te serve.

  5. #5
    Anche questa non sarebbe male come idea. Poi estrarrei i dati dalla nuova tabella.

    In verità la mia prima richiesta sarebbe quella ottimale perché così potrei fare un controllo visivo prima di creare l'xls o il csv.

    Il problema ora è che non riesco ad impostare uno script che faccia quest'operazione.

    Purtroppo con le query non sono messo bene.

  6. #6
    Guarda che come ti ho detto io, ti basta una semplice query per estrapolare i nomi corretti, ad esempio (seguendo il mio consiglio), alla prima tabella diamo il nome di "Nomi", mentre alla seconda "tabellaTaglie", basta che fai questo:

    Codice PHP:
    $sql "select prima.id_nome, prima.nome, seconda.taglia, seconda.colore FROM
    Nomi as prima, tabellaTaglie as seconda where
    seconda.id_nome = prima.id_nome GROUP BY seconda.id_nome"

    Poteva essere usata anche una left join, ma cosi cerco di renderti un'idea.

    In pratica prendi l'id della prima tabella associato al nome, il campo nome che risulta sempre nella prima tabella (ovvero t-shirt, guanti ecc.), poi il nome visivo delle taglie e colori della seconda tabella.

    Prova e vedi che dovrebbe funzionare, non l'ho provata ma credo che funzioni.

  7. #7
    Grazie infinite per l'aiuto. Lo proverò in serata e ti farò sapere com'è andata.

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.