Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Aiuto Query su piu tabelle!

    Salve a tutti, attualmente utilizzo questa query per estrarre dati dalla tabella "contacts"

    $query = "SELECT * FROM `contacts` LIMIT $NumCampi";

    Uno dei campi che ho nella tabella "contacts" è "idcitta" e ogni numero corrisponde al nome di una città che è scritto in un altra tabella del database... come faccio a recuperare all'occorrenza in nome della città?

    Come devo modificare la query?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    138
    devi fare il JOIN fra la tua tabella e quella della città

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101
    Suppongo che le due tabelle si chiamino:

    'contacts' e 'città'

    query = "SELECT * FROM contacts, città WHERE idcittà=città.id LIMIT '$NumCampi'";

    occhio agli apici, sono gli errori che a volte fanno ammattire.

    Ciao.

  4. #4
    Perfetto, grazie 1000...
    Approfitto per fare un altra domanda importante...

    Come devo modificare la tua query per poter tirar fuori dalla tabella contacts solo alcuni campi e dalla tabella citta un solo campo(il nome della città) e non tutti quelli della tabella che non mi servono?

    ...per la prima tabella, la "contacts", mi sevono solo due campi e pensavo si potesse fare così:

    $query = "SELECT name, email, FROM `contacts`, ecc ecc

    ...ma poi per dirgli che della tabella "città" mi serve solo il campo nome e deve corrispondere all' "idcitta" dell'altra tabella, come si puo fare? non ne ho la piu pallida idea...

    è fattibile?

    e grazie per la risposta di prima!

  5. #5
    Codice PHP:
    $sql "
    SELECT tab1.campo1, tab1.campo2, tab2.campo3
    FROM tab1, tab2 
    WHERE tab1.idcittà = tab2.id 
    LIMIT '
    $NumCampi'
    "

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Grazie Alcio, ho fatto così
    Codice PHP:
    $query "SELECT contacts.name, contacts.email, contacts.idcitta, citta.name FROM contacts, citta WHERE contacts.idcitta=citta.name LIMIT $NumCampi"
    Però ho un problema... dopo la query, eseguo un ciclo FOR e all'interno del ciclo ho questo:
    Codice PHP:
    $array mysql_fetch_row($XXXXX);
        print 
    "".$array[0]."
    "
    ;
        print 
    "".$array[1]."
    "
    ;
        print 
    "".$array[2]."
    "
    ;
        print 
    "".$array[3]."
    "

    ...praticamente, $array[0], mi corrisponde effettivamente a quello che mi serve, mentre per il nome della città non vi è corrispondenza, in quanto $array[3] ha sempre lo stesso valore e cioè il nome della prima citta in tabella....

    Come mai nell'array mi viene fuori sempre lo stesso nome di città?
    è la query che non è corretta?

    Forse non sono stat chiaro nell'illustrarvi le due tabelle nel DataBase... lo faccio ora:

    TABELLA contacts...............................TABELLA citta
    -name.......- idcitta........................- idcitta.....-name
    MARIO............1................................ 1...........NAPOLI
    LUCA..............10.............................. 10..........MILANO
    ANTONIO.........24..............................24 ..........ROMA
    FILIPPO...........3............................... .3...........GENOVA
    GIOVANNI........78...............................7 8..........SAVONA

    A me interessa avere nell'array, oltre al nome della persona, e l'email(presi dalla tabella contacts) anche il nome della città in base all'id

    Quindi nel caso di "MARIO", so che la sua città di residenza ha ID=1 e quindi nella tabella "Citta" dovro leggere l'ID=1 e prendermi il name corrispondente, in questo caso "NAPOLI"

    Spero sia fattibile, sto impazzendo!

  7. #7
    Nessuno mi aiuta?
    :quote:

  8. #8
    Ragazzi, scusate se insisto, ma continuo ad avere quato problema...
    ...mi tira fuori sempre la stessa città, è la query che va rivista, lo so, però non riesco a capire come, ho letto qualcosa sull'utilizzo di JOIN, ma non riesco ad integrarlo nella mia query, non sono neanche sicuro sia la soluzione giusta per me...

    ...nel post sopra ho spiegato bene la situazione del DB per voi esperti credo sia semplice...

    Mi date un aiuto?

    Grazie 1000

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101
    Hai fatto un po di casino nella query che tra l'altro ti aveva esposto bene alcio74.

    $query = "SELECT contacts.nome, contacts.email, città.nome
    FROM contacts, città
    WHERE idcittà=città.id
    LIMIT '$numCampi'";

    Ciao.

  10. #10
    Grazie per la risposta caponemg... hai ragione ho fatto un po di casino!

    Senti, gentilmente, mi spieghi il WHERE nella tua query?
    Vorrei capire in modo da poter fare da solo le prossime volte...
    ...come mai nel SELECT hai scritto nomeTabella.nomeCampo e nel WHERE solo il nomeCampo?

    e poi ancora... tu hai scritto "citta.id" ma il mio campo nella tabella citta, si chiama "idcitta", quindi devo modificare, giusto?

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.