phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Gestione delle stringhe in php-mysql

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Rispondi
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Gestione delle stringhe in php-mysql

Messaggio da Micogian » 20/02/2010, 17:29

Approfitto di questo spazio per una richiesta che interessa la gestione delle stringhe in mysql.

Nella Lista dei Topics della MOD topic_list la suddivisione dei Topics avviene sulla base del primo carattere del Titolo.
Per i casi nei quali il titolo inizia con un tag tra parentesi quadra, la prima parentesi viene esclusa dalla lettura utilizzando il seguenet codice inserito in una SELECT mysql:

Codice: Seleziona tutto

 UCASE(LEFT(TRIM(LEADING '[' FROM pt.topic_title), 1)) AS first_char
Il significato dello script è il seguente:
Prendi il valore di pt.topic_title, escudendo il primo carattere se è una parentesi quadra (LEADING '['...), tolti eventuali spazi laterali (TRIM), prendi il primo carattere a sinistra (LEFT) e trasforma in maiuscolo il carattere (UCASE). Questo è il valore che stabilisce in quale categoria inserire il Topic nella Lista.
Ad esempio, se il titolo fosse "[DEV] Mod Topiclist", il risultato sarebbe "D".

Ma se io volessi invece non tener conto dell'intero TAG tra parentesi quadre, cioè escludere tutta la parte tra parentesi quadre "[DEV]" e ottenere l'ordinamento per "M" come si fa?

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Gestione delle stringhe in php-mysql

Messaggio da Carlo » 20/02/2010, 18:05

Ma vuoi effettuare questo necessariamente tramite la query SQL?
Altrimenti con un preg_match() o preg_replace() del php potresti risolvere.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Gestione delle stringhe in php-mysql

Messaggio da Micogian » 20/02/2010, 18:22

Lo deve fare la query perchè si deve stabilire qual'è la lettera che viene considerata il titolo di sezione:

Codice: Seleziona tutto

$sql = "SELECT
pt.topic_id, pt.icon_id, pt.topic_title, pt.topic_views, pt.topic_replies, pt.topic_first_poster_name, pt.topic_time, pf.parent_id, pf.forum_id, pf.forum_name AS forum_name_cor,pt.topic_last_post_time,
UCASE(LEFT(TRIM(LEADING '[' FROM pt.topic_title), 1)) AS first_char
FROM ". TOPICS_TABLE." pt,". FORUMS_TABLE. " pf
WHERE $where_cor 
AND pt.topic_type = 0
AND pt.topic_last_post_time  > $data_post 
ORDER BY UCASE(TRIM(LEADING '[' FROM pt.topic_title))";
Tra l'altro va inserita due volte, la prima per ottenere il valore di first_char, la seconda per l'ordinamento dei Topics.
il valore di "first_char" è importante perchè nel successivo ciclo "while" quando "first_char" è diverso da quello precedente viene considerato come "Titolo della Sezione" e a questo gruppo vengono associati tutti i successivi valori.
Io credo che si possa fare con REGEXP.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Gestione delle stringhe in php-mysql

Messaggio da Carlo » 20/02/2010, 18:42

Io con MySQL ho lavorato solo con i comandi di base, quindi non saprei dirti con certezza.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

Avatar utente
Sir Xiradorn
Grafico
Grafico
Messaggi: 1659
Iscritto il: 11/08/2009, 12:41
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.15
Database: MariaDB 10.1.9
Località: Lontano....
Contatta:

Re: Gestione delle stringhe in php-mysql

Messaggio da Sir Xiradorn » 21/02/2010, 23:45

EDIT: Perdonate edito per str.....ata colossale avevo frainteso il post....
Sir Xiradorn
Immagine
~ XDojo - Xiradorn Lab Division - xiradorn.it ~
~ GitHub - XiradornLab ~

Immagine
Stargate - phpbb 3.0.x || 3.1.x || 3.2.x

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 97 ospiti