[PHP] individuare chiave elemento array

samurai.sette

Utente Attivo
17 Dic 2015
234
6
18
Ciao a tutti. Come da titolo mi chiedevo come individuare la chiave di uno o più elementi presenti in un array.
Mi spiego. Nel mio form ho inserito una serie di checkbox contenenti i nomi delle colonne di una tabella. Dopo che l'utente ha selezionato una o più checkbox, come faccio a individuare le relative chiavi nell'array?
Le checkbox le ho inserire in questo modo
PHP:
        $query_colonne = mysqli_query ($con, "show columns from tabella");
        
        while ($result_colonne = mysqli_fetch_array($query_colonne))
        {
            $nomi_colonne[] = $result_colonne[0];
        }
        $num_colonne = count($nomi_colonne);
        for ($i=0; $i<$num_colonne; $i++)
        {
            echo '<input type="checkbox" name="colonne[]" id="colonne" value="'.$nomi_colonne[$i].'" />' . $nomi_colonne[$i] . "<br />";
        }
Ciao, grazie mille!
 

fratt

Nuovo Utente
19 Gen 2019
33
4
8
io di solito faccio così
PHP:
$i = 0;
while (isset($_POST['colonne'][$i])) {

  $i++;
}
 

macus_adi

Utente Attivo
5 Dic 2017
1.320
88
48
IT/SW
PHP:
$conn=new mysqli('host','user','pass','db');
$colonne=$conn->query('show columns from tabella')->fetch_all(MYSQLI_ASSOC);
foreach (array_keys($colonne[0]) as $items){
   echo '<input type="checkbox" name="colonne[]" id="colonne" value="'.items.'" />' . items . "<br />";
}
 

samurai.sette

Utente Attivo
17 Dic 2015
234
6
18
Ciao a tutti, scusate se non ho risposto subito ma il lavoro mi prende un pò di tempo.
Ho visto le voste soluzioni ma non vanno bene perchè quando seleziono uno o più checkbox le chiavi dell'array sono errate.
Faccio un esempio: se seleziono le checkbox n° 3-5-6-8, le chiavi dell'array che ottengo sono 0-1-2-3. Invece dovrei ottenere 3-5-6-8.
 

macus_adi

Utente Attivo
5 Dic 2017
1.320
88
48
IT/SW
Quindi l'estrazione no da DB, ma input allora hai formulato la domanda in modo ambiguo...
effettua il loop sulle check e identifica i valori no le chiavi....
Faccio un esempio: se seleziono le checkbox n° 3-5-6-8, le chiavi dell'array che ottengo sono 0-1-2-3. Invece dovrei ottenere 3-5-6-8.
Quindi
PHP:
$col=[];
foreach($colonne as $k=>$v){
                   //$k è la chiave dell'array "colonne" preso da input per intenderci 0,1,2,3...
     $col[]=$v; // $v è il valore della selezione che rispecchia quanto richiesto:  3,5,6,7,8
}
print_r($col);
 

samurai.sette

Utente Attivo
17 Dic 2015
234
6
18
Ciao a tutti, richiedo scusa per la lentezza nel rispondere.
Provo a rispiegare il problema che ho in quanto non penso di averlo esposto a dovere. Quello che devo fare è questo.
Devo estrarre da una tabella i nomi di tutte le colonne e le devo inserire in una serie di checkbox. Per fare ciò faccio in questo modo:
PHP:
$query_colonne = mysqli_query ($con, "show columns from tabella");
while ($result_colonne = mysqli_fetch_array($query_colonne))
{
  $nomi_colonne[] = $result_colonne[0];
}

$num_colonne = count($nomi_colonne);
for ($i=0; $i<$num_colonne; $i++)
{
  echo '<input type="checkbox" name="colonne[]" id="colonne" value="'.$nomi_colonne[$i].'" />' . $nomi_colonne[$i] . "<br />";
}

Quando l'utente sceglie uno o più checkbox (ad esempio checkbox n. 2,4,7,9) come faccio ad individuare le chiavi degli elementi scelti?
Le soluzioni che mi avete proposto non vanno bene perchè invece di ottenere le chiavi delle checkbox n. 2,4,7,9 ottengo le chiavi n. 0,1,2,3.
Ciao, grazie mille
 

macus_adi

Utente Attivo
5 Dic 2017
1.320
88
48
IT/SW
Ok allora il problema è sull'input....
Questo problema è dato dalla mancanza di indice su colonne[];
PHP:
echo '<form method="post">';
foreach ($res as $items){
   echo '<input type="checkbox" name="colonne[]" id="colonne" value="'.$items.'" />' . $items . "<br />";
}
echo '<button type="submit">Invia</button>';
echo '</form>';

if(!empty($_POST))print_r($_POST);
OUTPUT ERRATO
Codice:
Array ( [0] => id [1] => name [2] => url [3] => method [4] => backend )
id
name
url
method
backend
Array ( [colonne] => Array ( [0] => name [1] => url ) )


Per gestire come ti serve modifica in questo modo....
PHP:
echo '<form method="post">';
foreach ($res as $k=>$items){
  //viene aggiunto l'indice su $colonne[$k]
   echo '<input type="checkbox" name="colonne['.$k.']" id="colonne" value="'.$items.'" />' . $items . "<br />";
}
echo '<button type="submit">Invia</button>';
echo '</form>';

if(!empty($_POST))print_r($_POST);
OUTPUT CORRETTO
Codice:
Array ( [0] => id [1] => name [2] => url [3] => method [4] => backend )
id
name
url
method
backend
Array ( [colonne] => Array ( [1] => name [2] => url ) )
Sappi che stai rendendo posizionale l'input e non è forse la soluzione ottima! Buon lavoro
 
Discussioni simili
Autore Titolo Forum Risposte Data
G Individuare tag con php PHP 3
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 14
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2
L Google chart php mysql PHP 2
R Download file multipli da directory php PHP 0
F pagina dinamica PHP PHP 3
P Rimozione automatica url da sitemap.xml con PHP PHP 1
L php tinymce mi duplica la classe label PHP 3
S Errore PHP - Notice: Undefined index ... PHP 14
N file manager da php 5 a 7 PHP 15
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
N Mysql_result per PHP 7 PHP 2
Emix Select concatenate php sql ajax PHP 2
P Modifica con PHP di un node in una sitemap xml PHP 0
D Come usare funzione php PHP 6
P Cancellazione specifici files in una folder php PHP 1
R Tradurre stringhe con php e google translator PHP 4
I Salvataggio snapshot IPCAM tramite PHP PHP 5
felino PHP e script generazione file excel PHP 2
L Aiuto per programma web php/mySQL PHP 2
A Estrapolare parti di testo con PHP PHP 2
A Aiuto php colore diverso PHP 10
E Errore di lettura php in html PHP 8
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
P Passaggio id php a javascript PHP 6
MarcoGrazia [PHP] [regex] Validare un url PHP 2
W Rinominare un file in PHP PHP 7
L Upload di un'immagine all'interno di un database usando php PHP 6
J creare pagina php di prenotazione PHP 5
MarcoGrazia Visual Studio Light, configurazione PHP PHP 5
F Calendario php? PHP 3
A php metodo post jquery non da mai errore jQuery 4
M HTML e PHP Offerte e Richieste di Lavoro e/o Collaborazione 3

Discussioni simili