• Home
  • Forum
  • Fare Web
  • PHP

[PHP] individuare chiave elemento array

  • Creatore Discussione Creatore Discussione samurai.sette
  • Data di inizio Data di inizio 19 Feb 2019
S

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
  • 19 Feb 2019
  • #1
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!
 
F

fratt

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

  $i++;
}
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
  • 24 Feb 2019
  • #3
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 />";
}
 
S

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
  • 26 Feb 2019
  • #4
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.343
91
48
IT/SW
  • 27 Feb 2019
  • #5
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....
samurai.sette ha scritto:
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.
Clicca per allargare...
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);
 
S

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
  • 4 Mar 2019
  • #6
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.343
91
48
IT/SW
  • 4 Mar 2019
  • #7
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
 
S

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
  • 4 Mar 2019
  • #8
Ciao Macus_adi. Grazie mille, hai centrato in pieno quello che dovevo fare.
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

G
Individuare tag con php
  • gpessa
  • 2 Ago 2008
  • PHP
Risposte
3
Visite
2K
PHP 6 Ago 2008
gpessa
G
H
Need Help with PHP Database Connection Issues
  • hellmmithha
  • 19 Dic 2024
  • PHP
Risposte
1
Visite
658
PHP 21 Mar 2025
therope
T
F
Cerco Hosting con VECCHIE versioni di php
  • frk
  • 4 Mar 2024
  • Hosting
Risposte
0
Visite
2K
Hosting 4 Mar 2024
frk
F
Captcha php
  • Cosina
  • 21 Gen 2024
  • PHP
Risposte
1
Visite
2K
PHP 22 Gen 2024
WmbertSea
S
passare un valore da un form a un file .php con metodo post
  • smack2005
  • 15 Nov 2023
  • PHP
Risposte
4
Visite
1K
PHP 23 Nov 2023
zorro
N
php msyql
  • nik13
  • 10 Ott 2023
  • PHP
Risposte
6
Visite
2K
PHP 23 Ott 2023
zorro
N
php problemi a visualizzare video
  • nik13
  • 8 Ott 2023
  • PHP
Risposte
3
Visite
2K
PHP 11 Ott 2023
WmbertSea
A
menu a tendina php
  • Annama74
  • 30 Apr 2023
  • PHP
Risposte
1
Visite
2K
PHP 1 Mag 2023
marino51
D
  • Bloccata
protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito
  • dastur67
  • 5 Apr 2023
  • Web Server
Risposte
1
Visite
3K
Web Server 5 Apr 2023
dastur67
D
F
Php date_diff
  • Fra_23
  • 30 Mar 2023
  • PHP
Risposte
1
Visite
1K
PHP 31 Mar 2023
marino51
K
[PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa
  • Kiko74b
  • 16 Mar 2023
  • PHP
Risposte
2
Visite
2K
PHP 18 Mar 2023
Kiko74b
K
C
Wp-admin a file php
  • Cpu03
  • 25 Gen 2023
  • WordPress
Risposte
5
Visite
4K
WordPress 6 Mar 2023
Cpu03
C
[Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress
  • Lino80
  • 9 Gen 2023
  • Offerte e Richieste di Lavoro e/o Collaborazione
Risposte
0
Visite
3K
Offerte e Richieste di Lavoro e/o Collaborazione 9 Gen 2023
Lino80
Inviare file jpg in locale alla stampante con php
  • csi
  • 14 Dic 2022
  • PHP
Risposte
0
Visite
917
PHP 14 Dic 2022
csi
M
Passaggio variabili array php su un tasto jq
  • maubox8
  • 9 Dic 2022
  • PHP
Risposte
3
Visite
1K
PHP 10 Dic 2022
maubox8
M
E
Php aggiornamento tabella
  • Emanuele85
  • 1 Dic 2022
  • PHP
Risposte
9
Visite
2K
PHP 2 Dic 2022
WmbertSea
G
phpmailer e php 8.1 con estensione mysqli
  • giacomo9783
  • 24 Nov 2022
  • PHP
Risposte
6
Visite
2K
PHP 5 Dic 2022
giacomo9783
G
M
Invio dati database via email php
  • Maelstrom
  • 23 Nov 2022
  • PHP
Risposte
0
Visite
1K
PHP 23 Nov 2022
Maelstrom
M
K
[php] Problema con inner join
  • Kiko74b
  • 22 Nov 2022
  • PHP
Risposte
4
Visite
2K
PHP 23 Nov 2022
Kiko74b
K
K
[php]form invio dati
  • Kiko74b
  • 7 Nov 2022
  • PHP
Risposte
0
Visite
1K
PHP 7 Nov 2022
Kiko74b
K
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?