Newsgroup: it.comp.www.php
Titolo: mysql_field_flags

manuale php:
"mysql_field_flags -- Ottine i flag associati al campo specificato di un
risultato."
"I seguenti flag sono restituiti, se la versione di MySQL è abbastanza
aggiornata da supportarli: "not_null", "primary_key", "unique_key",
"multiple_key", "blob", "unsigned", "zerofill", "binary", "enum",
"auto_increment", "timestamp"."
io ho pero' necessita' di accedere ad uno solo (per campo) di questi
dati, ad es enum.
come?

 come?
Leggendo il manuale?
http://www.php.net/mysql_field_flags#AEN80156
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 
http://www.php.net/mysql_field_flags#AEN80156
abbi pazienza, sei spesso molto gentile nei consigli che dai, ma uscendo
dal contesto del php ed entrando un attimo in quello della logica
elementare, non credi che avendo citato il manuale non l'abbia quindi
almeno un po' letto?
evidentemente o non so qualcosa o mi sfugge qualcosa oppure non so che
altro.
motivi potrebbero essere la mia inesperienza, una disattenzione per un
particolare ecc..
non credi? :-)
aggiungi il fatto che firefox si rifiuta di andare alla anchor
"#AEN80156".
senza polemica eh, alle volte un consiglio/esempio di chi ha esperienza
puo' fare quasi dei "miracoli".
:-)
-- 
bb

 "#AEN80156".
[quoto 
http://www.php.net/mysql_field_flags#AEN80156
]
Example 1. A mysql_field_flags() example
<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Could not run query: ' . mysql_error();
   exit;
}
$flags = mysql_field_flags($result, 'id');
print $flags;
print_r(explode(' ', $flags));
/* Output will look similar to:
not_null primary_key auto_increment
Array
(
   [0] => not_null
   [1] => primary_key
   [2] => auto_increment
)
*/
?>  
[/quoto]
http://www.php.net/in_array
-- 
I am what I am, I do what I can


 Example 1. A mysql_field_flags() example
ouch! seguendo il link che mi hai fornito vengo rimandato su...
http://it2.php.net/mysql_field_flags#AEN80156
....nel quale non trovo l'esempio quotato!
neanche qua:
http://uk.php.net/manual/it/function.mysql-field-flags.php
 !
e mo'?
O__o

 e mo'?
Semplice, fai riferimento al manuale ufficiale e non alla traduzione in
italiano.
Ufficiale:
http://www.php.net/manual/en/function.mysql-field-flags.php
Tradotto:
http://www.php.net/manual/it/function.mysql-field-flags.php


umh.... dunque sono riuscito a salvarmi dentro un array i "tipi" dei campi
di una tabella.
ho ottenuto qualcosa di simile:
Array (
 [
tabella.id
] => primary_key
 [tabella.attivo] => enum
 [tabella.descrizione] => blob
 [tabella.prodotto] => blob
)
che, per quel che mi serve per il momento e' sufficiente (seppur mi
servano anche altri dati) pero' c'e' un problema: se un campo e' di tipo
null ricevo un errore php sull'offset del valore.
per fare un esempio:
(faccio le mie query sql....)
$campi = array("id","attivo","descrizione","prodotto");
for ($f=0; $f<count($campi); $f++) {
  $fld_name = $campi[$f];
  $flags = explode(" ", mysql_field_flags($results, $f));
  $fld_flags[$fldname] = $flags[1];
}
ho notato che solo se un campo e' not_null viene inserito nei valori
dell'array, e viene messo nell'indice [0].
se invece un campo e' null viene saltato pari pari, inserendo nell'indice
[0] il primo valore disponibile, ad esempio blob o enum, producendo un
errore di offset tipo questo:
Notice: Undefined offset: 1 in /nomefile.php on line xy
difatti se il campo tabella.descrizione fosse null, otterrei questo array;
Array (
 [
tabella.id
] => primary_key
 [tabella.attivo] => enum
 [tabella.descrizione] => 
 [tabella.prodotto] => blob
)
compreso il Notice, ma senza sapere quindi che tipo di campo e'.
dunque immagino che:
$fld_flags[$fldname] = $flags[1];
vada riscritto in un modo diverso, per poter accedere a quelle
informazioni che mi servono, ma non so proprio come ottenere un indice
giusto per $flags[....]
come posso fare?