Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    If $row['campo'] contiene 'parola'

    Sto sviluppando un applicativo in PHP+MySql per la gestione di un database. Nell'inserimento dei dati uso dei checkbox che inseriscono dei dati in un unico campo(preferirei non modificare questa cosa).
    Nello specifico ho 47 checkbox che immetono valori in un campo. Ad esempio se seleziono il checkbox 1 e 3 il campo sarà: OG1 OG3.
    Se seleziono checkbox1, 2, 3, 4, 13 il campo sarà: OG1, OG2, OG3, OG4, OG13.
    Ora il metodo funziona per tutto, funziona il modulo di ricerca, funziona l'estrazione casuale e altre funzioni che ho inserito; l'unico problema si presenta nella modifica dei dati.
    In pratica vorrei che cliccando su un link sotto ad ogni dato mostrato nel database si aprisse una pagina uguale a quella dell'inserimento ma con i campi precompilati(ovvero con i valori già esistenti in db) e che permetta di modificare il dato.
    Tramite invio id e richiesta dati dalla tabella nella pagina edit riesco a fare questo, solo che non so come fare a far venire già "checkati" i checkbox.
    All'inizio avevo adottato una soluzione provvisoria che consisteva nella modifica del campo tramite text box, ma preferirei non dare la possibilità di inserire dati diversi da quelli "standard".

    Il codice che ho provato ad usare è questo:
    codice:
    if($row['campo'] == '%PEZZODICAMPO%') {
    echo "<input type='checkbox' name='campo[1]' checked='checked> PEZZODICAMPO
    ";
    }
    else {
    echo "<input type='checkbox' name='campo[1]'> PEZZODICAMPO
    ";
    }
    Però sembra non funzionare... come faccio?

  2. #2
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    potrbbe essere questo apice?

    codice:
    checked='checked

  3. #3
    No non credo sia quello, è stato un errore nel digitare qui sul forum, credo sia nella condizione della if perché appare sempre il codice che deve resituire con else..

  4. #4
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    431

    Re: If $row['campo'] contiene 'parola'

    Non puoi fare in quel modo, mettendo le % in stile like di sql, ma devi usare l'apposita funzione di php:

    Codice PHP:
    if(strripos($row['campo'],'PEZZODICAMPO') !== false) {
    echo 
    "<input type='checkbox' name='campo[1]' checked='checked>PEZZODICAMPO
    "
    ;
    }
    else {
    echo 
    "<input type='checkbox' name='campo[1]'> PEZZODICAMPO
    "
    ;

    Comunque nell'html devi usare gli apici doppi, non quelli singoli.

  5. #5
    Ciao,
    come ti hanno già segnalato non puoi fae il confronto usando lo stile LIKE %..% di mysql con php. Per come hai impostato i parametri non va bene neanche l'utilizzo di strpos e funzioni simili, perchè, ad esempio, se stai controllando il parametro "OG1" e nel tuo campo non è presente, con quel tipo di ricerca lo troveresti comunque se fossero presenti parametri come OG10, OG11 etc...

    Quello che puoi fare è dividere il tuo campo dati in un array e controllare che il parametro sia presente nell'array.

    Codice PHP:
    $elenco_parametri=explode(" ",$row['campo']);
    if(
    in_array(PEZZODICAMPO,$elenco_parametri)) { 
    echo 
    "<input type='checkbox' name='campo[1]' checked='checked'> PEZZODICAMPO
    "


    else { 
    echo 
    "<input type='checkbox' name='campo[1]'> PEZZODICAMPO
    "


    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  6. #6
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    431
    Io ho consigliato quella funzione perchè non letto il testo, ho letto solo il titolo e il codice.

  7. #7
    No in realtà proprio per evitare questo nella ricerca si chiama OG01 in modo da non "interferire" con OG1.. per l'html cmq lo so..

    Comunque è perfetto, grazie! Finalmente ho finito l'applicativo!

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.