Pagina 1 di 1
[php] - prendere iniziale di un nome
Inviato: mer 4 feb 2009, 19:00
da danix
Ciao a tutti,
nel database di un sito che amministro devo mettere su alcune tabelle con la lista di tutti i comuni calabresi, avevo pensato di fare una tabella per ogni provincia e, nel frontend del sito, permettere la ricerca per iniziale... Il mio problema sorge qui, nell'area amministrativa potrei benissimo mettere un form in cui inserire il nome del comune e l'iniziale sotto cui memorizzarlo, ma se volessi rendere questo passaggio più immediato come potrei fare??
Mi spiego meglio:
Quando vado ad inserire "Siderno" vorrei che l'utente dovesse inserire solo il nome del comune, mentre nel db php si dovrebbe occupare di inserire anche l'iniziale in un altro campo della tabella... solo che non ho idea di come fare
Mi date una mano??
Re: [php] - prendere iniziale di un nome
Inviato: mer 4 feb 2009, 19:04
da danix
stavo pensando alla funzione substr()... che ne pensate?? c'è qualcosa di meglio??
grazie mille a tutti...
Re: [php] - prendere iniziale di un nome
Inviato: mer 4 feb 2009, 19:29
da raffaele181188
No, è l'unico modo!!!
Se non sbaglio, però, in php le stringhe sono array di chars, quindi potrebbe andare bene anche:
Se non sbaglio lessi una cosa del genere nella guida ufficiale parecchio parecchio tempo fa... Ma se è una grandissima ca**ata scrivetelo pure!!!

Re: [php] - prendere iniziale di un nome
Inviato: mer 4 feb 2009, 20:25
da danix
si si, grazie della risposta, ho fatto qualche tentativo e questa è la soluzione che di gran lunga mi ritorna più comoda...
ancora grazie mille
Re: [php] - prendere iniziale di un nome
Inviato: mer 4 feb 2009, 21:09
da nuitari
Ma perchè vuoi dividere l'iniziale? A che scopo? Per le ricerche basta che usi il like in SQL. Se usi mysql guarda qui:
http://dev.mysql.com/doc/refman/5.0/en/ ... tions.html
Re: [php] - prendere iniziale di un nome
Inviato: mer 4 feb 2009, 21:19
da aschenaz
Si, confermo $stringa[0]...
Ma sei sicuro che sia necessario mettere un altro campo con l'iniziale?
Non basterebbe creare le liste dinamicamente al momento dell'estrazione?
Una strada potrebbe essere quella di creare un array così formato
Codice: Seleziona tutto
$abc=array("a"=>array(),"b"=>array(),"c"=>"array,"d"=>array()...); // etc.
Poi fai la query sul database e, mentre la sfogli, ricavi la lettera iniziale
minuscola con
e inserisci il Comune nell'array corrispondente con
Poi, quando ti serve, sfogli l'array con un
Codice: Seleziona tutto
foreach($abc as $iniziale=>$listacomuni) {
echo "$iniziale<br />\n";
foreach($listacomuni as $nomecomune) echo "$nomecomune<br />\n";
}
Non ho provato, ma sulla carta dovrebbe funzionare...
EDIT: Samuele ti ha proposto una soluzione molto più semplice ed efficace!

Re: [php] - prendere iniziale di un nome
Inviato: mer 4 feb 2009, 21:26
da aschenaz
aschenaz ha scritto:...
e inserisci il Comune nell'array corrispondente con
...
A pensarci bene, non sono sicuro che questo si possa fare...
In caso, si può risolvere con
Re: [php] - prendere iniziale di un nome
Inviato: ven 13 feb 2009, 10:57
da MAT
Trovo una pessima idea quella di creare una tabella per ogni provincia. Piuttosto fai UNA tabella per le province e UNA per i comuni, nella quale metterai ovviamente un campo per il riferimento alla PK della provincia.
Per quanto riguarda l'iniziale, se il tuo intento è dare all'utente una serie di dati mentre digita (recuperandoli quindi con ajax) ti posso passare io una procedura che ho fatto proprio in php.