+ Rispondi alla Discussione
Risultati da 1 a 12 di 12

Aiuto, come estrarre i dati da più tabelle

Ultimo Messaggio di andrek il:
  1. #1
    User
    Data Registrazione
    Dec 2015
    Località
    roma
    Messaggi
    34

    Aiuto, come estrarre i dati da più tabelle

    Ciao a tutti.

    Vorrei farvi una domanda: secondo voi è possibile selezionare ed estrarre contemporaneamente tutti i dati da più di una tabella dello stesso database?

    Fino ad oggi io ho sempre selezionato i dati da una sola tabella con un comando del tipo:

    $query = "SELECT * FROM topolino";

    Se volessi estrasse contemporaneamente tutti i dati da 10 tabelle e ogni tanto ne aggiungo delle altre, come faccio?

    Grazie mille, ciao.

  2. #2
    Utente Premium
    Data Registrazione
    Jun 2014
    Località
    Rimini
    Messaggi
    229
    Sì, è possibile
    Codice PHP:
    SELECT campo1campo2campo3, [...] FROM tabella1tabella2tabella3, [...] 
    ma una query così, seppur funzionante, non avrebbe senso se non gli metti un parametro (clausola) che gli dia un ordine (sempre che sia richiesto). Solitamente si fa con il comando WHERE.
    Valuto proposte di lavoro e collaborazioni.

  3. #3
    User
    Data Registrazione
    Dec 2015
    Località
    roma
    Messaggi
    34

    Aiuto, come estrarre i dati da più tabelle

    Ciao Oslino, grazie per la risposta.

    Avevo pensato a questa soluzione, ma se in futuro dovessi aggiungere altre tabelle al database? Non posso stare sempre a modificare il codice.

    Quello che vorrei riuscire a scrivere è una cosa del genere:

    Codice PHP:
    SELECT FROM .... 
    dopo FROM vorrei non scrivere il nome delle tabelle ma dirgli di selezionare tutte le tabelle presenti nel database.

    Spero di essere riusci a spiegarmi.

    Grazie, ciao.

  4. #4
    Utente Premium
    Data Registrazione
    Jun 2014
    Località
    Rimini
    Messaggi
    229
    Sinceramente non credo che esista un comando SQL che faccia quel che vuoi tu e se c'è non ne ho mai sentito parlare.
    Avresto bisogno di qualcosa del tipo
    Codice PHP:
    SELECT FROM 
    che comunque rimane senza senso dato che ti darebbe come risultato il prodotto di ogni campo delle tabelle moltiplicato per ogni campo delle altre tabelle, in pratica una enorme ripetizione degli stessi valori.
    Non so se funziona, non l'ho mai provato e sarei curioso di sapere se lo prende!
    Prova e facci sapere.
    Ultima modifica di Oslino; 28-12-15 alle 17:54
    Valuto proposte di lavoro e collaborazioni.

  5. #5
    User
    Data Registrazione
    Dec 2015
    Località
    roma
    Messaggi
    34

    Aiuto, come estrarre i dati da più tabelle

    Ciao Oslino, ho provato la tua soluzione, ma purtroppo non funziona.

    Questo è quello che ho scritto:

    Codice PHP:
    $query "SELECT * FROM *";$select = @mysql_query($query) or die("Query fallita !!!"); 
    Altre idee?

    Ciao.

  6. #6
    User
    Data Registrazione
    Dec 2008
    Località
    Italia
    Messaggi
    233
    Ciclo? Se gli dai numeri incrementali come suffisso al nome delle tabelle puoi tentare così:

    Codice PHP:
    $array array();
    $base "nometabella_";
    $i 0//Se la prima tabella è nometabella_0 e le successive 1, 2, 3...
    while(mysql_query("DESCRIBE " $base.$i)) { //Finché esiste la tabella
        
    $result mysql_query("SELECT * FROM " $base.$i); //Query
        
    while($user mysql_fetch_array($result)) {
            
    array_push($array$user); //Metto tutti i risultati nell'array, al termine qui avrò i risultati di tutte le tabelle
        
    }
        
    $i++;

    Non so che ci devi fare e se ha senso, però in teoria qualcosa del genere dovrebbe funzionare.

  7. #7
    Utente Premium
    Data Registrazione
    Mar 2009
    Messaggi
    300
    Ciao samurai.sette, a mio avviso una delle possibili cause del problema sta nel fatto che siano utilizzate funzioni MySQL deprecate, mi riferisco a questa:

    Citazione Originariamente Scritto da samurai.sette Visualizza Messaggio
    mysql_query($query)
    che dovrebbe essere convertita nella nuova mysqli_query(). Per approfondimenti rimando alla guida ufficiale.
    Mi preme far notare che con la nuova versione di PHP7 le vecchie funzioni MySQL, come quella citata, non sono più disponibili.

    Buon lavoro.

  8. #8
    User
    Data Registrazione
    Dec 2015
    Località
    roma
    Messaggi
    34
    Ciao ragazzi, ho provato le vostre soluzioni ma purtroppo non va...
    Non so proprio come fare

  9. #9
    Moderatore L'avatar di PietroR
    Data Registrazione
    Feb 2013
    Località
    Brescia
    Messaggi
    489
    Aggiungi PietroR su Linkedin
    Ciao samurai.sette
    potresti costruire una pagina php in cui selezioni le tabelle da mettere in query, o il processo deve essere automatico? Detto ciò io, se le tabelle non devono essere messe in JOIN per qualche motivo, farei query separate

  10. #10
    User
    Data Registrazione
    Dec 2015
    Località
    roma
    Messaggi
    34
    Ciao PietroR. Grazie per la risposta.

    Il processo deve essere automatico, nel senso che quando aggiungo una tabella al database deve automaticamente estrarre tutti i suoi dati.
    Preciso anche che la struttura delle tabelle varia da tabella a tabella.

    Ciao.

  11. #11
    Moderatore L'avatar di PietroR
    Data Registrazione
    Feb 2013
    Località
    Brescia
    Messaggi
    489
    Aggiungi PietroR su Linkedin
    Secondo me, se anche la struttura della tabella cambia non credo che ci sia modo di intervenire se non da codice.

  12. #12
    User
    Data Registrazione
    Dec 2014
    Località
    varese
    Messaggi
    18
    ciao, dovresti fare una query che ti dia come risultato i nomi delle tabelle del db e salvare il risultato in un array, dopodichè lo scorri con un ciclo ed estrai i record per ogni tabella:

    $sql
    = "SHOW TABLES FROM my_database";
    $result = mysql_query($sql);


    while($row = mysql_fetch_row($result)) {
    $tabella = $row[0];
    $risultato = mysql_query("SELECT * FROM $tabella") or die(mysql_error());

    }

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.