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

    Select su più database

    Salve, ho una pagina dove mantengo attive connessioni su più database, ho questo sistema in quasi tutte le pagine del sito, ma questa è diversa. Nelle altre pagine, quando faccio leggere i dati dalla tabella del primo database, dopo posso aprire subito la connessione alla seconda, dopo che apro la connessione con la seconda tabella nel secondo database, non posso più modificare i dati contenuti nel primo database, il che mi và anche bene nelle altre pagine, ma qui avvio un ciclo di mofica su più tabelle, ovvero modificare il contenuto nella tabella utenti, e in quella ordini per esempio.
    Adesso per esigenza ho deciso di tenere separati i database.
    Volevo sapere come fosse possibile dopo aver scritto la select ordinare anche di cercare nel database giusto alla query.
    Da quello che ho capito il primo database lo usa nella lettura dei dati, oppure non sà più come selezionare le tabelle di quel db successivamente.

    Al database ci arrivo con una semplice query stile my sql, dove prima seleziono l'id, e poi seleziono tramite il comando FROM la tabella di provenienza, mi interesserebbe sapere come faccio a dire alla query anche i ldatabase di provenienza.
    Grazie!

  2. #2
    Potresti fare una cosa simile:
    codice:
    class test{
      
       public function esegui($query,$db){
          if($db=='primo'){
          mysql_connect('host1','nome1',pass1');
          mysql_select_db('db1');
          }elseif($db=='secondo'){
          mysql_connect('host2','nome2',pass2');
          mysql_select_db('db2');
          }
          return mysql_query($query);
        }
    }
    $db = new test();
    $db->esegui('...query sql...','...numero database...');

  3. #3
    Già ho creato uno schema simile, ovvero ho diviso le connessioni cambiandogli il nome, ecc.
    Mi servirebbe più che altro un comando che scelga il database, ovvero se io ho ad esempio:
    mysql_queryt{"SELECT nome_campo FROM nome_tabella WHERE campi_vari, ecc...."}, come faccio a dirgli anche il database da selezionare? Avevo visto una volta una cosa simile:
    mysql_queryt{"SELECT nome_campo FROM nome_tabella WHERE campi_vari, ecc.... , $database_scelto"}.

    Però non mi funziona.... La sintassi giusta quale può essere?

  4. #4
    Si il $database_scelto sarebbe la variabile di connessione che vuoi usare
    cioè devi impostare la variabile col mysql_connect del db che vuoi usare

  5. #5
    Grazie, mi hai foatto capire con il tuo messaggio che devo dirgli ogni volta il database da usare e dargli anche di nuovo i dati per la connessione.
    Ho messo prima la variabile $db1, poi ho messo la "mysql_select_db..." e poi dopo la query.
    Il problema è che devo farlo ogni volta, per fare questi aggiornamenti lo faccio connettere 4 volte al db, per poi rifare la select, ecc.
    Perchè ogni volta che cambio database devo rimettere i dati. Spero che si faccia così e che non sia un mio metodo improvvisato.

  6. #6
    No, non si fa cosi'. Se leggi la pagina del manuale su mysql_query vedi che e' possibile specificare un secondo argomento, che e' il link al database (creato con mysql_connect).

    Se poi i database risiedono sullo stesso server e ad essi si accede con lo stesso utente, allora non servono neanche due connessioni ma basta specificare database.tabella nella query.

  7. #7
    Grazie per la dritta. Posso chiederti di farmi un sempio applicandolo ad esempio a questa query:

    Codice PHP:
    mysql_query("SELECT .... FROM .... WHERE ...."
    Grazie in anticipo.



    P.S. Dove lo trovo il manuale che dici tu?

  8. #8
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Salve, ve lo scrivo qui per non aprire un'altro post.
    Devo cancellare un dato dalla tabella:
    Codice PHP:
    $cancella mysql_query("DELETE FROM tabella WHERE id = '$id'");
    $cancella "DELETE FROM tabella WHERE id = '$id'"
    Ho provato a fare così ma mi dà questo errore:
    Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';'
    Ma io non vedo errori di punteggiatura.
    Sapete quale possa essere il problema? Magari ho sbagliato a scrivere...

  10. #10
    Nell'errore ti dirà anche la riga presumo. Se è quella postata probabilmente esso si trova trova nella/e righe precedenti.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.