Dividere array multidimensionale in altri array multidimensionali

andspi

Nuovo Utente
27 Mar 2013
14
0
0
Ciao a tutti !

Premetto che sono nuovo del forum e spero di aver posato la discussione nella sessione giusta.

Il mio problema è quello di riuscire a dividere un'array multidimensionale , estratto con una query da mysql , in altri array multidimensionali in base a un criterio.

Mi spiego meglio facendo l'esempio :

Io ho questo array estratto da mysql
$risultati= mysql_query("SELECT circuito , posizione FROM $table WHERE zona LIKE '%L%' AND corsia LIKE '%5%'");

(ovviamente l'array ha più righe dove ogni riga è un record)

A questo punto io dovrei dividere il tutto in due array, diciamo $pari e $ dispari , in base che il valore posizione sia pari o dispari.

Il risultato dovrebbe essere che io mi ritrovo con due array , uno con valori dipendenti dalla posizione pari e uno con valori dipendenti dalla posizione dispari.

Spero di essere stato chiaro nella spiegazione.

Ringrazio tutti anticipatamente per l'aiuto.

Ciao
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
questo non è un array ma solo la query alla tabella

PHP:
$risultati= mysql_query("SELECT circuito , posizione FROM $table WHERE zona LIKE '%L%' AND corsia LIKE '%5%'");
posta come leggi i record, e un'indicazione di come vorresti la suddivisione
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, io ho capito piu o meno cosi
PHP:
<?php

$risultati = mysql_query("SELECT circuito , posizione FROM $table WHERE zona LIKE '%L%' AND corsia LIKE '%5%'");

$array_pari = array();
$array_dispari = array();
$i = 0;
while ($row = mysql_fetch_assoc($risultati)) {
    // verifica se pari
    if ($row['posizione'] % 2 == 0) {
        $array_pari[$i]['posizione'] = $row['posizione'];
        $array_pari[$i]['circuito'] = $row['circuito'];
    } else {
        $array_dispari[$i]['posizione'] = $row['posizione'];
        $array_dispari[$i]['circuito'] = $row['circuito'];
    }
    $i++;
}
?>
considera cmounque che l'estensione mysql è deprecata e prima o poi verrà rimossa
 

andspi

Nuovo Utente
27 Mar 2013
14
0
0
Grazie a tutti inanzi tutto per le risposte!

ho provato comi mi hai detto criric ma non riesco a stampare poi nella tabella i risultati mi da errore del server :incazz2:.

io ho fatto cosi :
PHP:
$array_pari =array();
$array_dispari=array();
$i=0;

while ($row = mysql_fetch_assoc($risultati)) {


    // verifica se pari
    if ($row['posizione'] % 2 == 0) {
        $array_pari[$i]['posizione'] = $row['posizione'];
        $array_pari[$i]['circuito'] = $row['circuito'];
    } else {
        $array_dispari[$i]['posizione'] = $row['posizione'];
        $array_dispari[$i]['circuito'] = $row['circuito'];
    }
    $i++;

	echo '<TABLE border=1>';
	echo '<tr>';
	echo '<TD>' .$array_pari['circuito'] . '</TD>';
        echo '<TD>' .$array_dispari['circuito'] . '</TD>';
	echo '</TR>';
	echo '</TABLE>';

}

Spero di non aver fatto tantissimi errori in due righe di codice :D.
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
è un array bidimensionale quindi non
PHP:
$array_pari['circuito']
ma
PHP:
$array_pari[$i]['circuito']

edit
la tabella inoltre è meglio se la apri prima del while e la chiudi dopo
edi edit
forse è meglio se li stampi dopo ora ti preparo un esempio
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
eccolo
PHP:
<?php
$array_pari = array();
$array_dispari = array();
$i = 0;

while ($row = mysql_fetch_assoc($risultati)) {
    // verifica se pari
    if ($row['posizione'] % 2 == 0) {
        $array_pari[$i]['posizione'] = $row['posizione'];
        $array_pari[$i]['circuito'] = $row['circuito'];
    } else {
        $array_dispari[$i]['posizione'] = $row['posizione'];
        $array_dispari[$i]['circuito'] = $row['circuito'];
    }
    $i++;
}
echo "<table>";
foreach ($array_pari as $value) {
    echo "<tr>";
    echo "<td>" . $value["posizione"] . "</td>";
    echo "<td>" . $value["circuito"] . "</td>";
    echo "</tr>";
}
echo "</table>";

echo "<table>";
foreach ($array_dispari as $value) {
    echo "<tr>";
    echo "<td>" . $value["posizione"] . "</td>";
    echo "<td>" . $value["circuito"] . "</td>";
    echo "</tr>";
}
echo "</table>";
?>
se dividi tra pari e dispari è inutile che poi metti tutto nella stessa tabella o forse non ho capito cosa devi fare
ovviamente non ho testato
 

andspi

Nuovo Utente
27 Mar 2013
14
0
0
Grazie ancora di tutto, ma continua ad uscirmi errore del server.

A me servirebbe che alla fine avessi come risultato una tabella dove in ogni colonna ho : i circuiti con posizione dispari e nell'altra i circuiti con posizione pari.

ti posto il codice completo che ho scritto :
PHP:
<html>
<head></head>
<body>

<?php
$host="host";
$user="user";
$pas="pas";
$data="percorsi50";


$con=mysql_connect($host,$user,$pas) or die (mysql_error());

$db=mysql_select_db($data,$con);

$elim = "DROP TABLE IF EXISTS percorsi";

$ok = mysql_query($elim); 

$query = "CREATE TABLE percorsi (
zonpic text,
allpic text,
dplpic text,
nivpic text,
codpro text,
valpro text,
ds1pro text,
cirpic text,
fampro text,
libfam text,
indpro02 text,
colcou2 text,
coupal2 text,
haucol text,
lngcol text,
lrgcol text,
minniv text,
maxniv text,
pdbcol text,
pdbpal text,
volcol text,
volpal text,
spcpro text,
pcbpro text,
nbjdlv text,
secdlv text,
coecol text,
codalc text,
degalc text,
volalc text,
foupro text,
edipro text,
codmds text,
indpro03 text,
indpro04 text,
indpro05 text,
indpro06 text,
indpro08 text,
coupal text,
id int NOT NULL auto_increment,
PRIMARY KEY (id)
)";

$result = mysql_query($query); 
 

$file="c:/desktop/percorsi.CSV";
$table="percorsi";

   mysql_query("LOAD DATA LOCAL INFILE '$file' INTO TABLE $table
		FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'");

$l5=mysql_query("SELECT cirpic , dplpic FROM $table WHERE zonpic LIKE '%L%' AND allpic LIKE '%5%'");

$array_pari = array(); 
$array_dispari = array(); 
$i = 0; 

while ($row = mysql_fetch_assoc($l5)) { 
    // verifica se pari 
    if ($row['dplpic'] % 2 == 0) { 
        $array_pari[$i]['dplpic'] = $row['dplpic']; 
        $array_pari[$i]['cirpic'] = $row['cirpic']; 
    } else { 
        $array_dispari[$i]['dplpic'] = $row['dplpic']; 
        $array_dispari[$i]['cirpic'] = $row['cirpic']; 
    } 
    $i++; 
} 
echo "<table>"; 
foreach ($array_pari as $value) { 
    echo "<tr>"; 
    echo "<td>" . $value["dplpic"] . "</td>"; 
    echo "<td>" . $value["cirpic"] . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 

echo "<table>"; 
foreach ($array_dispari as $value) { 
    echo "<tr>"; 
    echo "<td>" . $value["dplpic"] . "</td>"; 
    echo "<td>" . $value["cirpic"] . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 



echo mysql_error();


mysql_close($con);
?>
Grazie ancora per il tuo aiuto.
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ma continua ad uscirmi errore del server.
che errore?
ps
racchiudi il codice che posti trai i tag presenti sulla barra di formattazione ( seconda linea ultime 3 icone )
 

andspi

Nuovo Utente
27 Mar 2013
14
0
0
Quando apro la pagina php con il browser mi da errore server : si è verificato un errore nel soddisfare la tua richiesta
 

andspi

Nuovo Utente
27 Mar 2013
14
0
0
Ho risolto dando la condizione : where , nella query mysql .
Grazie a tutti per il vostro aiuto e contributo , alla prossima.
 
Discussioni simili
Autore Titolo Forum Risposte Data
T Dividere un'immagine in 3 parti orizzontali e salvarle separatamente Photoshop 2
camilia Come posso dividere le grandi dimensioni del file PST? Windows e Software 2
gandalf1959 [PHP] Dividere un campo di testo in più campi PHP 9
P [HTML] [PHP] dividere lo schermo in tre colonne HTML e CSS 110
L [WordPress] Dividere articoli in più pagine, problemi SEO? WordPress 2
M Dividere immagine a metà in diagonale Photoshop 1
M Dividere risultati in colonna in base al contenuto PHP 9
alankanz dividere risultati in pagine MySqli PHP 4
Z Dividere settimane PHP 3
M Dividere su piu pagine un articolo lungo prelevato da db. jQuery 0
P Dividere lo schermo in tre colonne HTML e CSS 1
L Dividere risultati per data e pagine diverse PHP 17
G Dividere stringa ed eseguire query PHP 3
P Dividere lo schermo in tre colonne HTML e CSS 6
L Dividere classe in più parti PHP 3
S Dividere una textarea PHP 1
A dividere il risultato di una Query in più pagine Classic ASP 1
redevilduil dividere la gallery in pagine con php PHP 3
C Dividere un div in due colonne Javascript 2
U E' possibile dividere un' immagine o un background in celle? jQuery 0
M Dividere Stringhe per MySQL PHP 6
E e se volessi dividere le mie pagine? PHP 2
renoir09 software dividere sql su mac Database 1
haringk Dividere ciclo in più parti PHP 12
C dividere un'immagine in più parti Webdesign e Grafica 3
L Dividere campo PHP 2
S dividere un wmv con movie maker Windows e Software 0
A dividere dato 32 bit in 4 byte Programmazione 2
B dividere Home Page in 5 sezioni con CSS HTML e CSS 1
metalgemini dividere in piu colonne il risultato di una query Classic ASP 4
G come dividere la pagina in 2 frame??!! HTML e CSS 5
M Come si fa a dividere un documento in più colonne in dreamweaver Flash 0
otto9due Leggere valore da array multidimensionale a chiavi dinamiche PHP 1
M Passaggio variabili array php su un tasto jq PHP 3
M Somma inversa di Array C/C++ 2
MarcoGrazia Iterazione array PHP 5
N Passare array da php a javascript PHP 5
G Ordinare un array multidimensionale PHP 4
H Errore su array associativo PHP 1
K Array senza ripetizioni Presentati al Forum 4
A Gestione array multidimensionale PHP 6
otto9due Più chiavi in array con array_key_exists() PHP 0
M Array associativi php su 2 campi mysql PHP 10
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L Sessione e array per utenti PHP 0
R Importazione csv su mysql tramite array PHP 2
elpirata Ricavare e stampare indirizzo ip da array associativo PHP 0
P Ciclare tra array di oggetti PHP 1
R Raggruppare valori array PHP 5

Discussioni simili