Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema con funzioni personalizzate mysql

    Ho creato le seguenti funzioni
    Codice PHP:
    function nome_colonne_tabella($tabella) {
        
    $query=mysql_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$database' AND TABLE_NAME = '$tabella'");
        while(
    $row1=mysql_fetch_array($query)) {
        return 
    $nome=$row1['COLUMN_NAME'];
        }
        }
        
    function 
    cont_while($tabella) {
            
    $query=mysql_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$database' AND TABLE_NAME = '$tabella'");
            return 
    $row1=mysql_fetch_array($query);
        } 
    che utilizzo qui

    Codice PHP:

    while(cont_while('tabella')) {
    echo 
    nome_colonne_tabella('tabella');


    ma mi viene fuori questo errore

    codice:
    IDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDIDID
     Fatal error: Maximum execution time of 30 seconds exceeded in F:\xampp\htdocs\ess_php\class_conndb\class.php on line 40
    come mai?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Nel while non puoi metterci la funzione sennò torna sempre il solito valore, e va in loop
    poi non ho capito a cosa servono dato che le query sono uguali, fai prima senza funzioni
    ad eseguire una sola volta la query e ciclare tutti i risultati

  3. #3
    voglio capire perche non funziona il while con funzioni personalizzate

  4. #4
    Perchè oltra all'inutilità (per come sono fatti) dei tuoi metodi personalizzati, sonmo concettualmente errati.

    Il ciclo while continua la sua esecuzione finchè la condizione è vera. Nel tuo codice avviene che il while richiama il metodo cont_while() che esegue la query e restituisce un record e ne stampa il contenuto alla seconda iterazione effettua la stessa cosa (invocazione del metodo che esegue sempre la stessa query e restituisce sempre lo stesso record) e così via. Questo comporta che il ciclo va in loop infinito e termina per il superamenteo del tempo concesso alla sua esecuzione.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    capto si puo pure chiudere

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 © 2024 vBulletin Solutions, Inc. All rights reserved.