[php] - prendere iniziale di un nome

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

[php] - prendere iniziale di un nome

Messaggio 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??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: [php] - prendere iniziale di un nome

Messaggio da danix »

stavo pensando alla funzione substr()... che ne pensate?? c'è qualcosa di meglio??


grazie mille a tutti...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
raffaele181188
Packager
Packager
Messaggi: 789
Iscritto il: ven 7 set 2007, 21:40
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu
Località: DearSkin (FG)

Re: [php] - prendere iniziale di un nome

Messaggio da raffaele181188 »

No, è l'unico modo!!!
Se non sbaglio, però, in php le stringhe sono array di chars, quindi potrebbe andare bene anche:

Codice: Seleziona tutto

$firstchar = $mystring[0];
Se non sbaglio lessi una cosa del genere nella guida ufficiale parecchio parecchio tempo fa... Ma se è una grandissima ca**ata scrivetelo pure!!! :D :D :D

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: [php] - prendere iniziale di un nome

Messaggio da danix »

si si, grazie della risposta, ho fatto qualche tentativo e questa è la soluzione che di gran lunga mi ritorna più comoda... :D


ancora grazie mille
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Re: [php] - prendere iniziale di un nome

Messaggio 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

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: [php] - prendere iniziale di un nome

Messaggio 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

Codice: Seleziona tutto

$iniz=strtolower($comune[0]);
e inserisci il Comune nell'array corrispondente con

Codice: Seleziona tutto

array_push($abc["$iniz"],$comune);
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! :lol:

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: [php] - prendere iniziale di un nome

Messaggio da aschenaz »

aschenaz ha scritto:...
e inserisci il Comune nell'array corrispondente con

Codice: Seleziona tutto

array_push($abc["$iniz"],$comune);
...
A pensarci bene, non sono sicuro che questo si possa fare...
In caso, si può risolvere con

Codice: Seleziona tutto

$abc["$iniz"][]=$comune;

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Re: [php] - prendere iniziale di un nome

Messaggio 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.

Rispondi