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

    Creare database da codice

    Ciao a tutti.
    Ho un problema. Vorrei che all'avvio dell' index.php, se non esiste il database e la tabella, li crei in automatico secondo i parametri del file config.php e si ricarica nuovamente per essere mostrato nel browser.
    Ho fatto il seguente, che però mi dà problemi.
    codice:
    Notice: mysql_create_db(): This function is deprecated, please use mysql_query() to issue a SQL CREATE DATABASE statement instead. in c:\programmi\easyphp1-8\www\autoricambinew\index.php on line 58
    
    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\autoricambinew\index.php:3) in c:\programmi\easyphp1-8\www\autoricambinew\index.php on line 70
    config.php
    Codice PHP:
    $db_host "localhost";
    $db_user "root";
    $db_password "";
    $db_name "autoricambi"

    index.php
    Codice PHP:
    <html>

    <?
    include("config.php");
    $connessione mysql_connect($db_host$db_user,$db_password) or die("Connessione fallita !"); 
    $conn_dbmysql_select_db($db_name);

    if(
    $conn_db ){?>


    <body>

    <table border="0" width="100%">
      <tr>
        <td width="100%" colspan="3" bgcolor="#0000FF" bordercolor="#0000FF">
          <p align="center">[b]<font size="5" color="#FFFFFF">GESTIONE AUTORICAMBI</font>[/b]</td>
      </tr>
      <tr>
        <td width="100%" colspan="3"></td>
      </tr>
      <tr>
        <td width="100%" colspan="3"></td>
      </tr>
      <tr>
        <td width="100%" colspan="3"></td>
      </tr>
      <tr>
        <td width="33%">[url="inserisciricambio.htm"]Inserisci Nuovo AutoRicambio[/url]</td>
        <td width="33%"></td>
        <td width="34%"></td>
      </tr>
      <tr>
        <td width="33%">[url="delete.php"]Visualizza AutoRicambio[/url]</td>
        <td width="33%"></td>
        <td width="34%"></td>
      </tr>
      <tr>
        <td width="33%"></td>
        <td width="33%"></td>
        <td width="34%"></td>
      </tr>
      <tr>
        <td width="33%"></td>
        <td width="33%"></td>
        <td width="34%"></td>
      </tr>
    </table>

    </body>

    </html>

    <?}

    else {
    $nome_database$db_name;

    $database=mysql_create_db($nome_database,$connessione);
    $result mysql_query($database$connessione);
    $query "CREATE TABLE materiale(
                        PRIMARY KEY (IdMateriale),
                        IdMateriale INT(11) AUTO_INCREMENT NOT NULL, 
                        Codice_Materiale VARCHAR(50) DEFAULT '', 
                        Descrizione VARCHAR(50) DEFAULT ''
                        )"
    ;


     
    $result1 mysql_query($query$connessione);

     
    header ("Location: index.php");

    }
    ?>
    Qualche aiuto?

  2. #2
    beh, i due errori parlano da soli

    il primo e' dovuto al fatto che usi una funzione deprecata. Usa quella che ti viene consigliata invece

    il secondo e' dovuto al fatto che invii un header dopo aver stampato a video del testo. In particolare cio' che non gli garba e' la prima scritta "<html>" Che puoi spostare sotto

  3. #3
    Grazie per avere risposto.
    Ho sistemato un pò, ma mi dà ancora questo errore.

    codice:
    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\autoricambinew\index.php:3) in c:\programmi\easyphp1-8\www\autoricambinew\index.php on line 70
    la modifica:
    Codice PHP:


    <?
    include("config.php");
    $connessione mysql_connect($db_host$db_user,$db_password) or die("Connessione fallita !"); 
    $conn_dbmysql_select_db($db_name);

    if(
    $conn_db ){?>

    <html>
    <body>

    <table border="0" width="100%">
      <tr>
        <td width="100%" colspan="3" bgcolor="#0000FF" bordercolor="#0000FF">
          <p align="center">[b]<font size="5" color="#FFFFFF">GESTIONE AUTORICAMBI</font>[/b]</td>
      </tr>
      <tr>
        <td width="100%" colspan="3"></td>
      </tr>
      <tr>
        <td width="100%" colspan="3"></td>
      </tr>
      <tr>
        <td width="100%" colspan="3"></td>
      </tr>
      <tr>
        <td width="33%">[url="inserisciricambio.htm"]Inserisci Nuovo AutoRicambio[/url]</td>
        <td width="33%"></td>
        <td width="34%"></td>
      </tr>
      <tr>
        <td width="33%">[url="delete.php"]Visualizza AutoRicambio[/url]</td>
        <td width="33%"></td>
        <td width="34%"></td>
      </tr>
      <tr>
        <td width="33%"></td>
        <td width="33%"></td>
        <td width="34%"></td>
      </tr>
      <tr>
        <td width="33%"></td>
        <td width="33%"></td>
        <td width="34%"></td>
      </tr>
    </table>

    </body>

    </html>

    <?}

    else {
    $nome_database$db_name;

    $result mysql_query($nome_database$connessione);

    $query "CREATE TABLE materiale(
                        PRIMARY KEY (IdMateriale),
                        IdMateriale INT(11) AUTO_INCREMENT NOT NULL, 
                        Codice_Materiale VARCHAR(50) DEFAULT '', 
                        Descrizione VARCHAR(50) DEFAULT ''
                        )"
    ;
     
    $result1 mysql_query($query$connessione);

     
    header ("Location: index.php");

    }
    ?>
    Come posso fare per aggirare l'ostacolo?

  4. #4
    sicuro che non stampi niente prima di chiamare header? Nemmeno uno spazio????

    guarda che basta che ci sia qualche spazio prima di "<?" e c'e' l'errore

  5. #5
    c'erano due righe vuote sopra <?
    Solo che ora mandando in esecuzione, carica lentamente e alla fine dà il seguente messaggio di errore:


    Warning: mysql_connect(): Can't connect to MySQL server on 'localhost' (10048) in c:\programmi\easyphp1-8\www\autoricambinew\index.php on line 3
    Connessione fallita !

    non riesce a prendere la connessione, anche se i parametri sono ok.

    Non c'è un altro modo per fare tutto ciò?

  6. #6
    non capisco perche' devi far ricaricare la pagina

    Codice PHP:
    <?
    ...

    if(!
    $conn_db ){

    $nome_database$db_name;

    $database=mysql_create_db($nome_database,$connessione);
    $result mysql_query($database$connessione);
    $query "CREATE TABLE materiale(
                        PRIMARY KEY (IdMateriale),
                        IdMateriale INT(11) AUTO_INCREMENT NOT NULL,
                        Codice_Materiale VARCHAR(50) DEFAULT '',
                        Descrizione VARCHAR(50) DEFAULT ''
                        )"
    ;


    $result1 mysql_query($query$connessione); 
    $conn_dbmysql_select_db($db_name$connessione ); 

    }
    else
    {
    ?>

    <html>
    etc... etc...
    </html>

    <?
    }
    ?>

  7. #7
    Allora

    ho cambiato come mi hai detto tu e mi da il seguente:

    Notice: mysql_create_db(): This function is deprecated, please use mysql_query() to issue a SQL CREATE DATABASE statement instead. in c:\programmi\easyphp1-8\www\autoricambinew\index.php on line 10

    Allora ho ricambiato così:

    Codice PHP:
    <?
    include("config.php");
    $connessione mysql_connect($db_host$db_user,$db_password) or die("Connessione fallita !"); 
    $conn_dbmysql_select_db($db_name);

    if(!
    $conn_db ){ 

    $nome_database$db_name

    $database="CREATE DATABASE $nome_database"
    $result mysql_query($database$connessione); 

    $query "CREATE TABLE materiale( 
                        PRIMARY KEY (IdMateriale), 
                        IdMateriale INT(11) AUTO_INCREMENT NOT NULL, 
                        Codice_Materiale VARCHAR(50) DEFAULT '', 
                        Descrizione VARCHAR(50) DEFAULT '' 
                        )"



    $result1 mysql_query($query$connessione); 
    $conn_dbmysql_select_db($db_name$connessione ); 



    else 
    {....
    mi da una pagina bianca al primo colpo. Se faccio f5 allora stampa l'html e crea il database, ma non la tabella .
    Aiuto!!!

  8. #8
    Originariamente inviato da 19pantarei75
    Allora

    ho cambiato come mi hai detto tu e mi da il seguente:

    Notice: mysql_create_db(): This function is deprecated, please use mysql_query() to issue a SQL CREATE DATABASE statement instead. in c:\programmi\easyphp1-8\www\autoricambinew\index.php on line 10
    ok, avevo fatto un errore nel copia incolla.

    Poi una volta creato il DB devi selezionarlo. Quindi il mysql_select_db va prima della query di creazione tabella

    Infine a questo punto credo tu possa togliere l'else. In quanto tutto dovrebbe essere andato a buon fine. Al limite aggiungi un nuovo if nel quale controlli che effettivamente il db sia stato creato e in caso contrario emetti un messaggio di errore

  9. #9
    cambiata cosi:
    Codice PHP:
    <?
    include("config.php");
    $connessione mysql_connect($db_host$db_user,$db_password) or die("Connessione fallita !"); 
    $conn_dbmysql_select_db($db_name);

    if(!
    $conn_db ){ 

    $nome_database$db_name

    $database=mysql_create_db($nome_database,$connessione); 
    $result mysql_query($database$connessione); 
    $conn_dbmysql_select_db($db_name$connessione ); 

    $query "CREATE TABLE materiale( 
                        PRIMARY KEY (IdMateriale), 
                        IdMateriale INT(11) AUTO_INCREMENT NOT NULL, 
                        Codice_Materiale VARCHAR(50) DEFAULT '', 
                        Descrizione VARCHAR(50) DEFAULT '' 
                        )"



    $result1 mysql_query($query$connessione); 



    else...

    Notice: mysql_create_db(): This function is deprecated, please use mysql_query() to issue a SQL CREATE DATABASE statement instead. in c:\programmi\easyphp1-8\www\autoricambinew\index.php on line 10

    se faccio f5 aggiornando, crea tutto. ma l'utente finale non dovrebbe aggiornare, ma avere tutto già creato all'avvio. Come faccio?

  10. #10
    ma perche' hai rimesso il create_db se lo avevi tolto? E' deprecato. Punto.

    fai la query di creazione come facevi prima.

    e tolgi pure l'else.

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.