Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Piros
    Registrato dal
    Dec 2008
    Messaggi
    33

    "Accodare" più comandi in un unico mysql_query

    Ciao a tutti, ho bisogno del vostro aiuto.
    Da una pagina php devo eseguire 2 query SQL:
    -se faccio
    mysql_query("query1");
    mysql_query("query2");
    funziona tutto perfettamente.

    Mi chiedevo se c'era un modo di eseguire tutti e 2 i comandi usando il mysql_query una sola volta in modo da facilitare i controlli sulla riuscita dell'operazione.
    Ho provato a scrivere mysql_query("query1;query2"); ma mi da errore.

    Qualcuno conosce la soluzione? Grazie mille!

  2. #2
    Per quanto ne so non è fattibile al massimo puoi metterle in join se le query lo permettono.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Facile: ti crei una funzione ^^

    Codice PHP:
    function exec_query($query){

        
    $result = array();
        foreach(
    explode(';'$query) as $single_query)
            
    $result[] = mysql_query($single_query);

        return 
    $result;

    }

    print_r(exec_query("$my_query1 ; $my_query2")); 
    Attenzione che funziona solo per se non hai altri ';' es. "SELECT * FROM Punteggiatura WHERE simbolo = ';' ; SELECT * FROM Italiano", in tal caso potresti modificarla così:
    Codice PHP:
    function exec_query(){

        
    $result = array();
        foreach(
    func_get_args() as $single_query)
            
    $result[] = mysql_query($single_query);

        return 
    $result;

    }

    print_r(exec_query("$my_query1"$my_query2")); 
    oppure ti serve una funzione molto più complicata per distinguere le stringhe dal resto del codice (non è banale, ma è fattibile, infatti io l'ho fatto :P)

  4. #4
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Facciamo il join tra DROP TABLE t e SELECT * FROM t


    non sappiamo neanche di che query si tratti

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da ZioLuffio
    Facile: ti crei una funzione ^^

    Codice PHP:
    function exec_query($query){

        
    $result = array();
        foreach(
    explode(';'$query) as $single_query)
            
    $result[] = mysql_query($single_query);

        return 
    $result;

    }

    print_r(exec_query("$my_query1 ; $my_query2")); 
    Attenzione che funziona solo per se non hai altri ';' es. "SELECT * FROM Punteggiatura WHERE simbolo = ';' ; SELECT * FROM Italiano", in tal caso potresti modificarla così:
    Codice PHP:
    function exec_query(){

        
    $result = array();
        foreach(
    func_get_args() as $single_query)
            
    $result[] = mysql_query($single_query);

        return 
    $result;

    }

    print_r(exec_query("$my_query1"$my_query2")); 
    oppure ti serve una funzione molto più complicata per distinguere le stringhe dal resto del codice (non è banale, ma è fattibile, infatti io l'ho fatto :P)
    Che senso ha quando puoi passare le query direttamente in un array come campo della funzione


    Per quanto riguarda la domanda devi esserle tu ad ottimizzare, e poi che query sarebbero scusa?

  6. #6
    cerca su google "php transaction mysql".

    Personalmente non utilizzo tale metodo, salvo che non sto utilizzando il PDO.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  7. #7
    signori, non divaghiamo e non suggeriamo caxxate ( con tutto rispetto parlando ) come quella funzione strana di cui sopra... l'utente vuole controllare meglio le query? Deve usare le transizioni se per controllare intende controllarle... se per "controllare" intende ripetere due volte mysql_query, beh lasciate che ripeta due volte mysql_query
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Infatti, forse avevo interpretato male quel "facilitare i controlli sulla riuscita dell'operazione". Potrebbe bastare una transazione.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Utente di HTML.it L'avatar di Piros
    Registrato dal
    Dec 2008
    Messaggi
    33
    Grazie per i consigli, pensavo ci fosse un metodo più immediato. Probabilmente posso risolvere il problema con la join che non conoscevo prima, devo studiarla un po'! Gli altri metodi credo sarebbero solo uno spreco di tempo per ciò che serve a me Grazie a tutti!

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.