Visualizzazione dei risultati da 1 a 6 su 6

Discussione: explode

  1. #1

    explode

    Ciao a tutti..
    Ho una piccolissima difficoltà nell'usare il codice EXPLODE, allora:
    Nel DB c'è un campo registrato

    "foto01foto02foto03foto04foto05video01video02video 03"

    NOn riesco a mettere un codice che se trova la parola "foto" prima dei numeri fa un'elenco automatico i numeri e non deve visualizzare i numeri di video..

    In realtà so che il codice EXPLODE funziona così

    $nome_campo = "foto01foto02foto03foto04foto05video01video02video 03";

    $prova = explode("foto", $nome_campo);
    $prova[0]; // visualizza 01
    $prova[1]; // visualizza 02
    $prova[2]; // visualizza 03
    $prova[3]; // visualizza 04
    $prova[4]; // visualizza 05
    ........

    ma siccome i numeri delle foto sono tantissimi e quindi, non conviene mettere da $prova[0] fino a $prova[100], non c'è un modo che quando trova, se ci sono 5 o 10, li deve visualizzare automaticamente senza specificare $prova[0] $prova[1] etc?
    Non so se mi spiego..

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    foreach

  3. #3
    Ciao, so anche che è FOREACH, ma come devo specificare?
    Mi puoi aiutare?

    $nome_campo = "foto01foto02foto03foto04foto05video01video02v ideo 03";

    $prova = explode("foto", $nome_campo);

    foreach($prova as $lista_foto)
    {

    echo $lista_foto ."<br>";

    }

  4. #4
    Ciao, so anche che è FOREACH, ma come devo specificare?
    Mi puoi aiutare?

    $nome_campo = "foto01foto02foto03foto04foto05video01video02v ideo 03";

    $prova = explode("foto", $nome_campo);

    foreach($prova as $lista_foto)
    {

    echo $lista_foto ."<br>";

    }

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    E facendo così cosa succede? Hai provato?

    Comunque se la situazione del campo nel db è quella dell'esempio , l'ultima iterazione del foreach ti stampa tutti sulla stessa riga "05video01video02v ideo 03".

    Per fare una cosa fatta bene devi usare le espressioni regolari.

  6. #6
    Adesso ti spiego il perchè...
    Siccome sto facendo la SELECT MULTIPLE e non sono riuscito a fare che se sono stati selezionati mette SELECTED, vedi sotto il codice PHP

    <select name=\"comp_foto[]\" size=\"10\" multiple=\"multiple\" id=\"comp_foto[]\">
    <option value=\"\"></option>";

    $queryAlbumFoto = "SELECT * FROM prova ORDER BY titolo DESC";
    $selectAlbumFoto = mysql_query($queryAlbumFoto, $connessione);

    $album_foto = explode("-", "21-18-");

    while($resultAlbumFoto = mysql_fetch_array($selectAlbumFoto))
    {

    foreach($album_foto as $disp_album_foto)
    {

    echo"<option value=\"". $resultAlbumFoto['id_album'] ."\" "; if($disp_album_foto == $resultAlbumFoto['id']) echo"selected"; echo">". $resultAlbumFoto['titolo'] ."</option>";


    }

    }

    echo"</select>";

    In realtà, non va bene perchè così nella SELECT MULTIPLE raddoppia in base a quanti record ci sono nel DB di PROVA, cioè nel DB ci sono
    ID = 21 - TITOLO = PROVA 1
    ID = 20 - TITOLO = PROVA 2
    ID = 19 - TITOLO = PROVA 3
    ID = 18 - TITOLO = PROVA 4

    Sulla maschera del modulo HTML seleziono solo il 21 e 18, lo registro poi andando su MODIFICA e nella SELECT MULTIPLE diventa:

    <option value="21" selected>PROVA 1</option>
    <option value="21">PROVA 1</option>
    <option value="21">PROVA 1</option>
    <option value="21">PROVA 1</option>
    <option value="20">PROVA 2</option>
    <option value="20">PROVA 2</option>
    <option value="20">PROVA 2</option>
    <option value="20">PROVA 2</option>
    <option value="19">PROVA 3</option>
    <option value="19">PROVA 3</option>
    <option value="19">PROVA 3</option>
    <option value="19">PROVA 3</option>
    <option value="18" selected>PROVA 4</option>
    <option value="18">PROVA 4</option>
    <option value="18">PROVA 4</option>
    <option value="18">PROVA 4</option>

    Raddoppiate 4 volte...
    Perchè? Cosa ho sbagliato sul codice PHP di sopra?
    Ultima modifica di z.cristiano; 22-07-2015 a 22:43

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.