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

    Utilizzo delle espressioni regolari

    Vorrei utilizzare le espressioni regolari per effettuare una modifica ad una query dinamicamente:
    Codice PHP:
    select campo1,campo2,campo3,campo4 from tabella where .... 
    anche se in realtà la query è molto più complicata e vorrei farla diventare tipo:
    Codice PHP:
    select qualcosadaltro from tabella where ... 
    Qualcuno mi può aiutare?

    Codice PHP:
    $sSql=preg_replace('/(select)(.+)/''$1 qualcosadaltro $3 'strtolower($sSql)); 

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    fatica del tutto inutile, ti conviene creare la select variabilizzando la parte delle colonne da selezionare o.o
    sometimes it's just like teaching pigs how to fly

  3. #3
    A me non sembra sia una soluzione intelligente!
    A parte che variabilizzando dovrei modificare tutte le query, poi ne perderebbe anche in leggibilità il codice.
    Inoltre, per quello che ho intenzione di fare io preferirei di gran lunga utilizzare le espressioni regolari, quindi mi piacerebbe trovare la soluzione con una preg_replace.
    Grazie comunque

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    scemo io o.o e tutti quelli che scrivono framework per non generare query usando preg_replace o.o
    sometimes it's just like teaching pigs how to fly

  5. #5
    Incredibile!
    Ho chiesto una cosa, e ti ho gentilmente spiegato perchè preferisco utilizzare una preg_replace!
    Mi sai aiutare? Si? No? Non sai?

    Comunque, se per te è più facile modificare un centinaio di query piuttosto che fare una preg_replace, allora bene, fai pure, io non sono qui per polemizzare o per dire che sono più bravo di te o che tu sei più bravo di me, sono qui perchè vorrei sapere come risolvere il MIO problema con una preg_replace!
    E' possibile ricevere una risposta attinente alla domanda?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    "non mi sembra una soluzione intelligente" non è una cosa carina da dire, ma tralasciamo chi è scortese e chi non.

    il preg_replace è un workaround che renderà il tuo codice assolutamente e totalmente immantenibile, ma se vuoi un copia incolla eccoti accontentanto ^^

    /^(select).*(from.*)$/
    sometimes it's just like teaching pigs how to fly

  7. #7
    Non e' assolutamente chiaro cosa tu voglia fare. Data la tua domanda, l'unica risposta possibile e'
    Codice PHP:
    $query str_replace('campo1,campo2,campo3,campo4''qualcosadaltro'$query); 
    cerca di spiegarti meglio. Per costruire una regexp la prima cosa necessaria e' un estremo rigore nella descrizione del pattern, qui siamo all'estremo opposto (due esempi totalmente fittizi da cui e' impossibile dedurre uno schema logico).

  8. #8
    Voglio poter sostituire tutto ciò che c'è tra SELECT e FROM con qualcosa d'altro!

    tipo
    select A,B,C from tabella

    vorrei poterlo trasformare in

    select count(*) from tabella

    per esempio.

    Vorrei usare questo metodo perchè vado a modificare codice già esistente, per evitare di dovermi impostare n variabili quante sono le query!

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    ti ho già postato io l'espressione regolare che devi usare, comunque non è un approccio corretto.

    la progettazione dietro è sbagliata se devi ricorrere ad una cosa simile.
    sometimes it's just like teaching pigs how to fly

  10. #10
    Giusto per curiosità, ho lavorato su Wordpress su phpbb e altri pacchetti di questo tipo e le query le ho sempre viste strutturate nella classica maniera
    "SELECT campo1,campo2,campo3 FROM $nometabella WHERE ... ", non ho mai visti parametrizzati i campi da selezionare dalla query.

    Mi spiegheresti cosa intendi con "progettazione sbagliata" e come sarebbe quella giusta secondo te?

    Grazie mille.

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.