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

    Problema che non riesco a risolvere, chi mi aiuta ?

    Allora sto cercando di creare un database e di crearvi al suo interno un paio di tabelle, ma mi blocco gia alla prima tabella con il seguente errore 1049 : Unknown database 'nomelistino'

    Cerco di spiegarmi meglio e scusate per il codice schifoso ma sto solo abbozzando delle idee
    ho una pagina admin.php che si trova in una cartella admin, in radice ho il mio solito index.php

    file admin.php

    <html>
    <head><title>Pagina Amministrazione Listino</title></head>
    <body>
    <?php
    $nomedatabase = "listino";

    include "../common_db.inc"; // file che dopo spiego

    error_reporting(0);
    $link_id = db_connect($nomedatabase); // la funzione presente nel file common_db.inc

    // ora abbiamo 3 possibilità, la funzione restituisce 2 se non esiste il database con il nome riportato nella funzione
    // la funzione restituisce 1 se non è stato passato nessun valore alla funzione
    // la funzione restituisce 0 se i parametri di connessione all'host sono sbagliati
    // altrimenti restituisce un puntatore valido al database

    if ($link_id <= '1') die(sql_error());
    else if ($link_id == '2') {
    echo "meglio creare il database '$nomedatabase' prima di lavorarci, non credi ?
    ";
    // da qui procederemo richiamando la funzione creadatabase presente in common_db.inc
    $databasecreato = creadatabase($nomedatabase);

    }else{
    echo "Connesso con successo al database in $dbhost. $link_id
    ";
    }
    ?>
    </body>
    </html>



    File common_db.inc

    <?php
    // Script che si occupa di controllare o meno l'esistenza dei database citati in basso

    $dbhost='localhost'; // nome dell'host dove si trova il nostro database SQL
    $dbusername='root'; // nome utente accesso database
    $dbuserpassword='password'; // password accesso database
    // $default_dbname= 'mysql'; // nome standard per il database in caso non ne esistano altri

    //Inizializziamo le variabili di segnalazione errore

    $MYSQL_ERRNO = '';
    $MYSQL_ERROR = '';

    // per prima cosa inizializziamo la nostra funzione per la connessione al server che ci fornirà eventualmente
    // l'errore che non ha permesso la sua corretta inizializzazione

    function db_connect($dbname){
    global $dbhost, $dbusername, $dbuserpassword, $default_dbname; // dichiariamo le variabili globali
    global $MYSQL_ERRNO, $MYSQL_ERROR;

    $link_id = mysql_connect($dbhost, $dbusername,$dbuserpassword); // creiamo una connessione con il database
    if (!$link_id){
    $MYSQL_ERRNO = 0;
    $MYSQL_ERROR = "Connessione fallita all'host $dbhost."; // viene visualizzato un errore impossibilità connettersi
    //al database
    return 0;
    }
    Else if(empty($dbname)){ //se il nome passato alla funzione è vuoto restituisce 1
    $MYSQL_ERRNO = mysql_errno();
    $MYSQL_ERROR = mysql_error();
    return 1;
    }

    else if(!empty($dbname) && !mysql_select_db($dbname)) { // se il database non esiste restituisce 2
    $MYSQL_ERRNO = mysql_errno();
    $MYSQL_ERROR = mysql_error();
    return 2;
    }
    else return $link_id; // altrimenti restituisce un puntatore
    }
    // funzione che restituisce l' errore relativo al database
    function sql_error() {
    global $MYSQL_ERRNO, $MYSQL_ERROR;

    if(empty($MYSQL_ERRNO)){
    $MYSQL_ERRNO = mysql_errno();
    $MYSQL_ERROR = mysql_error(); // altro errore generico
    }
    if(empty($MYSQL_ERROR)){
    $MYSQL_ERRNO = mysql_errno();
    $MYSQL_ERROR = "Non hai specificato il nome del database !";
    }
    return "$MYSQL_ERRNO : $MYSQL_ERROR";
    }

    // funzione che si occupa di creare lo scheletro del database del listino
    function creadatabase($dbname){
    global $dbhost, $dbusername, $dbuserpassword, $default_dbname; // dichiariamo le variabili globali

    // creazione tabella LISTINI
    // INIZIO
    $listini_tablename = 'listini'; // definizione nome tabella
    $listini_table_def = "id_annomese MEDIUMINT(10) NOT NULL AUTO_INCREMENT, "; //definizione array valori
    $listini_table_def .= "annomese VARCHAR(14) NOT NULL";
    $listini_table_def .= "PRIMARY KEY (id_annomese)"; // nota che l'ultimo non ha la virgola finale
    // FINE LISTINI

    if(!mysql_query("CREATE DATABASE $dbname")) die (sql_error());
    echo "Creato con successo nell' $dbhost il database $dbname
    ";
    if(!mysql_select_db($dbname)) die (sql_error());

    ///////////////// QUI GENERA L'ERRORE //////////////////////////////////////////////////////////
    if (!mysql_query("CREATE TABLE $listini_tablename ($listini_table_def)")) die (sql_error());
    /////////////////////////////////////////////////////////////////////////////////////////////////////
    echo "Creato con successo nell'database $dbname la tabella $listini_tablename
    ";
    return 0;
    }

    ?>


    Se tolgo la voce AUTO_INCREMENT l'errore sparisce e la tabella viene creata correttamente, dove sbaglio ??? Non riesco a capirlo e ogni vostro suggerimento mi sarà utlissimo, grazie in anticipo.

  2. #2
    usare i tag [ code] o [ php] no....

    $listini_table_def .= "annomese VARCHAR(14) NOT NULL, ";

    manca la virgola al fondo di questa riga

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Scusami per il tag, non lo sapevo, e grazie per la risposta. Eppure ero sicuro di averlo ricontrollat 10 volte, scusami ma sono niubbo grazie mille.

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.