Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    260

    Sapere se database vuoto o meno

    Ciao a tutti,
    sto usando dentro a php, il sqlite.
    Ho l'esigenza di vedere se il mio database contiene o meno almeno una tabella (se vuota il file del database è uguale zero ho notato)....
    Esiste qualche funzione a riguardo??

    Grazie 1000

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    puoi usare le seguenti query sql

    codice:
    show TABLE status ;
    codice:
    show TABLES;
    la prima mostra tutti i dettagli delle tabelle
    la seconda solo le tabelle presenti nel database
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    260
    grazie, ma a me interessava saperlo all'interno del codice.
    Se la tabella era già creata, non la ricreavo...

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    bh metti il codice che ti ho dato e controlli che la tabella tua non ci sia mi pare banale
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    260
    non riesco a capire..
    dovrei tipo ottenere un true o false all'interno del codice a seconda che la tabella sia stata creata o meno... Dopo con un if agivo di conseguenza

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    fai così
    Codice PHP:
    $query=mysql_list_tables("nome database");
    while (
    $riga mysql_fetch_row($query)) {
            print 
    "Tabella:" .  $riga[0] ."\n";
        } 
    nel while hai $riga...che è l'insieme di tutte le tabelle
    basta che verifichi con quella

    poi magari qualche guru mi spiega perchè non funziona con un ciclo for each mentre col while si
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  7. #7
    Originariamente inviato da ciro78
    fai così
    Codice PHP:
    $query=mysql_list_tables("nome database");
    while (
    $riga mysql_fetch_row($query)) {
            print 
    "Tabella:" .  $riga[0] ."\n";
        } 
    nel while hai $riga...che è l'insieme di tutte le tabelle
    basta che verifichi con quella

    poi magari qualche guru mi spiega perchè non funziona con un ciclo for each mentre col while si
    non serve essere guru per capire il perche' ...

    la funzione mysql_fetch_row() & C. legge una riga per volta dal buffer del result set.

    il while prosegue nella scansione del result set tramite il TRUE reso dalla funzione mysql_fetch_* e tu vai a leggere quanto passato in $riga, di volta in volta, fino a quando la funzione raggiunto il fondo del buffer rendera' un FALSE.

    il foreach invece legge l'array $riga che e' composto da un solo record e quindi non scandisce il result set ma ti da solo i valori di quella specifica riga estratta dalla funzione e non i restanti record che rimangono nel buffer del result set.



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

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    non mi è del tutto chiaro. il problema del foreach dipenderebbe dunque dal fatto che il risultato della query non è un array??
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  9. #9
    Originariamente inviato da ciro78
    non mi è del tutto chiaro. il problema del foreach dipenderebbe dunque dal fatto che il risultato della query non è un array??
    il risultato e' una array con un solo record (ne estrae uno alla volta)

    se poi il foreach lo lanci finito la raccolta del result set da parte del while .... sara' vuoto proprio perche' l'ultima chiamata del while ha prodotto un FALSE.

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

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.