• User

    Da una stringa di parole ricavare N variabili

    Supponiamo che in un campo del database io abbia questo testo:
    parola1;parola2;parola3; ecc... non so a priori il numero di parole suddivise dal ; che ci sono.

    Riesco a suddividere le paroli con questa funzione:

    $parolelink_loc = explode(";", $row[parolelink_loc]);
    

    e poi per avere le varie parole basterebbe fare:
    $p1 = $parolelink_loc[1]
    $p2 = $parolelink_loc[2]

    ed avanti così.

    Ma come faccio a sapere quanti $pi = $parolelink_loc* fare?
    e se poi questi cambiano nella riga?
    Mi servirebbe capire come fare per calcolare il numero di parole della stringa e poi con un ciclo for potrei generare le i variabili $pi che mi servono.

    Queste per capirci andranno a finire in una query
    SELECT * FROM table WHERE parolalink=($p1 or $p2 or $pi)

    quindi il ciclo for lo devo inserire anche dentro la query sperano che ciò sia possibile.

    Il mio scopo è richimare in unarecensione tutti gli articoli (e crearne il link) che hanno nel campo parolelink una delle parole che ci sono nella stringa.
    In questo modo nella recensione del prodotto avrò automaticamente i link verso le recensioni di prodotti analoghi.

    Bello ed utile il sito.


  • User Attivo

    Ciao albanopower, benvenuto

    potresti provare una cosa così:

    
    $parolelink_loc = explode(";", $row[parolelink_loc]);
    foreach($parolelink_loc as $p){
        $where.="'$p',"
    }
    $sql="select * from table where parolalink in ($where'');
    
    

    quindi in pratica non usi delle altre varibili ma nel ciclo assegni ogni valore dell'array a $p e memorizzi direttamente quella parte della query dentro a $where

    Poi nota che nella query finale ho aggiunto '' per ovviare al fatto che la varibiale $where termina con una VIRGOLA. Potresti anche diminuire di 1 la dinsione della varibile $where

    il codice non l'ho provato ma dovrebbe essere qualcosa di simile

    :ciauz: