Visualizzazione risultati 1 fino 8 di 8

Discussione: verificare se esiste una tabella

  1. #1
    Guest

    Predefinito verificare se esiste una tabella

    salve a tutti

    vorrei verificare se nel mio database esiste una tabella...
    in rete ho trovato funzioncine del tipo:

    Codice PHP:
    <?
    function table_exists ($table, $db) {
    $tables = mysql_list_tables ($db);
    while (list (
    $temp) = mysql_fetch_array ($tables)) {
    if (
    $temp == $table) {
    return
    TRUE;
    }
    }
    return
    FALSE;
    }
    ?>
    ma vorrei evitare di usarle sia perchè in tutto il resto degli script uso mysqli (improved), ed anche perchè ho letto che mysql_list_tables non è più considerata valida, ed è meglio fare una query con SHOW TABLES...

    dunque questa è la mia query:

    Codice PHP:
    $sql = "SHOW TABLES FROM".$myDB;
    $result = $mysqli->query($sql);
    il mio problema è ora che non so come visualizzare i risultati...
    facciamo finta che volessi stampare in una pagina i nomi di tutte le tabelle come dovrei fare?

    grazie

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Per visualizzare tutte le tabelle dovresti fare cosi:

    Codice PHP:
    $result = mysql_query("SHOW TABLE FROM nome_databse");

    while (
    $tables = mysql_featch_array($result))
    {
    echo
    $tables[0];
    }
    Dentro al while ho messo $tables[0] perché la query stampa un'array associativa di questo genere:

    Codice:
    Array {
      "nome" => "nome_tabella"
      ...
      ...
    }
    Ora non ricordo proprio, ma dovrebbe essere una cosa del genere.
    Ultima modifica di sevenjeak : 19-04-2011 alle ore 09.39.16

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    non va..
    però forse c'è un problema a monte...
    intanto ti ringrazio per l'aiuto...

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    scusa, nella query ho scritto SHOW TABLE al posto di SHOW TABLES, forse è quello il problema.

    Sevenjeak
    Software developer and much more

  5. #5
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    La query da eseguire è SHOW TABLES FROM nome_db o, se vuoi anche filtrare i nomi delle tabelle, SHOW TABLES FROM nome_db LIKE 'pattern_nome_tabella'.

    Il risultato sarà un recordset di una sola colonna, contenente i nomi delle tabelle del database (filtrati, se hai specificato un filtro). Lo esamini esattamente come il risultato di una SELECT (non so come si faccia con mysqli, ma con la libreria standard sono le "classiche" mysql_fetch_row, mysql_fetch_array, etc.).

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  6. #6
    Guest

    Predefinito

    @sevenjack
    no, non era quello il problema, e nemmeno il feAtch ;)

    comunque mo pomeriggio riprovo con più calma a risolvere... comuqnue grazie per l'aiuto

  7. #7
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Il risultato sarà un recordset di una sola colonna...
    Hai ragione, sono io che mi sono confuso con la query SHOW COLUMNS FROM nome_tabella.

    @stepone: Se non dovesse funzionare posta il codice che stai utilizzando.

    Sevenjeak
    Software developer and much more

  8. #8
    Guest

    Predefinito

    adesso ho risolto...
    c'erano due o tre errori banali

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •