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

Discussione: mysql - campi non null

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    67

    mysql - campi non null

    Salve a tutti.
    In che modo posso mettere all'interno di un array il nome dei campi di una tabella che consentono solo valori non null?

    Grazie!

  2. #2

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    $campi_non_null = array();
    $risultato mysql_query("SELECT * from tabella LIMIT 1");
    for (
    $i=0,$campi mysql_num_fields($risultato); $i $campi$i++) {
           
    $nome mysql_field_name($risultato$i);
           
    $flag mysql_field_flags($risultato$i);
           
    strstr($flag,'not_null')  ?  $campi_non_null[$nome] = $flag '';
    }

    echo 
    '<pre>';
    print_r($campi_non_null); 

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    67
    Grazie mille!!!
    Però, copiando il codice che mi hai indicato, se provo a stampare soltanto la lista dei nomi dei campi con:

    Codice PHP:
    for ($i=0,$campi mysql_num_fields($risultato); $i $campi$i++) { 
           
    $nome mysql_field_name($risultato$i); 
           echo 
    $nome."
    "
    ;

    ottengo il seguente output:

    Field
    Type
    Null
    Key
    Default
    Extra

    che non sono i nomi dei campi...
    Dove sbaglio?
    [però ho usato la query
    Codice PHP:
    $query="DESCRIBE tabella"
    anzichè quella che hai usato tu, ma ho verificato che ottengo effettivamente i nomi dei campi]

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Se usi describe allora lo script va fatto diversamente

    Codice PHP:
    $campi_not_null = array();
    $query mysql_query("describe tabella");
    while (
    $row mysql_fetch_assoc($query) ) {
    $row['Null'] == 'NO' $campi_not_null[] = $row['Field'] : '';
    }
    echo 
    '<pre>';
    print_r($campi_not_null); 

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    67
    Ciao, scusa se ti rispondo solo adesso.
    In questo secondo script ottengo però solo il risultato:

    Codice PHP:
    Array
    (

    pur avendo, nella tabella, 3 campi not_null e 2 campi null.

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da Etruska
    Ciao, scusa se ti rispondo solo adesso.
    In questo secondo script ottengo però solo il risultato:

    Codice PHP:
    Array
    (

    pur avendo, nella tabella, 3 campi not_null e 2 campi null.
    L'ho provato prima di postare e funziona correttamente.
    Controlla che non sia sbagliato il nome della tabella.

    Codice PHP:
    $campi_not_null = array();
    $query mysql_query("describe tabella") or die(mysql_error() ); // ho aggiunto la segn.d'errori
    while ($row mysql_fetch_assoc($query) ) {
    $row['Null'] == 'NO' $campi_not_null[] = $row['Field'] : '';
    }
    echo 
    '<pre>';
    print_r($campi_not_null); 

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    67
    Scoperto l'inghippo!
    Non è
    Codice PHP:
    $row['Null'] == 'NO' $campi_not_null[] = $row['Field'] : '' 
    ;
    ma
    Codice PHP:
    $row['Null'] == ' ' $campi_not_null[] = $row['Field'] : ''
    dopo while, facendo:
    Codice PHP:
    echo "- ".$row['Null']."
    "

    trovo che i primi 3 campi, quelli not null, vengono visti come vuoti ( )



    GRAZIE DI TUTTO!!!

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Dipenderà dalla versione di mysql.

    Nella mia se faccio describe table in corrispondenza del campo 'Null' mi scrive NO oppure YES. Evidentemente non è un comportamento standard.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    67
    E' la 4.0.27

    La cosa curiosa è che in phpmyadmin effettivamente i valori sono no e yes!

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.