Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    14

    query difficile (per me)

    ciao a tutti,
    ho un problemone (per me), siccome sono giorni che ci sbatto la testa ,mi rivolgo a voi MIEI guru del web, ho queste tabelle :

    - tabella catalogo
    id
    codice_articolo
    descrizione_articolo
    (contiene tutti gli articoli)

    - tabella prezzo
    id
    codice_articolo
    listino_cliente
    prezzo_articolo
    (contiene i prezzi degli articoli con realtivo numero di listino:
    per cui se ho 3 listini -es 01,02,03 - ho ciascun codice articolo ripetuto 3 volte con a fianco relativo listino e relativo prezzo)

    -tabella storico
    id
    codice_articolo
    data_acquisto
    codice_cliente
    (contiene il codice articolo e la data di acquisto di un determinato prodotto per tutte le volte che un cliente lo ha acquistato)

    -tabella clienti
    id
    codice_cliente
    numero_listino
    (contine tutti i clienti con il loro listino di riferimento

    - carrello
    codice_articolo
    quantita_Articolo

    - in una variabile di memoria var_cliente ho il codice_cliente

    ora vorrei fare questo:
    un query che mi tira fuori tutti questi campi

    - catalogo.codice_articolo
    - catalogo.descrizione_Articolo
    - listino.prezzo_articolo (chiaramente il prezzo è relativo al listino associato in tabella clienti)
    - carrello.quantita_articolo
    - ed un campo di qualche genere che mi indichi se la combinazione codice_cliente, codice_articolo esiste nello storico

    non so se mi sono spiegato a sufficenza

    sto diventando pazzo con join,inner join,cross join e chi + ne ha + ne metta. riesco a fare il tutto con 50 mila query ma sono convinto che esiste qualcosa di molto + rapido.

    se qualcuno mi volesse dare una mano gliene sarei infinitamente grato

    ciao a tutti e graize cmq

    marco

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    secondo me dovresti organizzare meglio tutte le tabelle, cmq:

    codice:
    $codice_cliente = 1;
    $sql="SELECT storico.codice_articolo FROM storico WHERE storico.codice_cliente = $codice_cliente;";
    $st=mysql_query($sql) or die(mysql_error());
    $row=mysql_fetch_assoc($st);
    $codice_articolo=$row['codice_articolo'];
    $sql="SELECT catalogo.codice_articolo, catalogo.descrizione_articolo, prezzo.prezzo_articolo, carrello.quantita_articolo FROM catalogo
    INNER JOIN prezzo ON catalogo.codice_articolo = prezzo.codice_articolo
    INNER JOIN carrello ON catalogo.codice_articolo = carrello.codice_articolo
    WHERE catalogo.codice_articolo = $codice_articolo;";
    $st=mysql_query($sql) or die(mysql_error());
    while ($row=mysql_fetch_assoc($st)){
    	echo "<pre>\n";
    	print_r($row);
    	echo "</pre>\n";
    }
    think simple think ringo

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    14
    intanto di ringrazio, per la risposta e provo....
    poi, in che senso organizzarle meglio ?
    se hai dei consigli da darmi ne sarei felice.

    grazie 1000

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    14
    NON MI FUNGE
    SCUSA PERò SE TI CHIEDO UNA COSA COSI' CAPISCO:

    $codice_cliente = 1;
    $sql="SELECT storico.codice_articolo FROM storico WHERE storico.codice_cliente = $codice_cliente;";
    $st=mysql_query($sql) or die(mysql_error());
    $row=mysql_fetch_assoc($st);
    $codice_articolo=$row['codice_articolo']
    ;

    --> QUI CERCHI SE NELLO STORICO C'E' L'ARTICOLO ED USI FETCH_ASSOC (CHE NN SO COSA SIA XCHE' NON TROVO SUL MANUALE MA PRESUMO ESSERE = A FETCH_ROW) PER ASSEGNARE ALLA VARIABILE IL VALORE EVNTUALMENTE TROVATO

    $sql="SELECT catalogo.codice_articolo, catalogo.descrizione_articolo, prezzo.prezzo_articolo, carrello.quantita_articolo FROM catalogo

    --> QUI E' OVVIAMENTE TUTTO CHIARISSIMO

    INNER JOIN prezzo ON catalogo.codice_articolo = prezzo.codice_articolo

    --> QUI UNISCI (JOIN) PREZZO A CATALOGO IN BASE AL CODICE ARTICOLO (MA COME FA A SAPERE QUAL CODICE ARTICOLO DATO CHE IL CODICE ARTICOLO SI PUO' RIPETERE? INFATTI PER CIASCUN LISTINO VENGONO RIPORTATI TUTTI I CODICI ESISTENTI NEL CATALOGO CON RELATIVI NUMERO DI LISTINO E PREZZO, PER CUI SE HO 3 LISTINI ES 01,02,03 AVRO' UNA SIRUAZIONE TIPO:
    CODICE|LISTINO|PREZZO
    A00001 001 10
    A00001 002 11
    A00001 003 10
    A00002 001 21
    A00002 002 21
    A00002 003 20
    ETC )

    )
    INNER JOIN carrello ON Catalogo.codice_articolo=carrello.codice_articolo

    ---> QUI LEGHI AL CARRELLO IL CATALOGO TRAMITE IL CODICE (MA SE NON C'E' NEL CATALOGO ?)

    WHERE catalogo.codice_articolo = $codice_articolo;";
    ---> QUI INFINE SELEZIONI SOLO SE IL CODICE ESISTE NELLO STORICO


    CREDO DI AVER RIPORTATO LA CONFUSIONE CHE AVEVO IN TESTA ANCHE NELLA DOMANDA CHE HO POSTO.... VORREI OTTENERE UN RISULTATO COME QUESTO:

    QUERY PER CLIENTE: 1
    CODICE|DESCRIZONE|PREZZO|NEL CARRELLO|ESISTE NELLO STORICO
    A00001 PIPPPODODO 10 2 N
    A00002 IEIEIEIEIK 21 0 N
    A00003 SKSKKSKSKS 11 0 S
    ETC

    DOVE IL PREZZO E' IN QUESTO CASO QUELLO DEL CLIENTE 1

    SCUSA SE TI/VI TEDIO

    CIAO E GRAZIE
    MARCO




    $st=mysql_query($sql) or die(mysql_error());
    while ($row=mysql_fetch_assoc($st)){
    echo "<pre>\n";
    print_r($row);
    echo "</pre>\n";
    }
    UNA COSA COSI' CAPISCO

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.