Visualizzazione dei risultati da 1 a 6 su 6

Discussione: query complicata

  1. #1
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619

    query complicata

    Ciao,
    ho due tabelle una che identifica la news e una con i contenuti testuali della news nelle varie lingue.

    -tbl_news
    id
    date
    thumb
    img
    created

    -tbl_news_content
    id
    fk_news_id (campo che collega a tbl_news.id)
    title
    content
    lang

    nel mio caso ci sono per ogni news al massimo 2 lingue (italino e inglese) di cui una solo obbligatoria.
    Io vorrei estrarre dal db l'elenco di tutte le news in tbl_news e riportare anche titolo e contenuto di ognuna con una sola query.

    Quando stampo in tabella la query che segue se una news ha titolo e contenuto sia in italiano che in inglese viene visualizzata 2 volte mentre io voglio che venga visualizzata solo quella che ha lang piu' basso (lang identifica la lingua: italiano = 1, inglese = 2).

    codice:
    SELECT tbl_news.id, tbl_news.date, tbl_news.e_date, tbl_news.thumb, tbl_news.img, tbl_news_content.title, tbl_news_content.subtitle, tbl_news_content.lang
    FROM tbl_news
    INNER JOIN tbl_news_content ON tbl_news.id = tbl_news_content.fk_news
    WHERE tbl_news_content.title != "" AND tbl_news_content.content != ""
    ORDER BY tbl_news.created DESC
    Come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    131
    ciao

    ma sei tu a decidere quale lingua e la predefinita?
    se si prima di stampare controlli che lingua 1 non sia vuota o nulla ed eventualmente stampi lingua2

    altrimenti controlli la variabile lingua e poi decidi sempre con una if quale stampare

    (le possibilita' son tante questa e' 1)


  3. #3
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Purtroppo non so qual'e la predefinita, potrebbero esserci per esempio news solo in inglese.

    Con una if intendi in php o esiste un costrutto simile anche in sql?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    131
    ma tu hai gia' preso tutto in sql
    ti basta una if in php per vedere se il primo e vuoto passi al secondo e lo visualizzi

  5. #5
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Ok con una if in php ma forse si puo fare solo con sql magari con un group by...

    Se lo faccio con un if in php e avessi 5 lingue per news e 100 news per pagina penso che il tutto si appesantirebbe non poco.

    Grazie cmq per il consiglio

    P.S.: Piero.mac, se ci sei batti un colpo

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    131
    dubito che si possa fare una cosa del genere

    1 "sasa" "newsitalia" "newsinglese"
    2 "fifi" "" "newsinglese"
    3 "toto" "newsitalia" ""

    e fargli prendere una volta uno e una volta un'altra

    a meno che estrai il singolo record e lo memorizzi in una array per non appensantire in caso di qlc di simile

    1 "1" "newsitalia" "newsinglese"
    2 "2" "newsitalia" "newsinglese"
    3 "3" "newsitalia" "newsinglese"
    4 "4" "newsitalia" "newsinglese"
    5 "5" "newsitalia" "newsinglese"
    6 "6" "newsitalia" "newsinglese"

    ovvero quando i campi son tutti pieni

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.