Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Leox94
    Registrato dal
    Nov 2013
    residenza
    Firenze
    Messaggi
    63

    Creare Database attraverso file di testo (.txt)

    Salve a tutti. Mi è stato affidato un compito che consiste nel realizzare due file:
    1 - il primo deve essere un include che consenta l'accesso al database e metta a disposizione del resto del programma, nella pagina in cui viene incluso, una variabile (scalare od oggetto) che rappresenti il db ($db) da utilizzare in tutti i gli accessi. La variabile deve essere già 'pronta all'uso' (database aperto) all'uscita del file incluso. Prevedere in testa al file la configurazione dei parametri di accesso (nome server, nome database, username e password) da usare per l'aperura del DB, in modo da avere un punto unico di configurazione dell'accesso al database.


    2 - il secondo deve essere una pagina PHP richiamabile da browser che apra un file di testo contenente una serie di righe, ognuna un comando SQL da eseguire sul database, lo legga riga per riga ed esegua il comando stesso sul database. Ovviamente, questa pagina utilizzerà il fiel include creato al punto 1.

    Io uso Easyphp come server locale per testare tali progressi, però non riesco ad andare avanti, ovvero riesco a leggere il file con all'interno un'istruzione sql CREATE con vari parametri (id, utente, pass) però non riesco ad eseguire la query sul db.
    Attendo risposte grazie infinite

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Leggi il file di testo con la funzione file(), avrai un array che contiene una query in ogni posizione.
    Cicli sull'array con foreach e ad ogni iterazione esegui in mysql_query() o chi per lui la entry corrente.

    Per il file che esegue la connessione... basta che in un file php ci metti le istruzioni per connettersi al db.

  3. #3
    Utente di HTML.it L'avatar di Leox94
    Registrato dal
    Nov 2013
    residenza
    Firenze
    Messaggi
    63
    Ok mi sembra abbastanza chiaro! Ma non devo creare nessun Database su "phpmyAdmin"?
    Scusami la mia ignoranza sono ancora alle prime armi... Io in teoria avrei fatto così:
    <?
    $file=fopen("testo.txt","r");

    //verifica se il file esiste altrimenti stampa un Error
    if(!$file =fopen("testo.txt","r")){
    echo "Error";
    }
    //se esiste esegue il ciclo
    else{
    while(!feof($file)){
    $riga=fgets($riga,1024);
    }
    }
    $query.=$riga;
    $inviadati=mysql_query("$query");
    if(!$inviadati){
    die("Error" . mysql_error());
    }

    //chiude il file
    fclose($file);

    // chiudo la connessione a MySQL
    mysql_close();
    ?>

    Sapresti dirmi dove ho sbagliato?

  4. #4
    Non puoi eseguire contemporaneamente più query SQL concatenate. Devi spostare l'esecuzione delle singole query nel ciclo while in cui scorri il file di testo:

    Codice PHP:
    ...
    while (!
    feof($file)) { 
        
    $riga fgets($riga1024);
        
    mysql_query($riga) or die("Error ".mysql_error());
    }
    ... 
    Ultima modifica di satifal; 08-11-2013 a 18:38
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it L'avatar di Leox94
    Registrato dal
    Nov 2013
    residenza
    Firenze
    Messaggi
    63
    Ti chiedo per favore se puoi aiutarmi. Ho provato a utilizzare il foreach in questo modo

    <?php


    include 'config.php';

    $file=file("testo.txt");

    foreach($file as $riga){
    mysql_query($riga, $db);
    echo"$riga";
    }


    ?>

    ed in effetti con echo vedo a stampa l'istruzione query CREATE che si trova dentro il file di testo. Però adesso come faccio a eseguirla la query su Phpmyadmin perchè non viene create nessuna tabella!
    Scusami per il disturbo e grazie per la disponibilità

  6. #6
    Utente di HTML.it L'avatar di Leox94
    Registrato dal
    Nov 2013
    residenza
    Firenze
    Messaggi
    63
    Ho provato a fare come mi hai detto.
    Nel file 'config.php' ho messo l'istruzione mysql_connet con i vari parametri e infatti funziona. Ora il mio problema è questo:
    ho provato a utilizzare il foreach per creare un array e itererare il tutto ma non riesco a farla eseguire quella query su phpmyadmin...probabilmente mi manca qualcosa. Grazie per la disponibilità

    <?php


    include 'config.php';

    $file=file("testo.txt");

    foreach($file as $riga){
    mysql_query($riga, $db);
    echo"$riga";
    }


    ?>

Tag per questa discussione

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.