Ci risiamo___Array su intero codice

Monital

Utente Attivo
15 Apr 2009
778
2
18
Allora qua la faccenda è molto complessa

cerco di spiegarmi in maniera più chiara possibile, preciso che può essere facile che la cosa sia impossibile però a ragioanmento credo sia fattibile anche se non ho la minima idea di come si possa risolvere, passo alla spiegazione

Ho una tabella nel database che contiene l'id e il nome dell'utente, ed altre due tabelle una per le entrate una epr le uscite dove l'utente ciene identificato tramite l'id della tabella menzioanto rpecedentemente

Ora ho creato uno script di circa 7 pagine dove si cerca l'utente con id x e tramite le altre due tabelle entrate / uscite fa visioanre tutti i movimenti dell'utente x. e poi c'è una pagina avente tot tasti quanti sono gli utenti che permette ad ognuno di visioanre i movimenti degli altri

però il problema sarebbe questo per ogni utente ho creato la sua cartella ad esempio se ci sono 10 utenti c'è la cartella 1 la 2 la 3 fino la 10, cartella avente nome uguale all'id utente. Queste 10 cartelle contengono tutte gli stessi medesimi script cambiando solo l'id dell'utente

ora dato cha a volte potrebbe aggiungersi un utente sono costretto a creare una cartella nuova con le 7 pagine modificandogli l'id a quella nuova, perdipiù se voglio fare un aggiunta di codice mi tocca farlo per ogni cartella e finchè sono 4-5 ok niente di che ma al momento gli utenti in questione sono 25 e possono arrivare anche a 40

Prima di postare del codice volevo sapere se è possibile php parlando creare un array che estrae tutti gli id e che sviluppa il codice epr ogni id il tutto avente una cartella sola e che però contemporaneamente faccia visionare a tutti i movimenti degli altri

così nel caso dovessi itnervenire sul codice mi basterebbe entrare solo in quella cartella

In parole povere servirebbe un array che ripete il codice di una cartella per x volte quanti sono gli id presenti nella tabella principale

Io credo o perlomeno spero di essermi spiegato bene ma da un certo punto di vista mi viene il dubbio che ancora una volta faticherete a capire

:p

Buona domenica
Grazie cmq a chi saprà darmi indicazioni
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ho capito perfettamente, e hai fatto un errore molto comune tra i nuovi sviluppatori PHP. Ti ricordo che PHP è un linguaggio dinamico. Questo significa che non è necessario scrivere ogni volta lo stesso codice. Nel tuo caso avresti dovuto fare così: prendere un parametro GET con l'ID dell'utente (es. http://www.miosito.com/movimenti.php?id=1) e passarlo allo script (puoi recuperarlo con $_GET['id']), quindi recuperare i dati di quell'utente. Ad esempio:
PHP:
<?php
// recuperi l'ID
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;

// controlli che l'ID sia impostato
if(!$id)
    die('Nessun ID impostato!');

// controlli che l'utente con quell'ID esista
// [...]

// visualizzi i movimenti dell'utente
// [...]
?>
Se qualcosa non ti è chiaro fammi sapere.
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Ciao ale magari so io che nont i ho capito

io la variabile dell'id l'ho passata con post però ho 20 id e per ogni id devo usare los tesso identico script dove cambia solo il numero dell'id

poi ho una pagina princiaple che mi incolonna tutti gli id(sotto forma di tasto) così che se uno preme il tasto 1 vede tutte le operazione dell'id 1(che sono registarte nel databse)

soloc he ho dovuto copincollare lo script dell'id 1 per tutti gli altri 20 rinominando solo l'id

mentre pensavo si potesse fare una cartella unica con un solo codice ma con un array che estrae tutti gli id e compone il codice per ogni id

scusami am il tuo script non l'ho proprio capito anche eprchè a me (credo) che anche estraendo tutti gli id sotto forma di array non saprei come permettere al codice di ricalcolare per ogni elmento dell'array

madò scusami io non sono molto bravo a spiegare
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Allora dato che ora ho più tempo riprendo questa discussione dato che nell'altra ho risolto.

Adesso ho i button incolonnati e su ognuno è presente l'id dell'utente però ora non mi riesce di inviare l'id scelto alla apgina successiva :incazz2:

PHP:
<?php
 $colonne = 3;
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");


$sql = "SELECT * FROM Manager";
$res = mysql_query($sql);
  
if(($righe = mysql_num_rows($res))>0)
  {
  echo "  <form name=\"soc\" method=\"post\" action=\"principale.php\" >";

  echo "<table>\n";

  for($i = 0; $i < $righe; $i++) {
  $r = mysql_fetch_array($res);
  if($i % $colonne == 0) {
  echo "<tr>\n";
  }

  echo "<td>
    <button  name=\"soc\"  type=\"submit\" style=\"width:200px;\" >
      <img src=\"../loghi/". $r['ID_Squadra'].".gif\" width=\"25\" height=\"25\" title=\"\"  vspace=\"5\"
alt=\"invia adesso\" align=\"absmiddle\">    
   <b><font class=\"rif\" face=\"Tahoma\" size=\"2\" color=\"#282828\">".$r['ID_Squadra']."</b>
 </button> 
 
  
</td>\n";

  if(($i % $colonne) == ($colonne - 1) || ($i + 1) == $righe) {
  echo "</tr>\n";
  }
  
 }
  echo "</table>\n";
  echo "</form>";
}  
?>


suggerimenti?
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Si dice "Morto un Papa se ne fa un altro".

Dettociò


ho risolto il problema dell'array così

PHP:
    $sqlquery = "SELECT * FROM Utenti";
	$dati=array();
$result = mysql_query($sqlquery);
while ($linea = mysql_fetch_array($result, MYSQL_ASSOC)){
$dati[]= $linea['i_utente'];

	}
	 	 // ottiene i valori del record
    $res = "'".implode("','", $dati)."'"; 
	
echo $res;

poi

PHP:
    $query = "SELECT SUM(Uscite) as tot_usc FROM Tabella WHERE id IN ($res)";
    $dati2=array();
	$result = mysql_query($query);
	  while ($linea3 = mysql_fetch_array($result, MYSQL_ASSOC))
{
$dati2[]= $linea3['tot_ing'];
 
}
  
   // ottiene i valori del record
    $totusc = "'".implode("','", $dati2)."'"; 
  
  
echo $totusc;

Nel moemntod i contententezza più assoluta per aver risolto una cossa che ci giro da mesi e che oggi mi ha sottratto 4 ore di tempo, ci casca l'asino

ora devo aggiornare una seconda tabella che contiene il totale delle uscite

provo con

PHP:
$sqlquery = "UPDATE mon_prova SET entrate = '$totusc' WHERE id IN ($res)";
$query=mysql_query($sqlquery);

ovviamente essendo anche $totusc un array non me lo prende come valore.

Come si fa?

:confused:
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
provato a ciclare il valore dell'array e ad eseguire un update per ogni valore estratto?
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
provato a ciclare il valore dell'array e ad eseguire un update per ogni valore estratto?

potresti farmi un esempio pratico? non ho capito molto bene cosa intendi, cioè dovrei fare un ciclo di $totusc? e non avrei los tesso problema con l'UPDATE?
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
sto facendo una marea di prove
PHP:
$sqlquery = "UPDATE mon_prova SET entrate = '$totusc' WHERE id IN ($res)";
$query=mysql_query($sqlquery);
$res è uguale a "1","2","3","4", etc.mentre $totusc è uguale a "100","200","300", etc....

ho provato di tutte le maniere presumo che $res funzioni perchè se faccio

PHP:
$sqlquery = "UPDATE mon_prova SET entrate = '100' WHERE id IN ($res)";
$query=mysql_query($sqlquery);

incrementa il valore a 100 in tutti le righe incluse in $res

ma in entrate non prende ne '100','200','300' etc nè '100,200,300' non funziona

come posso mettere in entrate l'array $totusc ?:crying: sto vedendo nell'impossibile ma non trovo nessun caso simile

mi viene il dubbio che non si possa fare e questo renderebbe inutile tutto sto lavoro :dipser:
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Nulla è impossibile. L'impossibile richiede solo più tempo (cit.)

In ogni caso, prova a fare un var_dump della query per vedere come viene costruita:
PHP:
var_dump($sqlquery);

:mavieni:

string(334) "UPDATE mon_prova SET entrate = ''292','318','423','312','433','456','548','443','761','328','339','481','542','246','390','850','468','422','254','254','293','487','412','271','373','278'' WHERE id IN ('1','6','9','5','13','12','8','10','7','24','16','2','4','25','19','14','20','11','3','23','26','15','17','18','22','21')ORDER by id"

mi restituisce questo
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Credo che dovrai eseguire tante query quanti sono gli ID. Prova così:
PHP:
foreach($dati as $key => $id)
{
	$value = $dati2[$key];
	
	$sql = "UPDATE mon_prova SET entrate = '{$value}' WHERE id = '{$id}'";
	mysql_query($sql) or die(mysql_error());
}
E vedi se funziona.
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Credo che dovrai eseguire tante query quanti sono gli ID. Prova così:
PHP:
foreach($dati as $key => $id)
{
	$value = $dati2[$key];
	
	$sql = "UPDATE mon_prova SET entrate = '{$value}' WHERE id = '{$id}'";
	mysql_query($sql) or die(mysql_error());
}
E vedi se funziona.

scusami ma sto un pò fuso seguendo la mia queey

PHP:
$sqlquery = "UPDATE mon_prova SET entrate = '$totusc' WHERE id IN ($res)";
$query=mysql_query($sqlquery);

$id sarebbe il mio $res
$dati dovrebbe esse il mio $totusc
e
$dati2 sarebbe?
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
PHP:
foreach($res as $key => $id)
{
    $value = $totusc[$key];
    
    $sql = "UPDATE mon_prova SET entrate = '{$value}' WHERE id = '{$id}'";
    mysql_query($sql) or die(mysql_error());
}

non va :crying::crying: ma dopo WHERE non andrebbe id IN

perchè perlomeno $res me lo prendeva difatti facendo delle prove inserendo un unico numero al posto di $totusc mi aggiornava la cifra in tutti gli id
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Forse ho capito male io cosa devi fare. Tu quali record devi aggiornare e con quali valori?


devo aggiornare il campo entrate di tutti gli id con i valori risultanti da $totusc

in $totusc ci sono dei totali inq uesto formato "100","200","300" tanti quanti sono gli ID_UTENTI(che sono contenuti in $res)
 
Discussioni simili
Autore Titolo Forum Risposte Data
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
S Come conoscere la posizione di numeri in un array escludendo i doppioni PHP 4
D Popolare array PHP 8
R Includere elementi array fra apici PHP 1
P Array da foreach PHP 2
N Variabile di sessione è un array PHP7 PHP 3
R Scorporare array e recuperare record tabella PHP 10
A Contare gli elementi di un array PHP 13
A Importare array in mysql PHP 1
A Array di immagini Sviluppo app per Android 10
D Chiave unica in estrazione dati da array php PHP 0
D Spazio vuoto in un elemento di un array php PHP 2
S Come filtrare valori di un array PHP 4
mazman mysqli_query() mi ritorna un array vuoto anche se presente un record nella tabella PHP 13
A Non è un array e nemmeno un intero, che tipo di dato è? Javascript 1
max1974 PHP, Array Multidimensionale e Grafici PHP 22
S [PHP] Confrontare due array con valori quasi uguali PHP 2
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
R [PHP] Visualizzazione dati Array PHP 2
S [PHP] Eliminare doppioni array e rinumerare le posizioni PHP 2
M Importare - Manipolare Json Array Sviluppo app per Android 2
M [PHP] Problemi su inserimento array nel db PHP 7
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
G [ASP] Ciclare i valori di 2 array Classic ASP 2
S [PHP] Estrarre elementi array su più variabili PHP 5
S [PHP] Estrarre dati tabella in diversi array PHP 2
max1974 [PHP] Raggruppare array PHP 4
A [PHP] Caricamento database in array PHP 11
G sql select con array in php PHP 1
L [Java] Aggiungere elementi ad array JSON Java 0
S [PHP] individuare chiave elemento array PHP 7
A [PHP] Script con array con numeri che iniziano per 00 PHP 2
Emix [Javascript] Somma con array input HTML Javascript 1

Discussioni simili