Visualizzazione dei risultati da 1 a 10 su 10

Discussione: IF ed altro!

  1. #1

    IF ed altro!

    Salve, ho una questione da risolvere.

    Semplifico al massimo l'esempio:


    Ho dei record estratti dal database:


    ID | Nome articolo | ID Fornitore
    ----------------------------------------------------------
    1 | Pesce lesso | 1


    Ora avrei la necessità che in base all'ID Fornitore contenuto nella pagina, mi venga mostrato il nome del fornitore.

    Così avrei qualcosa tipo:


    If ID_Fornitore = 1 Then
    Response.Write("Il fornitore è XXX")

    ElseIf ID_Fornitore = 2 Then
    Response.Write("Il fornitore è YYY")

    ElseIf ID_Fornitore = 3 Then
    Response.Write("Il fornitore è ZZZ")
    .......

    End IF







    Ora però il problema nasce se ho un caso del genere:


    ID | Nome articolo | ID Fornitore
    --------------------------------------------------
    1 | Pesce lesso | 1
    --------------------------------------------------
    2 | Pizza e fichi | 2
    --------------------------------------------------
    3 | Tarallucci e vino | 2


    Così ho due ID diversi per il fornitore.

    Quindi avrei il caso in cui ID_Fornitore è sia 1 che 2 e quindi a video dovrei avere:
    "Il fornitore è XXX e YYY"

    Nella mia ingnoranza in asp avevo pensato a:


    If ID_Fornitore = 1 AND 2 Then
    Response.Write("Il fornitore è XXX e YYY")

    ElseIf ID_Fornitore = 2 AND 3 Then
    Response.Write("Il fornitore è YYY e ZZZ")

    ......

    End IF




    E naturalmente non funziona >_>



    Spero si sia capito l'esempio.

    Come posso risolvere la cosa?

  2. #2
    scusa ma se hai 200 fornitori metti 200 if? non basterebbe una query del tipo:

    codice:
    select * from articoli left join fornitori on articoli.id_fornitore = fornitori.id
    ?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    No beh, ho pochi fornitori, massimo 3 o 4, altrimenti la cosa era impensabile.

  4. #4
    Originariamente inviato da Santino83_02
    codice:
    select * from articoli left join fornitori on articoli.id_fornitore = fornitori.id
    Questo cosa farebbe?

    E come dovrei usarlo?

  5. #5
    Originariamente inviato da Psycho Mantys
    No beh, ho pochi fornitori, massimo 3 o 4, altrimenti la cosa era impensabile.
    tu hai una tabella dove compare un "id fornitore".. quindi immagino tu abbia una tabella "fornitori" dove elenchi i tuoi fornitori. Detto questo, fai una join tra la tabella dei prodotti e la tabella dei fornitori, e ti estrai in un colpo solo, per ogni riga della tabella prodotti, il corrispondente fornitore e poi lo stampi

    naturalmente se non hai una tabella fornitori, cambia subito la struttura del database e metticela.


    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    A me però serve il caso in cui in un ordine ci siano due prodotti con due fornitori diversi e il problema non è tanto far comparire ad ogni record il nome del fornitore, piuttosto, diciamo, far comparire a fondo pagina la dicitura:
    "Il fornitore è XXX e YYY"

  7. #7

  8. #8
    If ID_Fornitore = 1 AND 2 Then
    Response.Write("Il fornitore è XXX e YYY")

    ElseIf ID_Fornitore = 2 AND 3 Then
    Response.Write("Il fornitore è YYY e ZZZ")

    ......

    End IF
    non vorrei dire una castroneria, ma la parte della selezione sarebbe meglio porla così:

    codice:
    If ID_Fornitore = 1 AND ID_Fornitore = 2 Then
    Response.Write("Il fornitore è XXX e YYY") 
    
    ElseIf ID_Fornitore = 2 AND ID_Fornitore = 3 Then
    Response.Write("Il fornitore è YYY e ZZZ")
    
    ......
    
    End IF

  9. #9
    qualcuno mi spieghi come un numero possa essere contemporaneamente 2 e 3.. ma che numero è?

    qui ci sono due grandi problemi:

    1) il database è fatto male
    2) non ha focalizzato bene qual'è il problema, o non l'ha esposto bene a noi


    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  10. #10
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Originariamente inviato da Santino83_02
    qualcuno mi spieghi come un numero possa essere contemporaneamente 2 e 3.. ma che numero è?

    qui ci sono due grandi problemi:

    1) il database è fatto male
    2) non ha focalizzato bene qual'è il problema, o non l'ha esposto bene a noi


    Secondo me:
    A. L'if è cmq errato perché al max invece di andare in AND devi andare in OR
    il fornitore non può essere contemporaneamente 1 e 2 ma 1 o 2.
    Detto questo, se ho ben capito alla fine della giostra vuoi avere tutti i fornitori presenti in un ordine.
    A sto punto se cmq devi elencarti i dettagli dell'ordine, dalla query estraiti anche i nomi dei fornitori (che dovrebbero esseer sul DB), dopo di che ti definisci una variabile che concatena tutti i fornitori distinti e te li visualizza alla fine.
    In alternativa, fai una array dove metti tutti i fornitori distinti e poi cicli sull'array per crearti l'output. Però come dice Santino83_02 sembra che il problema non ti sia chiaro chiaro.

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.