Array associativi php su 2 campi mysql

maxnegri2036

Nuovo Utente
10 Mar 2021
12
0
1
Salve a tutti,
ho 2 campi mysql: Nel primo campo vengono registrati i nomi di alcune varianti a cui vengono associati dei valori in euro nell'altro campo.
Es.
1 campo
giallo rosso

2campo
3,00 5,00

Come posso fare in modo di stampare a video quanto segue?

giallo 3,00
rosso 5,00

Grazie!
 
Ciao credo basti fare questa query
PHP:
$query=mysqli_query($conn, "SELECT campo1,campo2 FROM tabella");
E poi per stamparlo a video così
PHP:
while($getquery=mysqli_fetch_assoc($query)){
echo $getquery['campo1']." ".$getquery['campo2'];
}
 
Ciao Tommy e grazie per la risposta.
La query select l'avevo già fatta e riesco ad ottenere i seguenti risultati.

1campo: giallo rosso
2campo: 3,00 5,00

Quello che vorrei fare è esplodere in un array i risultati dei singoli campi ed ottenere a video il seguente risultato:

giallo 3,00
rosso 5,00
 
Sto provando con explode e foreach ma non riesco ad avere il risultato che speravo.

PHP:
$campo1 =  explode(' ', $aggiunte);
$campo2 =  explode(' ', $valore_aggiunte);
foreach ($campo1 as $item ) {
    echo "$item ";
foreach ($campo2 as $item2 ) {
    echo "$item2 <br>";
}
}

Ottengo sempre

1campo: giallo rosso
2campo: 3,00 5,00

e non risultati associati come vorrei

giallo 3,00
rosso 5,00

Spero di essermi spiegato bene su quello che vorrei ottenere :confused:
 
prova così

PHP:
<?php
$campo1='giallo rosso';
$campo2='3.00 5.00';
echo 'campo1: '.$campo1.'<br>campo2: '.$campo2.'<br><br>';
$arr1=explode(' ',$campo1);
$arr2=explode(' ',$campo2);
$nele1=count($arr1);
for ($ind=0;$ind<$nele1;$ind++) {
     $arr1[$ind];
}
$nele2=count($arr2);
for ($ind=0;$ind<$nele1;$ind++) {
     $arr2[$ind];
}
$campo1=$arr1[0].' '.$arr2[0];
$campo2=$arr1[1].' '.$arr2[1];

echo 'campo1: '.$campo1.'<br>campo2: '.$campo2;
?>
 
prova così

PHP:
<?php
$campo1='giallo rosso';
$campo2='3.00 5.00';
echo 'campo1: '.$campo1.'<br>campo2: '.$campo2.'<br><br>';
$arr1=explode(' ',$campo1);
$arr2=explode(' ',$campo2);
$nele1=count($arr1);
for ($ind=0;$ind<$nele1;$ind++) {
     $arr1[$ind];
}
$nele2=count($arr2);
for ($ind=0;$ind<$nele1;$ind++) {
     $arr2[$ind];
}
$campo1=$arr1[0].' '.$arr2[0];
$campo2=$arr1[1].' '.$arr2[1];

echo 'campo1: '.$campo1.'<br>campo2: '.$campo2;
?>

Ciao Zorro e grazie per il tuo suggerimento,
si, i cicli for funzionano correttamente ma se nel campo1 e campo2 ci sono più variabili, vengono visualizzate solo le prime due.
ES:
campo1: giallo rosso verde
campo2: 3.00 5.00 4.00

Mi stampa a video solo il giallo 3.00 ed il rosso 5.00.
 
In effetti c'ho pensato proprio nel momento in cui te lo inviavo. Ma in campo1 e campo2 ci sono lo stesso numero di variabili? Intanto faccio qualche prova e ti faccio sapere
PS Mi mandi un esempio pratico di campo con più variabili?
 
Ultima modifica:
  • Like
Reactions: maxnegri2036
In effetti c'ho pensato proprio nel momento in cui te lo inviavo. Ma in campo1 e campo2 ci sono lo stesso numero di variabili? Intanto faccio qualche prova e ti faccio sapere
PS Mi mandi un esempio pratico di campo con più variabili?
Si, nel campo1 come nel campo2 possono esserci più variabili e cambiano continuamente.

Es. Campo1. giallo rosso verde viola
Campo2. 5.00 3.00 2.00 6.00
 
Ecco il codice corretto (l'ho testato sul campo di esempio che mi hai fornito, ma funziona anche con più variabili basta che i due campi di partenza contengano lo stesso numero di variabili).


PHP:
<?php
$campo=array();
$campo1='giallo rosso verde viola';
$campo2='5.00 3.00 2.00 6.00';
echo 'campo1: '.$campo1.'<br>';
echo 'campo2: '.$campo2.'<br><br>';

//inserisco le variabili in un array
$arr1=explode(' ',$campo1);
$arr2=explode(' ',$campo2);

//conto gli elementi dell'array
$nele=count($arr1);

//inserisco nei campi gli elemebnti degli array
//campo1: primo elem. arr1 + primo elem. arr2
//campo2: secondo elem. arr1 + secondo elem. arr2 ecc.
for ($ind=0;$ind<$nele;$ind++) {
     $campo[$ind] = $arr1[$ind].' '.$arr2[$ind];
}

//vsualizzo tutti glio elem. dell'array campi
for ($ind=0;$ind<$nele;$ind++) {
     echo 'campo'.($ind+1).': - '.$campo[$ind].'<br>';
}

?>
 
  • Like
Reactions: maxnegri2036
Ecco il codice corretto (l'ho testato sul campo di esempio che mi hai fornito, ma funziona anche con più variabili basta che i due campi di partenza contengano lo stesso numero di variabili).


PHP:
<?php
$campo=array();
$campo1='giallo rosso verde viola';
$campo2='5.00 3.00 2.00 6.00';
echo 'campo1: '.$campo1.'<br>';
echo 'campo2: '.$campo2.'<br><br>';

//inserisco le variabili in un array
$arr1=explode(' ',$campo1);
$arr2=explode(' ',$campo2);

//conto gli elementi dell'array
$nele=count($arr1);

//inserisco nei campi gli elemebnti degli array
//campo1: primo elem. arr1 + primo elem. arr2
//campo2: secondo elem. arr1 + secondo elem. arr2 ecc.
for ($ind=0;$ind<$nele;$ind++) {
     $campo[$ind] = $arr1[$ind].' '.$arr2[$ind];
}

//vsualizzo tutti glio elem. dell'array campi
for ($ind=0;$ind<$nele;$ind++) {
     echo 'campo'.($ind+1).': - '.$campo[$ind].'<br>';
}

?>
Bravissimo Zorro! funziona alla grande . Grazie mille per l'aiuto ;)
 

Discussioni simili