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

    Creazione array associativo da una <select>

    Ciao, ho un problema. Devo creare un array associativo che prenda da DB l'id di un contatto e lo associ alla sua anagrafica (nome-cognome). Posto il codice, non riesco a crearlo. L'array si crea ma non associativo e gli indici sono numerici ma a me nell'indice serve l'ID del contatto. Posto anche la funzione che pesca da DB.
    Naturalmente dalla select multipla seleziono i contatti che mi occorrono.

    $result= getContatti();
    echo "<select name='singlecontacts[".getIdContact($row['cognome'])."]' size='10' multiple='multiple'>";
    while ($row= mysql_fetch_assoc($result)){
    echo "<option style='color: white; font-family: Arial; font-size: 140%;'>".$row['cognome']." ".$row['nome']."</option>";
    }
    echo '</select></div></article>';

    function getIdContact($cognome){
    $query="select * from contatti where cognome='$cognome'";
    $result=mysql_query($query);
    while ($row= mysql_fetch_assoc($result))
    $id=$row['id'];
    mysqli_free_result($result);
    return $id;
    }

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Io penserei ad altro prima:
    Quote Originariamente inviata da freddie1978 Visualizza il messaggio
    ...
    echo "<option style='color: white; font-family: Arial; font-size: 140%;'>".$row['cognome']." ".$row['nome']."</option>";
    Qui manca il value degli elementi option, quindi inviando il form, non arriverà nulla allo script riguardante questo menu select.

    ...
    while ($row= mysql_fetch_assoc($result))
    $id=$row['id'];
    Qui ad ogni ciclo sovrascrivi il valore della variabile $id, che non essendo un array conterrà sempre e solo l'ultimo id trovato dalla query.

    Un altro appunto: usi indiscriminatamente mysql_ e mysqli_, o usi sempre mysql_ oppure usi sempre mysqli_, non entrambi a caso. Il consiglio è di usare sempre mysqli_ perché presto le istruzioni mysql_ non funzioneranno più, su molti hosting è già così.

  3. #3
    L'array arriva allo script che poi deve fare l'action perchè è già dentro ad un form con il suo id e nello script successivo io mi ritrovo già l'array. solo che è indicizzato invece che associativo. La domanda era questa, ok e grazie per il consiglio su mysqli_

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Scusa, ma qui $id

    $id=$row['id'];

    non è un array è una variabile semplice.

  5. #5
    L'array risultante dall'invio della form è $_REQUEST['singlecontacts'] nel quale io già mi ritrovo i valori pescati dal db e selezionati con CTRL tramite la <select>.
    nella <select>, quando vado dare il nome singlecontacts[] per creare l'array (che si crea) non riesco ad associare l'id che precedentemente (con la getIdContact($cognome) ) ho tentato di associare all'array singlecontacts[]
    Forse ora (forse) sono stato più chiaro...spero :-).
    La mia domanda è se e come posso arrivare ad associare questo campo nell'array risultante.

  6. #6

    [RISOLTO] Creazione array associativo da una <select>

    Nell'<option> ho inserito value=$row['id'] e me lo trovo nell'array senza bisogno di indicizzarlo.
    Grazie per i consigli :-)

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.