• Home
  • Forum
  • Fare Web
  • PHP

modifica di più record contemporaneamente

  • Creatore Discussione Creatore Discussione IImanuII
  • Data di inizio Data di inizio 5 Apr 2013
Prec.
  • 1
  • 2
Primo Prec. 2 di 2

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 9 Apr 2013
  • #21
Non funziona o meglio funziona in parte. Ho fatto così:

PHP:
function controllo($dati){ 
    $dati=array_map("trim", $dati); //elimini eventuali caratteri es spazio 
    foreach ($dati as $val) { 
        if ($val != ""){ 
            $error.= "errore $val </br>"; 
            if ($error !=""){ 
                return $error; 
            } 
        } 
    } 
} 
    echo controllo($titolo);  
    echo controllo($genere);  
    echo controllo($trama);  
    echo controllo($locandina);  
    echo controllo($stream);

Non so perchè prende in considerazione solo i primi valori dell'array.

Ho provato a fare in quest'altro modo e funziona. Tuttavia non so come terminare (die; o exit la pagina se trova i campi vuoti.

PHP:
	function controllo($dati){
	$dati=array_map("trim", $dati);
	$error="";
        foreach ($dati as $dato) {
			if (!count($dato)){
				$error.="Vuoto $dato <br/>";
			}
        }
	if($error !=""){
		echo $error;
	}	
    }
    
    echo controllo($titolo); 
    echo controllo($genere); 
    echo controllo($trama); 
    echo controllo($locandina); 
    echo controllo($stream);

Se inserisco exit; qui
PHP:
	if($error !=""){
		echo $error;
                exit;
	}
Non prosegue con la stampa di tutti i gli errori che trova ma si ferma solo al primo. Se metto tale if al di fuori della funzione, la variabile $error la vede sempre vuota.

Per meglio farti comprendere tutto sto casino ti posto una pagina di test provala in locale o dove ti pare e capirai ^_^:

PHP:
<?php
//creo l'array con i campi vuoti
	$OLD   = array();
	$OLD[] = "";
	$OLD[] = "";
	$OLD[] = "";
	$OLD[] = "";
	
	$OLD2   = array();
	$OLD2[] = "";
	$OLD2[] = "";
	$OLD2[] = "";
	$OLD2[] = "";

//da tale funzione vorrei che identificare quali sono i campi vuoti
//stampare TUTTI i campi che risultano vuoti
//e poi far morire la pagina evitando che si esegua altro codice.	
	function controllo($dati){
	$dati=array_map("trim", $dati);
	$error="";
        foreach ($dati as $dato) {
			if (count($dato)){
				$error.="Vuoto $dato <br/>";
			}
        }
	if($error !=""){
		echo $error;
		
	}	
    }
    
    echo controllo($OLD);
	echo controllo($OLD2);
	
	echo "Non devo essere visto dopo la stampa dei 4 array errati";
?>
 
Ultima modifica: 9 Apr 2013

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 9 Apr 2013
  • #22
Borgo qui mi sono espresso male
PHP:
echo "Non devo essere visto dopo la stampa dei 4 array errati";

Doveva essere
PHP:
echo "Non devo essere visto dopo la stampa DI TUTTI gli array vuoti";

In definitiva la fattispecie che mi ritrovo ad affrontare è
PHP:
<?php
//creo l'array con i campi vuoti
    $OLD   = array();
    $OLD[] = "";
    $OLD[] = "";
    $OLD[] = "";
    $OLD[] = "";
    
    $OLD2   = array();
    $OLD2[] = "";
    $OLD2[] = "";
    $OLD2[] = "";
    $OLD2[] = "";

//da tale funzione vorrei che identificare quali sono i campi vuoti
//stampare TUTTI i campi che risultano vuoti
//e poi far morire la pagina evitando che si esegua altro codice.    
    function controllo($dati){
    $dati=array_map("trim", $dati);
    $error="";
        foreach ($dati as $dato) {
            if (count($dato)){
                $error.="Vuoto $dato <br/>";
            }
        }
    if($error !=""){
        echo $error;
        
    }    
    }
    
    echo controllo($OLD);
    echo controllo($OLD2);
    
	echo "Non devo essere visto dopo la stampa DI TUTTI gli array vuoti";
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 9 Apr 2013
  • #23
ciao
ci penso un momento poi (spero) ti so dire
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 9 Apr 2013
  • #24
Tranquillissimo Borgo, e ovviamente grazie ^_^ intanto passo la serata a leggermi la dieta Dukan che in 2 anni sono stato capace di prendere 20 kg :V
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 10 Apr 2013
  • #25
ciao
scusa vorrei capire meglio considerando l'esempio che hai fatto
$OLD = array();
$OLD[] = "";
$OLD[] = "";
$OLD[] = "";
$OLD[] = "";

$OLD2 = array();
$OLD2[] = "";
$OLD2[] = "";
$OLD2[] = "";
$OLD2[] = "";
Clicca per allargare...
se old e old2 sono tutti vuoti (immagino che rappresentino i valori $titolo, $genere, $trama, $locandina, $stream)
allora devo tornare sensa eseguire nulla al form, mentre se es
$OLD = array();
$OLD[] = "pinco";
$OLD[] = "";
$OLD[] = "";
$OLD[] = "";

$OLD2 = array();
$OLD2[] = "";
$OLD2[] = "";
$OLD2[] = "";
$OLD2[] = "";
Clicca per allargare...
devo uppare pinco e mostrare cosa è rimasto vuoto
è così?
se è così devo pensarci un attimo

p.s.
meglio prendere che lasciare
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 10 Apr 2013
  • #26
La mia idea era che solo i campi vuoti venissero mostrati: gli altri campi inseriti correttamente venissero lasciati perdere. Dopo tale script metterei la funzione che esegue la query, quindi il mio intento è bloccare questa funzione per il controllo cosicché dopo non venga eseguita la query altrimenti mi ritroverei ad avere campi vuoti all'interno del db.

Ho modificato ancora un pochino la function associando ad ogni array un nome cosicché so qual'è il campo vuoto:
PHP:
<?php
//creo l'array con i campi vuoti
    $OLD   = array();
    $OLD[] = "";
    $OLD[] = "";
    $OLD[] = "";
    $OLD[] = "";
    
    $OLD2   = array();
    $OLD2[] = "";
    $OLD2[] = "";
    $OLD2[] = "";
    $OLD2[] = "";

//da tale funzione vorrei che identificare quali sono i campi vuoti
//stampare TUTTI i campi che risultano vuoti
//e poi far morire la pagina evitando che si esegua altro codice.    
	function controllo($dati, $nome_campo){
		$dati=array_map("trim", $dati);
		$error="";
			foreach ($dati as $dato) {
				if (count($dato)){
					$error.="Vuoto $nome_campo <br/>";
				}
			}
		if($error !=""){
			echo $error;
		}
    }
    
    echo controllo($OLD, "Trama");  
    echo controllo($OLD2, "Link"); 	
    
	echo "Non devo essere visto dopo la stampa DI TUTTI gli array vuoti";
?>

A parte questo, per fare ciò che vorrei secondo me basterebbe valorizzare la variabile $error al di fuori della funzione. Solo che se vedo $error con un var_dump al di fuori della funzioneda sempre valore null.

In realtà una soluzione l'avrei ma è davvero poco elegante e "dispersiva": secondo me all'interno della funzione basterebbe scrivere gli errori all'interno di un file .txt. Dopo al di fuori della funzione si verifica se tale .txt è scritto o è vuoto: se è scritto ed esiste ne leggi il contenuto e con un bottone che ti porta indietro lo svuoti e lo elimini. Se non esiste oppure esiste ed è vuoto invece prosegui normalmente.

Tuttavia tale soluzione non la prediligo per nulla, infatti preferisco tenere il codice così com'è e bloccarlo con un exit dopo echo $error; In tal modo si ferma al primo vuoto che trova, ma come si dice, chi si accontenta gode così così XD

Tu hai soluzioni? E se si provasse a creare un array di error[]? Si potrebbe far scorrere e stampare tutto il ciclo all'interno della funzione e poi bloccarlo no? Non saprei come fare in tal caso U.u

Borgo non finirò mai di ringraziare te e tutti gli altri per il supporto che date qui xD
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 10 Apr 2013
  • #27
ciao
mi è venuta un'idea bislacca (e non so se funzi)
in questo modo se il valore è pieno uppa se è vuoto non uppa,
poi ti dice se tutti vuoti, se tutti uppati e eventualmente quali uppati e quali no
PHP:
<?php
function controllo($id, $dati, $nome_campo){
	$dati = array_map("trim", $dati);
	$dati = array_map('mysql_real_escape_string', $dati);
	$da_uppare = array_combine($id, $dati);//creo l'array per l'uppaggio
	$quanti=count($da_uppare);
	$si_upp=0;//metto a zero i contatori
	$no_upp=0;
	foreach($da_uppare as $chiave => $valore){
		if($valore !=""){//uppi solo se il valore non è vuoto
			$q="UPDATE Films SET $nome_campo = $valore WHERE id = $chiave";
			//mysql_query($q);
			/*qui ci potrebbe stare un al posto della quary diretta
			if(mysql_query($q){
			*/
			$uppato[]="aggiornato campo $nome_campo id $chiave a nuovo valore $valore";
			$si_upp++;
			/*
			e il suo else
			}else{
				$non_uppato[]="ERRORE: il valore con id $chiave campo $nome_campo, non aggiornato";
				$no_upp++;
			}
			*/
		}else{
			$non_uppato[]="il valore con id $chiave campo $nome_campo è vuoto, non aggiornato";
			$no_upp++;
		}
		if($si_upp == 0){//tutti i valori sono vuoti
			echo "tutti i $no_upp valori sono vuoti, i campi $nome_campo non sono stati aggiornati<br />";
			//se vuoi visualizzi quali con un foreach di $non_uppato[], ma secondo me non servirebbe
			
		}else{
			if($si_upp == $quanti){//tutti i campi sono stati aggiornati
				echo "tutti i $quanti campi $nome_campo sono stati aggiornati<br />";
			}else{//alcuni aggiornati altri no
				echo "$si_upp campi $nome_campo sono stati aggiornati, $no_upp non aggiornati<br />";
				//e qui fai vedere quali si e quali no
				for($k=0;$k < count($uppato);$k++){//mostri gli uppati
					echo $uppato[$k]."<br />";
				}
				for($k=0;$k < count($non_uppato);$k++){//mostri i non uppati
					echo $non_uppato[$k]."<br />";
				}
			}
		
		}
	}
}//fine function
//dati connessione
if(isset($_POST['mod_film'])){
	controllo($_POST['id'], $_POST['titolo'], "titolo");
	controllo($_POST['id'], $_POST['genere'], "genere");
	controllo($_POST['id'], $_POST['trama'], "descrizione");
	controllo($_POST['id'], $_POST['locandina'], "locandina");
	controllo($_POST['id'], $_POST['stream'], "link");
}
?>
if: se vuoi provala (a parte) considerando pero che forse va migliorata e corretta, l'ho buttata giu così di getto
else: cestina il tutto
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 10 Apr 2013
  • #28
borgo italia ha scritto:
ciao
mi è venuta un'idea bislacca (e non so se funzi)
in questo modo se il valore è pieno uppa se è vuoto non uppa,
poi ti dice se tutti vuoti, se tutti uppati e eventualmente quali uppati e quali no
PHP:
<?php
function controllo($id, $dati, $nome_campo){
	$dati = array_map("trim", $dati);
	$dati = array_map('mysql_real_escape_string', $dati);
	$da_uppare = array_combine($id, $dati);//creo l'array per l'uppaggio
	$quanti=count($da_uppare);
	$si_upp=0;//metto a zero i contatori
	$no_upp=0;
	foreach($da_uppare as $chiave => $valore){
		if($valore !=""){//uppi solo se il valore non è vuoto
			$q="UPDATE Films SET $nome_campo = $valore WHERE id = $chiave";
			//mysql_query($q);
			/*qui ci potrebbe stare un al posto della quary diretta
			if(mysql_query($q){
			*/
			$uppato[]="aggiornato campo $nome_campo id $chiave a nuovo valore $valore";
			$si_upp++;
			/*
			e il suo else
			}else{
				$non_uppato[]="ERRORE: il valore con id $chiave campo $nome_campo, non aggiornato";
				$no_upp++;
			}
			*/
		}else{
			$non_uppato[]="il valore con id $chiave campo $nome_campo è vuoto, non aggiornato";
			$no_upp++;
		}
		if($si_upp == 0){//tutti i valori sono vuoti
			echo "tutti i $no_upp valori sono vuoti, i campi $nome_campo non sono stati aggiornati<br />";
			//se vuoi visualizzi quali con un foreach di $non_uppato[], ma secondo me non servirebbe
			
		}else{
			if($si_upp == $quanti){//tutti i campi sono stati aggiornati
				echo "tutti i $quanti campi $nome_campo sono stati aggiornati<br />";
			}else{//alcuni aggiornati altri no
				echo "$si_upp campi $nome_campo sono stati aggiornati, $no_upp non aggiornati<br />";
				//e qui fai vedere quali si e quali no
				for($k=0;$k < count($uppato);$k++){//mostri gli uppati
					echo $uppato[$k]."<br />";
				}
				for($k=0;$k < count($non_uppato);$k++){//mostri i non uppati
					echo $non_uppato[$k]."<br />";
				}
			}
		
		}
	}
}//fine function
//dati connessione
if(isset($_POST['mod_film'])){
	controllo($_POST['id'], $_POST['titolo'], "titolo");
	controllo($_POST['id'], $_POST['genere'], "genere");
	controllo($_POST['id'], $_POST['trama'], "descrizione");
	controllo($_POST['id'], $_POST['locandina'], "locandina");
	controllo($_POST['id'], $_POST['stream'], "link");
}
?>
if: se vuoi provala (a parte) considerando pero che forse va migliorata e corretta, l'ho buttata giu così di getto
else: cestina il tutto
Clicca per allargare...

Da un primo occhio credo di aver capito cosa vuoi fare. Quando posso la provo la completo e ti faccio sapere.
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 10 Apr 2013
  • #29
Borgo credo funzioni ma non ne sono certo, l'ho testata su una pagina di test te la posto magari mi puoi dare una mano a comprendere i risultati, anche perché li vedo tutti scombinati... :quote:
PHP:
<?php
//creo l'array con i campi vuoti
    $titolo   = array();
    $titolo[] = "titolo 1 pieno";
    $titolo[] = "";
    $titolo[] = "titolo 3 pieno";
    $titolo[] = "";
    
    $trama   = array();
    $trama[] = "";
    $trama[] = "trama 2 pieno";
    $trama[] = "";
    $trama[] = "trama 4 pieno";
	
	$num   = array();
    $num[] = "1";
    $num[] = "2";
    $num[] = "3";
    $num[] = "4";
 
function controllo($id, $dati, $nome_campo){ 
    $dati = array_map("trim", $dati); 
    //$dati = array_map('mysql_real_escape_string', $dati); 
    $da_uppare = array_combine($id, $dati);//creo l'array per l'uppaggio 
    $quanti=count($da_uppare); 
    $si_upp=0;//metto a zero i contatori 
    $no_upp=0; 
    foreach($da_uppare as $chiave => $valore){ 
        if($valore !=""){//uppi solo se il valore non è vuoto 
            $q="UPDATE Films SET $nome_campo = $valore WHERE id = $chiave"; 
            //mysql_query($q); 
            /*qui ci potrebbe stare un al posto della quary diretta 
            if(mysql_query($q){ 
            */ 
            $uppato[]="aggiornato campo $nome_campo id $chiave a nuovo valore $valore"; 
            $si_upp++; 
            /* 
            e il suo else 
            }else{ 
                $non_uppato[]="ERRORE: il valore con id $chiave campo $nome_campo, non aggiornato"; 
                $no_upp++; 
            } 
            */ 
        }else{ 
            $non_uppato[]="il valore con id $chiave campo $nome_campo è vuoto, non aggiornato"; 
            $no_upp++; 
        } 
        if($si_upp == 0){//tutti i valori sono vuoti 
            echo "tutti i $no_upp valori sono vuoti, i campi $nome_campo non sono stati aggiornati<br />"; 
            //se vuoi visualizzi quali con un foreach di $non_uppato[], ma secondo me non servirebbe 
             
        }else{ 
            if($si_upp == $quanti){//tutti i campi sono stati aggiornati 
                echo "tutti i $quanti campi $nome_campo sono stati aggiornati<br />"; 
            }else{//alcuni aggiornati altri no 
                echo "$si_upp campi $nome_campo sono stati aggiornati, $no_upp non aggiornati<br />"; 
                //e qui fai vedere quali si e quali no 
                for($k=0;$k < count($uppato);$k++){//mostri gli uppati 
                    echo $uppato[$k]."<br />"; 
                } 
                for($k=0;$k < count($non_uppato);$k++){//mostri i non uppati 
                    echo $non_uppato[$k]."<br />"; 
                } 
            } 
         
        } 
    } 
}//fine function 
//dati connessione 

	echo controllo($num,$titolo,"titolo"); 
	echo controllo($num,$trama,"trama"); 

/*if(isset($_POST['mod_film'])){ 
    controllo($_POST['id'], $_POST['titolo'], "titolo"); 
    controllo($_POST['id'], $_POST['genere'], "genere"); 
    controllo($_POST['id'], $_POST['trama'], "descrizione"); 
    controllo($_POST['id'], $_POST['locandina'], "locandina"); 
    controllo($_POST['id'], $_POST['stream'], "link"); 
} */


?>

l'output a video è questo:

Codice:
1 campi titolo sono stati aggiornati, 0 non aggiornati
aggiornato campo titolo id 1 a nuovo valore titolo 1 pieno
1 campi titolo sono stati aggiornati, 1 non aggiornati
aggiornato campo titolo id 1 a nuovo valore titolo 1 pieno
il valore con id 2 campo titolo è vuoto, non aggiornato
2 campi titolo sono stati aggiornati, 1 non aggiornati
aggiornato campo titolo id 1 a nuovo valore titolo 1 pieno
aggiornato campo titolo id 3 a nuovo valore titolo 3 pieno
il valore con id 2 campo titolo è vuoto, non aggiornato
2 campi titolo sono stati aggiornati, 2 non aggiornati
aggiornato campo titolo id 1 a nuovo valore titolo 1 pieno
aggiornato campo titolo id 3 a nuovo valore titolo 3 pieno
il valore con id 2 campo titolo è vuoto, non aggiornato
il valore con id 4 campo titolo è vuoto, non aggiornato
tutti i 1 valori sono vuoti, i campi trama non sono stati aggiornati
1 campi trama sono stati aggiornati, 1 non aggiornati
aggiornato campo trama id 2 a nuovo valore trama 2 pieno
il valore con id 1 campo trama è vuoto, non aggiornato
1 campi trama sono stati aggiornati, 2 non aggiornati
aggiornato campo trama id 2 a nuovo valore trama 2 pieno
il valore con id 1 campo trama è vuoto, non aggiornato
il valore con id 3 campo trama è vuoto, non aggiornato
2 campi trama sono stati aggiornati, 2 non aggiornati
aggiornato campo trama id 2 a nuovo valore trama 2 pieno
aggiornato campo trama id 4 a nuovo valore trama 4 pieno
il valore con id 1 campo trama è vuoto, non aggiornato
il valore con id 3 campo trama è vuoto, non aggiornato
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 11 Apr 2013
  • #30
ciao
grosso modo direi di si (comunque dovresti provare a guardare il db), prova a farti una tabella di prova perche la parte più importante è che funzi come uppaggio.
se con la tabella di prova funziona poi cercare di mettere a posto la messaggistica è più semplice.
forse è da mettere a punto la visualizzazione dei messaggi in quanto ad ogni giro crea il messaggio, bisognerebbe che venisse fuori solo una sintesi.
poi dove c'è, nelle varie stringhe del messaggio, il carattere è sostituiscilo con &egrave;
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 11 Apr 2013
  • #31
borgo italia ha scritto:
ciao
grosso modo direi di si (comunque dovresti provare a guardare il db), prova a farti una tabella di prova perche la parte più importante è che funzi come uppaggio.
se con la tabella di prova funziona poi cercare di mettere a posto la messaggistica è più semplice.
forse è da mettere a punto la visualizzazione dei messaggi in quanto ad ogni giro crea il messaggio, bisognerebbe che venisse fuori solo una sintesi.
poi dove c'è, nelle varie stringhe del messaggio, il carattere è sostituiscilo con &egrave;
Clicca per allargare...

Con la tabella funziona, rimane solo la messaggistica. Della è grave poco me ne frega i messaggi rientrano in un pagina già dichiarata quindi la è si vede è XD :hammer:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 11 Apr 2013
  • #32
ciao
ok, l'mprtante è che funzionasse, per la messaggistica ci do un occhio
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 11 Apr 2013
  • #33
Grassie :angel:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 12 Apr 2013
  • #34
ciao
ho spostato una graffa portando fuori i messaggi dal foreach, provalo con il db di prova e sappimi dire
vedi i due commenti con *****
PHP:
<?php
function controllo($id, $dati, $nome_campo){
    $dati = array_map("trim", $dati);
    $dati = array_map('mysql_real_escape_string', $dati);
    $da_uppare = array_combine($id, $dati);//creo l'array per l'uppaggio
    $quanti=count($da_uppare);
    $si_upp=0;//metto a zero i contatori
    $no_upp=0;
    foreach($da_uppare as $chiave => $valore){
        if($valore !=""){//uppi solo se il valore non è vuoto
            $q="UPDATE Films SET $nome_campo = $valore WHERE id = $chiave";
            //mysql_query($q);
            /*qui ci potrebbe stare un al posto della quary diretta
            if(mysql_query($q){
            */
            $uppato[]="aggiornato campo $nome_campo id $chiave a nuovo valore $valore";
            $si_upp++;
            /*
            e il suo else
            }else{
                $non_uppato[]="ERRORE: il valore con id $chiave campo $nome_campo, non aggiornato";
                $no_upp++;
            }
            */
        }else{
            $non_uppato[]="il valore con id $chiave campo $nome_campo è vuoto, non aggiornato";
            $no_upp++;
        }
	}//********prova a mettere qui il fine del foreach
	if($si_upp == 0){//tutti i valori sono vuoti
		echo "tutti i $no_upp valori sono vuoti, i campi $nome_campo non sono stati aggiornati<br />";
		//se vuoi visualizzi quali con un foreach di $non_uppato[], ma secondo me non servirebbe
	}else{
		if($si_upp == $quanti){//tutti i campi sono stati aggiornati
			echo "tutti i $quanti campi $nome_campo sono stati aggiornati<br />";
		}else{//alcuni aggiornati altri no
			echo "$si_upp campi $nome_campo sono stati aggiornati, $no_upp non aggiornati<br />";
			//e qui fai vedere quali si e quali no
			for($k=0;$k < count($uppato);$k++){//mostri gli uppati
				echo $uppato[$k]."<br />";
			}
			for($k=0;$k < count($non_uppato);$k++){//mostri i non uppati
				echo $non_uppato[$k]."<br />";
			}
		}
	}
    //}// *******e toglilo di qui anzi commetalo così è più facile tronare indietro
}//fine function
//dati connessione
if(isset($_POST['mod_film'])){
    controllo($_POST['id'], $_POST['titolo'], "titolo");
    controllo($_POST['id'], $_POST['genere'], "genere");
    controllo($_POST['id'], $_POST['trama'], "descrizione");
    controllo($_POST['id'], $_POST['locandina'], "locandina");
    controllo($_POST['id'], $_POST['stream'], "link");
}
?>
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 13 Apr 2013
  • #35
Ciao Borgo grazie adesso provo e ci giochicchio un pò
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 15 Apr 2013
  • #36
Perdona il ritardo con cui rispondo ma ho avuto poco tempo xD

C'è qualcosa che non va: se tolgo i commenti dall'if che controlla l'esecuzione della query non mi modifica i campi.... esce che i campi sono vuoti:

PHP:
function controllo($id, $dati, $nome_campo){ 
    $dati = array_map("trim", $dati); 
    $dati = array_map('mysql_real_escape_string', $dati); 
    $da_uppare = array_combine($id, $dati);//creo l'array per l'uppaggio 
    $quanti=count($da_uppare); 
    $si_upp=0;//metto a zero i contatori 
    $no_upp=0; 
    foreach($da_uppare as $chiave => $valore){ 
        if($valore !=""){//uppi solo se il valore non è vuoto 
            $q="UPDATE Films SET $nome_campo = $valore WHERE id = $chiave"; 
            mysql_query($q); 
            //qui ci potrebbe stare un al posto della quary diretta 
            if(mysql_query($q)){
            $uppato[]="aggiornato campo $nome_campo id $chiave a nuovo valore $valore"; 
            $si_upp++;  
            //e il suo else 
            }else{ 
                $non_uppato[]="ERRORE: il valore con id $chiave campo $nome_campo, non aggiornato"; 
                $no_upp++; 
            } 
        }else{ 
            $non_uppato[]="il valore con id $chiave campo $nome_campo è vuoto, non aggiornato"; 
            $no_upp++; 
        } 
    }//********prova a mettere qui il fine del foreach 
    if($si_upp == 0){//tutti i valori sono vuoti 
        echo "tutti i $no_upp valori sono vuoti, i campi $nome_campo non sono stati aggiornati<br />"; 
        //se vuoi visualizzi quali con un foreach di $non_uppato[], ma secondo me non servirebbe 
    }else{ 
        if($si_upp == $quanti){//tutti i campi sono stati aggiornati 
            echo "tutti i $quanti campi $nome_campo sono stati aggiornati<br />"; 
        }else{//alcuni aggiornati altri no 
            echo "$si_upp campi $nome_campo sono stati aggiornati, $no_upp non aggiornati<br />"; 
            //e qui fai vedere quali si e quali no 
            for($k=0;$k < count($uppato);$k++){//mostri gli uppati 
                echo $uppato[$k]."<br />"; 
            } 
            for($k=0;$k < count($non_uppato);$k++){//mostri i non uppati 
                echo $non_uppato[$k]."<br />"; 
            } 
        } 
    } 
    //}// *******e toglilo di qui anzi commetalo così è più facile tronare indietro 
}//fine function 


    controllo($_POST['id'], $_POST['titolo'], "titolo"); 
    controllo($_POST['id'], $_POST['genere'], "genere"); 
    controllo($_POST['id'], $_POST['trama'], "descrizione"); 
    controllo($_POST['id'], $_POST['locandina'], "locandina"); 
    controllo($_POST['id'], $_POST['stream'], "link");

Probabile che mi sia sfuggito qualcosa nella logica di questo script :S
 
Ultima modifica: 15 Apr 2013

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 16 Apr 2013
  • #37
Purtroppo ancora nulla ho fatto così

PHP:
	function controllo($id, $dati, $nome_campo){ 
		$dati = array_map("trim", $dati); 
		$dati = array_map('mysql_real_escape_string', $dati); 
		$da_uppare = array_combine($id, $dati);//creo l'array per l'uppaggio 
		$quanti = count($da_uppare); 
		$si_upp = 0;//metto a zero i contatori 
		$no_upp = 0; 
		
		foreach($da_uppare as $chiave => $valore){ 
			if($valore !=""){//uppi solo se il valore non è vuoto 
				$q="UPDATE Films SET $nome_campo = $valore WHERE id = $chiave"; 
				$result = mysql_query($q); 
				if (!$result) {	/*qui ci potrebbe stare un al posto della quary diretta if(mysql_query($q){ */ 
					$non_uppato[]="ERRORE: il valore con id $chiave campo $nome_campo, non aggiornato"; 
					$no_upp++;
				}else{
					$uppato[]="aggiornato campo $nome_campo id $chiave a nuovo valore $valore"; 
					$si_upp++;
				}
			}else{ 
				$non_uppato[]="il valore con id $chiave campo $nome_campo è vuoto, non aggiornato"; 
				$no_upp++; 
			} 
			if($si_upp == 0){//tutti i valori sono vuoti 
				echo "tutti i $no_upp valori sono vuoti, i campi $nome_campo non sono stati aggiornati<br />"; 
				//se vuoi visualizzi quali con un foreach di $non_uppato[], ma secondo me non servirebbe 
			}else{ 
				if($si_upp == $quanti){//tutti i campi sono stati aggiornati 
					echo "tutti i $quanti campi $nome_campo sono stati aggiornati<br />"; 
				}else{//alcuni aggiornati altri no 
					echo "$si_upp campi $nome_campo sono stati aggiornati, $no_upp non aggiornati<br />"; 
					//e qui fai vedere quali si e quali no 
					for($k=0;$k < count($uppato);$k++){//mostri gli uppati 
						echo $uppato[$k]."<br />"; 
					} 
					for($k=0;$k < count($non_uppato);$k++){//mostri i non uppati 
						echo $non_uppato[$k]."<br />"; 
					} 
				} 
			} 
		} 
	}

    controllo($_POST['id'], $_POST['titolo'], "titolo"); 
    controllo($_POST['id'], $_POST['genere'], "genere"); 
    controllo($_POST['id'], $_POST['trama'], "descrizione"); 
    controllo($_POST['id'], $_POST['locandina'], "locandina"); 
    controllo($_POST['id'], $_POST['stream'], "link");

Ma non lancia proprio le query eppure con l'esempio funzionava
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 16 Apr 2013
  • #38
Per il momento ho ovviato così

PHP:
if(isset($_POST['mod_film'])){

	$titolo = array_map('mysql_real_escape_string', $_POST['titolo']);
	$genere = array_map('mysql_real_escape_string', $_POST['genere']);
	$trama = array_map('mysql_real_escape_string', $_POST['trama']);
	$locandina = array_map('mysql_real_escape_string', $_POST['locandina']);
	$stream = array_map('mysql_real_escape_string', $_POST['stream']);


    foreach ($_POST['id'] as $numero) { 
        $numero=(int)$numero;//forzo ad intero 
        if (!is_int($numero) || $numero <= 0) {//e se è un id DEVE essere maggiore di 0 
			echo "<font color='red'>Errore</font> - L'id \"" . $_POST['id'] . "\" non è valido: deve essere un numero intero non negativo e diverso da 0."; 
			echo "<meta http-equiv='Refresh' content='8; URL= itf.php'>"; 
			exit;
        } 
    }
	
	function controllo($dati, $nome_campo){ 
		$dati=array_map("trim", $dati); 
		foreach ($dati as $val) { 
			if ($val === ""){ 
				$error.= "<font color='red'>Errore</font> - Non è stato possibile aggiornare i campi. \"$nome_campo\" risulta essere vuoto. Compilarlo e riprovare.<br />"; 
				if ($error !=""){ 
					echo $error;
					echo "<br /><button type=\"button\" id=\"btn\" onclick=\"top.location.href = 'itf.php'\" ><img src=\"../../img/video.png\" align=\"absmiddle\" alt=\"Elenco Film\" /> Elenco Film</button>";
					exit;					
				} 
			} 
		} 
	} 
    echo controllo($titolo, "Titolo");  
    echo controllo($genere, "Genere"); 
    echo controllo($trama, "Trama"); 
    echo controllo($stream, "Link");  
	
	function uppa($il_post,$il_genere,$il_campo){
		$a = array_combine($il_post, $il_genere); 
		foreach ($a as $key => $value) { 
			$q = "UPDATE Films SET $il_campo='$value' WHERE id='$key'"; 
			$result = mysql_query($q); 
			if (!$result) { 
				$errore.="<font color='red'>Errore</font> - non è stato possibile eseguire la query \"$q\"<br />"; 
				$errore.="<p><font color='red'>MySQL Error:</font> " . mysql_error() . "</p>\n"; 
				return $errore;
			}else{ 
				echo "<font color='green'>Successo</font> - Il campo \"$il_campo\" che corrisponde all'id <font color='blue'>$key</font> è stato aggiornato correttamente.<br />"; 
			}
		}
	}
	
	echo uppa($_POST['id'],$titolo,"titolo"); 
	echo uppa($_POST['id'],$genere,"genere"); 
	echo uppa($_POST['id'],$trama,"descrizione"); 
	echo uppa($_POST['id'],$locandina,"locandina"); 
	echo uppa($_POST['id'],$stream,"link");
	
	echo "<br /><button type=\"button\" id=\"btn\" onclick=\"top.location.href = 'itf.php'\" ><img src=\"../../img/video.png\" align=\"absmiddle\" alt=\"Elenco Film\" /> Elenco Film</button>";
}

Il codice da te postato prima non riesco proprio a farlo andare, mi dice sempre che i campi sono vuoti :S
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 19 Apr 2013
  • #39
ciao
sono stato via per un po' di giorni,
tra sabato e domenica ci do un occhio
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 19 Apr 2013
  • #40
Grazie borgo, come al solito tranquillissimo fallo se vuoi quando vuoi e se ti va xD:mexican:
 
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
Devi accedere o registrarti per poter rispondere.

Discussioni simili

K
[Visual Basic] Stampa e modifica record non funziona più
  • kogaijy
  • 21 Set 2017
  • Visual Basic
Risposte
0
Visite
2K
Visual Basic 21 Set 2017
kogaijy
K
R
Modifica codice per l'upload di più file
  • rino2002
  • 16 Mar 2020
  • PHP
Risposte
1
Visite
1K
PHP 30 Mar 2020
Flaviors200
[PHP] modifica simultanea di più campi nel db
  • Trapano
  • 22 Feb 2017
  • PHP
Risposte
1
Visite
1K
PHP 23 Feb 2017
borgo italia
A
Script che restituisce il file con data di modifica più recente di una directory
  • atonyc
  • 6 Nov 2010
  • PHP
Risposte
15
Visite
6K
PHP 14 Mar 2011
gnappoman
G
D
Jquery - modifica elemenento onlick
  • Dantevil
  • 1 Apr 2023
  • jQuery
Risposte
1
Visite
2K
jQuery 2 Apr 2023
WmbertSea
[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
  • Bloccata
Modifica codice php personalizzato
  • JeiMax
  • 11 Set 2022
  • PHP
Risposte
2
Visite
1K
PHP 12 Set 2022
Max 1
P
Pagina modifica record che non funziona
  • precogcris
  • 28 Set 2021
  • PHP
Risposte
0
Visite
1K
PHP 28 Set 2021
precogcris
P
L
  • Bloccata
Modifica file upload in ASP
  • LucaVet
  • 29 Lug 2021
  • Classic ASP
Risposte
2
Visite
2K
Classic ASP 28 Ago 2021
Paolo69
P
modifica colore A Hover link website .
  • ppobi
  • 4 Mar 2021
  • WordPress
Risposte
2
Visite
2K
WordPress 4 Mar 2021
ppobi
P
P
Modifica con PHP di un node in una sitemap xml
  • Peterrey76
  • 27 Lug 2020
  • PHP
Risposte
0
Visite
1K
PHP 27 Lug 2020
Peterrey76
P
C
Software modifica sitoweb in tempo reale
  • Cpu03
  • 30 Mag 2020
  • WordPress
Risposte
12
Visite
4K
WordPress 30 Mag 2020
Alex_70
G
Modifica immagine di sfondo attraverso un bottone
  • Gianluca66
  • 22 Mag 2020
  • PHP
Risposte
18
Visite
3K
PHP 23 Mag 2020
Max 1
L
modifica dati.
  • luigi777
  • 21 Apr 2020
  • PHP
Risposte
1
Visite
2K
PHP 22 Apr 2020
macus_adi
G
modifica corretta funzione da eregi() a preg_match()
  • giuliox13
  • 6 Apr 2020
  • PHP
Risposte
3
Visite
2K
PHP 7 Apr 2020
giuliox13
G
G
Modifica testo
  • Giackko86
  • 6 Feb 2020
  • Photoshop
Risposte
3
Visite
2K
Photoshop 25 Feb 2020
InformaticS
I
Excel: popolare una cella con la data di modifica della riga a cui appartiene
  • felino
  • 5 Feb 2020
  • Windows e Software
Risposte
3
Visite
5K
Windows e Software 5 Feb 2020
felino
[Wordpress] Modifica main color del template
  • felino
  • 10 Gen 2020
  • WordPress
Risposte
8
Visite
3K
WordPress 24 Gen 2020
felino
M
[PHP] Modifica account
  • Marcolino92
  • 28 Giu 2019
  • PHP
Risposte
3
Visite
2K
PHP 28 Giu 2019
mr.x
M
S
[OFFRO] Creazione di programmi per la modifica automatizzata di testi
  • Superdarwin
  • 16 Mag 2019
  • Offerte e Richieste di Lavoro e/o Collaborazione
Risposte
0
Visite
1K
Offerte e Richieste di Lavoro e/o Collaborazione 16 Mag 2019
Superdarwin
S
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?