Aumentare due record di una tabella

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Ciao a tutti e buon anno!! :D
Potete aiutarmi a capire per quale motivo lo script non funziona:

PHP:
<?php 
//connessione al database 
include('../connect.php'); 

//questa è la data di oggi 
$data = date("Y-m-d"); 

//selezioniamo i giovani 
$query = "SELECT * FROM GIOC_giovani UNION SELECT * FROM GIOC_giovani_port"; 
$result = mysql_query($query) or die (mysql_error()); 
while($row=mysql_fetch_array($result)) { 
$numero = $row['numero']; 
$nome = $row['nome']; 
$cognome = $row['cognome']; 
$ruolo = $row['ruolo']; 
$eta = $row['età']; 
$compleanno = $row['compleanno']; 
$allenamenti = $row['allenamenti']; 
$allenamenti_fatti = $row['allenamenti_fatti']; 
$squadra = $row['squadra']; 
$punti = $row['punti']; 
$costo = $row['costo']; 
$tiro = $row['tiro']; 
$velocita = $row['velocità']; 
$tecnica = $row['tecnica']; 
$scivolata = $row['scivolata']; 
$tuffo = $row['tuffo']; 
$respinta = $row['respinta']; 
$presa = $row['presa']; 
$reattivita = $row['reattività']; 
$resistenza = $row['resistenza']; 
$forma_fisica = $row['forma_fisica']; 
$morale = $row['morale']; 
$ammonizioni = $row['ammonizioni']; 
$presenze = $row['presenze']; 
$gol = $row['gol']; 
$parate = $row['parate']; 
$foto = $row['foto']; 
} 

//selezioniamo gli adulti 
$query = "SELECT * FROM GIOC_adulti UNION SELECT * FROM GIOC_adulti_port"; 
$result = mysql_query($query) or die (mysql_error()); 
while($row=mysql_fetch_array($result)) { 
$compleanno = $row['compleanno']; 
$eta = $row['età']; 
} 

if($data == $compleanno) { 
//aumento di 20 giorni il compleanno dei giovani 
$aumento_giorni = "UPDATE GIOC_giovani SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'"; 
$result = mysql_query($aumento_giorni) or die (mysql_error()); 

//aumento di un anno il campo età dei giovani 
$aumento = "UPDATE GIOC_giovani SET età = età+1 WHERE compleanno = '$data'"; 
$result = mysql_query($aumento) or die (mysql_error()); 

//aumento di 20 giorni il compleanno dei giovani portieri 
$aumento_giorni = "UPDATE GIOC_giovani_port SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'"; 
$result = mysql_query($aumento_giorni) or die (mysql_error()); 

//aumento di un anno il campo età dei giovani portieri 
$aumento = "UPDATE GIOC_giovani_port SET età = età+1 WHERE compleanno = '$data'"; 
$result = mysql_query($aumento) or die (mysql_error()); 

//aumento di 20 giorni il compleanno degli adulti 
$aumento_giorni = "UPDATE GIOC_adulti SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'"; 
$result = mysql_query($aumento_giorni) or die (mysql_error()); 

//aumento di un anno il campo età degli adulti 
$aumento = "UPDATE GIOC_adulti SET età = età+1 WHERE compleanno = '$data'"; 
$result = mysql_query($aumento) or die (mysql_error()); 

//aumento di 20 giorni il compleanno degli adulti portieri 
$aumento_giorni = "UPDATE GIOC_adulti_port SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'"; 
$result = mysql_query($aumento_giorni) or die (mysql_error()); 

//aumento di un anno il campo età degli adulti portieri 
$aumento = "UPDATE GIOC_adulti_port SET età = età+1 WHERE compleanno = '$data'"; 
$result = mysql_query($aumento) or die (mysql_error()); 
} 

//se un giocatore compie 19 anni 
if($ruolo == 'Pt' && eta == '19') { 

//lo passo nella tabella dei portieri adulti 

$query_insert = mysql_query("INSERT INTO GIOC_adulti_port WHERE $compleanno == $data 
(numero,nome,cognome,ruolo,età,compleanno,allenamenti,allenamenti_fatti,squadra,punti,costo,tuffo,respinta,presa,reattività,resistenza,forma_fisica,morale,ammonizioni,presenze,parate,foto) 

VALUES 

('$numero', '$nome', '$cognome', '$ruolo', '$eta', '$compleanno', '$allenamenti', '$allenamenti_fatti', '$squadra', '$punti', '$costo', '$tuffo', '$respinta', '$presa', '$reattivita', '$resistenza', '$forma_fisica', '$morale', '$ammonizioni', '$presenze', '$gol', '$foto')") or die (mysql_error()); 

}elseif(eta == '19'){ 

//lo passo nella tabella degli adulti 

$query_insert = mysql_query("INSERT INTO GIOC_adulti WHERE $compleanno == $data 
(numero,nome,cognome,ruolo,età,compleanno,allenamenti,allenamenti_fatti,squadra,punti,costo,tiro,velocità,tecnica,scivolata,resistenza,forma_fisica,morale,ammonizioni,presenze,gol,foto) 

VALUES 

('$numero', '$nome', '$cognome', '$ruolo', '$eta', '$compleanno', '$allenamenti', '$allenamenti_fatti', '$squadra', '$punti', '$costo', '$tiro', '$velocita', '$tecnica', '$scivolta', '$resistenza', '$forma_fisica', '$morale', '$ammonizioni', '$presenze', '$gol', '$foto')") or die (mysql_error()); 
} 

// lo cancello dalla tabella dei giovani 
$query = mysql_query("DELETE FROM GIOC_giovani WHERE compleanno = '$data' AND età='19'"); 
$query = mysql_query("DELETE FROM GIOC_giovani_port WHERE compleanno = '$data' AND età='19'"); 
?>
Praticamente se la data di oggi è uguale alla data del compleanno lo script deve aumentare di 1 l'età e di 20 giorni il campo "compleanno" sulla tabella del database,ma questo non succede!
Potete aiutarmi?
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Non sono espertissimo però ad occhio direi
PHP:
$compleanno = $row['compleanno']; 
$eta = $row['età'];
l'hai estratto come array quindi credo che al posto di eta +1 e di compleanno +
dovresti mettere $eta e $compleanno
PHP:
if($data == $compleanno) { 
//aumento di 20 giorni il compleanno dei giovani 
$aumento_giorni = "UPDATE GIOC_giovani SET compleanno = [B]$compleanno[/B] + interval 20 day WHERE compleanno = '$data'"; 
$result = mysql_query($aumento_giorni) or die (mysql_error()); //aumento di un anno il campo età dei giovani 
$aumento = "UPDATE GIOC_giovani SET età = [B]$eta[/B]+1 WHERE compleanno = '$data'"; 
$result = mysql_query($aumento) or die (mysql_error());
direi che ce l'ho azzeccata :)
 

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Ciao e buon anno a tutti!!

Dovevo prima aumentare l'età e poi aumentare i giorni,altrimenti quando andavo ad aumentare l'età con la clausola "WHERE compleanno = '$data'" non coincideva mai poichè già era stata aumentata prima!:)

Però c'è un altro problema con lo stesso script:

PHP:
<?php
//connessione al database
include('../connect.php');

//questa è la data di oggi
$data = date("Y-m-d");

//selezioniamo i giovani e tutti i loro dati
$query = "SELECT * FROM GIOC_giovani_port";
$result = mysql_query($query) or die (mysql_error());
while($row=mysql_fetch_array($result)) {
$numero = $row['numero'];
$nome = $row['nome'];
$cognome = $row['cognome'];
$ruolo = $row['ruolo'];
$eta = $row['età'];
$compleanno = $row['compleanno'];
$allenamenti = $row['allenamenti'];
$allenamenti_fatti = $row['allenamenti_fatti'];
$squadra = $row['squadra'];
$punti = $row['punti'];
$costo = $row['costo'];
$tiro = $row['tiro'];
$velocita = $row['velocità'];
$tecnica = $row['tecnica'];
$scivolata = $row['scivolata'];
$tuffo = $row['tuffo'];
$respinta = $row['respinta'];
$presa = $row['presa'];
$reattivita = $row['reattività'];
$resistenza = $row['resistenza'];
$forma_fisica = $row['forma_fisica'];
$morale = $row['morale'];
$ammonizioni = $row['ammonizioni'];
$presenze = $row['presenze'];
$gol = $row['gol'];
$parate = $row['parate'];
$foto = $row['foto'];
}

//selezioniamo l'età e il compleanno degli adulti
$query = "SELECT * FROM GIOC_adulti UNION SELECT * FROM GIOC_adulti_port";
$result = mysql_query($query) or die (mysql_error());
while($row=mysql_fetch_array($result)) {
$compleanno = $row['compleanno'];
$eta = $row['età'];
}



//aumento di un anno il campo età dei giocatori che compiono gli anni oggi

$aumento = "UPDATE GIOC_giovani SET età = età+1 WHERE compleanno = '$data'";
$result = mysql_query($aumento) or die (mysql_error());

$aumento = "UPDATE GIOC_giovani_port SET età = età+1 WHERE compleanno = '$data'";
$result = mysql_query($aumento) or die (mysql_error());

$aumento = "UPDATE GIOC_adulti SET età = età+1 WHERE compleanno = '$data'";
$result = mysql_query($aumento) or die (mysql_error());

$aumento = "UPDATE GIOC_adulti_port SET età = età+1 WHERE compleanno = '$data'";
$result = mysql_query($aumento) or die (mysql_error());




//un giocatore di 19 anni lo passo nella tabella dei portieri adulti

if($compleanno == $data && $ruolo == 'Pt' && $eta == '19') {
$query_insert = mysql_query("INSERT INTO GIOC_adulti_port
(numero,nome,cognome,ruolo,età,compleanno,allenamenti,allenamenti_fatti,squadra,punti,costo,tuffo,respinta,presa,reattività,resistenza,forma_fisica,morale,ammonizioni,presenze,parate,foto)

VALUES

('$numero', '$nome', '$cognome', '$ruolo', '$eta', '$compleanno', '$allenamenti', '$allenamenti_fatti', '$squadra', '$punti', '$costo', '$tuffo', '$respinta', '$presa', '$reattivita', '$resistenza', '$forma_fisica', '$morale', '$ammonizioni', '$presenze', '$gol', '$foto')") or die (mysql_error());

}elseif($compleanno == $data && $eta == '19'){

//lo passo nella tabella degli adulti

$query_insert = mysql_query("INSERT INTO GIOC_adulti
(numero,nome,cognome,ruolo,età,compleanno,allenamenti,allenamenti_fatti,squadra,punti,costo,tiro,velocità,tecnica,scivolata,resistenza,forma_fisica,morale,ammonizioni,presenze,gol,foto)

VALUES

('$numero', '$nome', '$cognome', '$ruolo', '$eta', '$compleanno', '$allenamenti', '$allenamenti_fatti', '$squadra', '$punti', '$costo', '$tiro', '$velocita', '$tecnica', '$scivolta', '$resistenza', '$forma_fisica', '$morale', '$ammonizioni', '$presenze', '$gol', '$foto')") or die (mysql_error());
}

// lo cancello dalla tabella dei giovani
$query = mysql_query("DELETE FROM GIOC_giovani WHERE compleanno = '$data' AND età='19'");
$query = mysql_query("DELETE FROM GIOC_giovani_port WHERE compleanno = '$data' AND età='19'");

//cancelliamo gli adulti che compiono 40 anni
if ($eta == '40') {
$query = mysql_query("DELETE FROM GIOC_adulti WHERE compleanno = '$data' AND età='40'");
$query = mysql_query("DELETE FROM GIOC_adulti_port WHERE compleanno = '$data' AND età='40'");
}

//aumento di 20 giorni il compleanno dei giocatori che oggi compiono gli anni

$aumento_giorni = "UPDATE GIOC_giovani SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'";
$result = mysql_query($aumento_giorni) or die (mysql_error());

$aumento_giorni = "UPDATE GIOC_giovani_port SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'";
$result = mysql_query($aumento_giorni) or die (mysql_error());

$aumento_giorni = "UPDATE GIOC_adulti SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'";
$result = mysql_query($aumento_giorni) or die (mysql_error());

$aumento_giorni = "UPDATE GIOC_adulti_port SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'";
$result = mysql_query($aumento_giorni) or die (mysql_error());
?>

La parte quando un giocatore fa 19 anni e deve passare nell'altra tabella...potete aiutarmi?

Per il momento viene solo cancellato dalla tabella giovani quando compie 19 anni,ma non viene passato in quella degli adulti! :(
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
allora leon provo a darti una mano
inatanto ho notato un incongruenza
PHP:
if($compleanno == $data && $ruolo == 'Pt' && $eta == '19') {
$query_insert = mysql_query("INSERT INTO GIOC_adulti_port
(numero,nome,cognome,ruolo,età,compleanno,allenamenti,allenamenti_fatti,squadra,punti,costo,tuffo,respinta,presa,reattività,resistenza,forma_fisica,morale,ammonizioni,presenze,parate,foto)

VALUES

('$numero', '$nome', '$cognome', '$ruolo', '$eta', '$compleanno', '$allenamenti', '$allenamenti_fatti', '$squadra', '$punti', '$costo', '$tuffo', '$respinta', '$presa', '$reattivita', '$resistenza', '$forma_fisica', '$morale', '$ammonizioni', '$presenze', '$gol', '$foto')") or die (mysql_error());

}elseif($compleanno == $data && $eta == '19'){

//lo passo nella tabella degli adulti

$query_insert = mysql_query("INSERT INTO GIOC_adulti
(numero,nome,cognome,ruolo,età,compleanno,allenamenti,allenamenti_fatti,squadra,punti,costo,tiro,velocità,tecnica,scivolata,resistenza,forma_fisica,morale,ammonizioni,presenze,gol,foto)

VALUES

('$numero', '$nome', '$cognome', '$ruolo', '$eta', '$compleanno', '$allenamenti', '$allenamenti_fatti', '$squadra', '$punti', '$costo', '$tiro', '$velocita', '$tecnica', '$scivolta', '$resistenza', '$forma_fisica', '$morale', '$ammonizioni', '$presenze', '$gol', '$foto')") or die (mysql_error());
}

nell seconda tabella al campo gol corrisponde la variabile $gol mentre nella prima al campo parate la variabile $gol, non dovrebbe c'entrare niente ma l'ho notato e te lo dico

poi non credo sia corretto usare l'else if perchè "credo a rigor di logica che verificata la condizione del primo if non credo che passi alla seconda query

comunque al riguardo del tuo problema credo sia semplicemente il fatto che

PHP:
$aumento_giorni = "UPDATE GIOC_giovani SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'";
$result = mysql_query($aumento_giorni) or die (mysql_error());

$aumento_giorni = "UPDATE GIOC_giovani_port SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'";

andrebbe messo prima dell'insert sennò non ti coincidono le date e quindi non si verifica la condizione

magari ho detot na boiata ma ho letto di passaggio e magari ti dà qualche spunto, poi qua c'è gente sicuramente molto + qualificata di me epr consigliarti, nel mentre spero ti accontenti di qualche riflessione :rolleyes:

Buon Anno
 

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Innanzitutto grazie per la segnalazione! :)
Poi grazie per la risposta,ho provato come hai detto tu am non va!Ci ragiono ancora un pò da solo poi magari non trovo una soluzione posto il problema! ;)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se non ho capito male tu vuoi
1. se oggi è il compleanno aumentare l'età di uno
2. se il giocatore supera i 19 anni passarlo dalla tabella giovani alla tabella anziani
3. se un giocatore supera i 40 anni eliminarlo (poverino)
giusto?
se è così, almeno mi sembra, non è un problema di script ma di logica.
intanto ha che ti serve la prima selezione?
(non sto a riscrivere tutto il codice)

PHP:
<?php
$query = "SELECT * FROM GIOC_giovani UNION SELECT * FROM GIOC_giovani_port"; 
$result = mysql_query($query) or die (mysql_error());
while($row=mysql_fetch_array($result)) { 
	$numero = $row['numero'];
	//tutti gli altri dati
	$compleanno = $row['compleanno'];  
	$eta = $row['età'];
}
?>
nei vari dati non trovi i dati dei vari giocatori ma solo i dati dell'ultimo record estratto (es. in $eta)
quindi i vari if che usi poi per fare gli update i delete e gli insert devono essere all'interno del while

poi cosa hai nel campo 'compleanno'?
la data di nascita o solo il mese e giorno?
se hai la data completa es
2001-01-02 (2 gennaio 2001) non troverai mai l'uguaglianza con
$data = date("Y-m-d"); che ti da la data odierna 2011-01-02
se in 'compleanno' hai messo solo il mese e il giorno il discorso è analogo con date() come sopra.
per avere l'uguagiamnza devi mettere
$data=date("m-d");
ricordati poi se un giocatore per caso è nato in un anno bisestile il 29 febbraio negli anni non bisetili non troverai mai l'uguaglianza e ti sballa tutto

poi guardo un po' meglio e ti so dira dell'altro

p.s.
secondo me è meglio evitare nei nomi di campi e di variabili caratteri accentati
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dimenticavo una cosa importante
lo script che hai fatto funziona se lo LANCI TUTTI I GIORNI, se per un caso lo scripi non viene lanciato TUTTI i giorni ti può capitare che
esempio:
giocatore nato il 1 gennaio e tu hai passato capodanno in grosse bevute e quindi hai un mal di testa terribile e ti dimentiche (e nessun altro lo fa)
di lanciarlo, tutti quelli che sono nati il primo "ringiovaniscono" di un anno in quanto anche se lo lanci il due
l'uguagianza (leggendo date() la data odierna) non verrà mai soddisfatta sino all'anno prossimo
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco un'idea, però come detto dipende da come hai inserito la data del compleanno

PHP:
<?php 
//connessione al database 
include('../connect.php'); 

//questa è la data di oggi 
$da_cor = date("m-d");//mese e giorno corrente
$an_cor = date("Y");//anno corrente
//selezioniamo i giovani e tutti i loro dati 
$query = "SELECT * FROM GIOC_giovani_port"; 
$result = mysql_query($query) or die (mysql_error()); 
while($row=mysql_fetch_array($result)) { 
	//estrai tutti i dati che qui tralascio
	//e la data del compleanno penso che sia scritta anno-mese-giorno es 1993-11-27 cioè data di nascita
	$compleanno = $row['compleanno'];
	//esplodo la data (sempre che sia come credo)
	$exp=explode("-", $compleanno);
	//in $exp[0] -> anno nascita
	//in $exp[1] -> mese nascita
	//in $exp[2] -> giorno nascita
	//riunisco mese e giorno e ottengo la data del compleanno
	$mm_gg_compleanno=$exp[1]."-".$exp[2];
	//verifico se è complenanno o gia passato
	if($mm_gg_compleanno <= $da_cor){
		//se uguale o passata, calcolo quanti anni ha il giocatore
		$eta_ora=(int)$da_cor-(int)$exp[0];
		//faccio le verifiche
		if($eta_ora < 19){//meno di 19 anni
			//uppo solamente l'età del giocatore usando $eta_ora e NON il +1 nella query
		}elseif($eta_ora >= 19 && $eta_ora < 40){//tra 19 e 40 anni
			//inserisco nella tabella anziani con l'età data da $eta_ora e gli altri dati sopra
			//e lo cancello dalla tabella giovani
		}
	}
}//fine while
// analogo lavoro per eliminare chi ha superato i 40 anni dalla tabella anziani
?>
in questo modo non devi preuccuparti ne dei bisestili ne di lanciare lo script tutti i giorni
 

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Ciao borgo grazie per la risposta...il campo compleanno è strutturato con giorno mese e anno e questo ho visto che funziona vale a dire la congruenza tra data e compleanno infatti ho provato a vedere quando il compleanno è uguale all'età mi aumenta il campo "età"....0:)

Poi lo script parte tutti i giorni perchè uso un cronjob con altervista e quindi a mezzanotte lo script parte e funziona,l'unico problema che ho come ti dicevo è quello dispostare un giocatore quando fa 19 anni dalla tabella deui giovani a quella degli adulti dato che non riesco a far si che questo avvenga!:)

Il problema quindi a me resta quello che tu hai segnato come punto 2 nel tuo primo messaggio! :\
 

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Guarda adesso sto utilizzando solo i GIOC_giovani_port in modo che quando fuznioni lo implemento anche ai GIOC_giovani
PHP:
<?php
//connessione al database
include('../connect.php');

//questa è la data di oggi
$data = date("Y-m-d");

//selezioniamo i giovani e tutti i loro dati
$query = "SELECT * FROM GIOC_giovani_port";
$result = mysql_query($query) or die (mysql_error());
while($row=mysql_fetch_array($result)) {
$numero = $row['numero'];
$nome = $row['nome'];
$cognome = $row['cognome'];
$ruolo = $row['ruolo'];
$eta = $row['età'];
$compleanno = $row['compleanno'];
$allenamenti = $row['allenamenti'];
$allenamenti_fatti = $row['allenamenti_fatti'];
$squadra = $row['squadra'];
$punti = $row['punti'];
$costo = $row['costo'];
$tuffo = $row['tuffo'];
$respinta = $row['respinta'];
$presa = $row['presa'];
$reattivita = $row['reattività'];
$resistenza = $row['resistenza'];
$forma_fisica = $row['forma_fisica'];
$morale = $row['morale'];
$ammonizioni = $row['ammonizioni'];
$presenze = $row['presenze'];
$parate = $row['parate'];
$foto = $row['foto'];
}

//selezioniamo l'età e il compleanno degli adulti
$query = "SELECT * FROM GIOC_adulti UNION SELECT * FROM GIOC_adulti_port";
$result = mysql_query($query) or die (mysql_error());
while($row=mysql_fetch_array($result)) {
$compleanno = $row['compleanno'];
$eta = $row['età'];
}

//aumento di un anno il campo età dei giocatori che compiono gli anni oggi

$aumento = "UPDATE GIOC_giovani SET età = età+1 WHERE compleanno = '$data'";
$result = mysql_query($aumento) or die (mysql_error());

$aumento = "UPDATE GIOC_giovani_port SET età = età+1 WHERE compleanno = '$data'";
$result = mysql_query($aumento) or die (mysql_error());

$aumento = "UPDATE GIOC_adulti SET età = età+1 WHERE compleanno = '$data'";
$result = mysql_query($aumento) or die (mysql_error());

$aumento = "UPDATE GIOC_adulti_port SET età = età+1 WHERE compleanno = '$data'";
$result = mysql_query($aumento) or die (mysql_error());






//un giocatore di 19 anni lo passo nella tabella dei portieri adulti

if($compleanno == '$data' && $eta == '19' && $ruolo == 'Pt') {
$query_insert = mysql_query("INSERT INTO GIOC_adulti_port WHERE $compleanno == '$data' AND $eta == '19'
(numero,nome,cognome,ruolo,età,compleanno,allenamenti,allenamenti_fatti,squadra,punti,costo,tuffo,respinta,presa,reattività,resistenza,forma_fisica,morale,ammonizioni,presenze,parate,foto)

VALUES

('$numero', '$nome', '$cognome', '$ruolo', '$eta', '$compleanno', '$allenamenti', '$allenamenti_fatti', '$squadra', '$punti', '$costo', '$tuffo', '$respinta', '$presa', '$reattivita', '$resistenza', '$forma_fisica', '$morale', '$ammonizioni', '$presenze', '$parate', '$foto')") or die (mysql_error());

}



























// lo cancello dalla tabella dei giovani

$query = mysql_query("DELETE FROM GIOC_giovani WHERE compleanno = '$data' AND età='19'");
$query = mysql_query("DELETE FROM GIOC_giovani_port WHERE compleanno = '$data' AND età='19'");

//cancelliamo gli adulti che compiono 40 anni

$query = mysql_query("DELETE FROM GIOC_adulti WHERE compleanno = '$data' AND età='40'");
$query = mysql_query("DELETE FROM GIOC_adulti_port WHERE compleanno = '$data' AND età='40'");

//aumento di 20 giorni il compleanno dei giocatori che oggi compiono gli anni

$aumento_giorni = "UPDATE GIOC_giovani SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'";
$result = mysql_query($aumento_giorni) or die (mysql_error());

$aumento_giorni = "UPDATE GIOC_giovani_port SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'";
$result = mysql_query($aumento_giorni) or die (mysql_error());

$aumento_giorni = "UPDATE GIOC_adulti SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'";
$result = mysql_query($aumento_giorni) or die (mysql_error());

$aumento_giorni = "UPDATE GIOC_adulti_port SET compleanno = compleanno + interval 20 day WHERE compleanno = '$data'";
$result = mysql_query($aumento_giorni) or die (mysql_error());
?>

Quello che devo riuscire a far funzionare è questa parte qui:
PHP:
//un giocatore di 19 anni lo passo nella tabella dei portieri adulti

if($compleanno == '$data' && $eta == '19' && $ruolo == 'Pt') {
$query_insert = mysql_query("INSERT INTO GIOC_adulti_port WHERE $compleanno == '$data' AND $eta == '19'
(numero,nome,cognome,ruolo,età,compleanno,allenamenti,allenamenti_fatti,squadra,punti,costo,tuffo,respinta,presa,reattività,resistenza,forma_fisica,morale,ammonizioni,presenze,parate,foto)

VALUES

('$numero', '$nome', '$cognome', '$ruolo', '$eta', '$compleanno', '$allenamenti', '$allenamenti_fatti', '$squadra', '$punti', '$costo', '$tuffo', '$respinta', '$presa', '$reattivita', '$resistenza', '$forma_fisica', '$morale', '$ammonizioni', '$presenze', '$parate', '$foto')") or die (mysql_error());

}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa ma non capisco (a parte risolto il problema del lancio dello script)
a che ti serve incrementare la data del compleanno? poi dallo script che hai postato, come detto, tu prendi solo i valori dell'ultimo recorcord
quindi come fai a trasferire i dati di pinco giovane in pinco adulto se questo non è nell'ultimo record?
poi cosa intendi con:
quando il compleanno è uguale all'età mi aumenta il campo "età"

l'età "dovrebbe" essere un numero intero, il compleanno, da quello che mi dici, dovrebbe essere del tipo
1999-09-21 (aa-mm-gg) quindi come può un numero intero essere uguale ad una data?
non capisco perche tu debba complicarti la vita (tua e dello script)?
poi, ancora non capisco, tu dici che funzia
WHERE compleanno = '$data'
ma da quello che vedo
$data è la data odierna (se lo fai oggi es. 2011-01-02 fai un echo o un var_dump di data("Y-m-d")) come fa ad essere uguale al valore del campo 'compleanno'?
quindi cosa metti nel campo 'compleanno'?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Credo che vi stiate tutti quanti un po' confondendo. In questi casi sarebbe bene ripartire da zero. Vediamo di rivedere qual è il problema.

Tu hai una tabella con i giocatori giovani e i giocatori anziani. Uno script, lanciato ogni giorno, cicla tutta la tabella dei giocatori giovani. Se il campo compleanno è uguale alla data odierna, allora incrementi il campo eta di uno. A questo punto, se il campo eta è uguale a 19 sposti il giocatore nella tabella dei giocatori anziani, giusto?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
deus ex machina
ciao alex
ancora non sono riuscito a sapere cosa esattamente contiene il campo 'compleanno'è da quello che poi "discendonono" tutte le altre considerazioni
 

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Il campo "compleanno" contiene una data che aumenta ogni 20 giorni...per cui ogni giocatore aumenta la propria età ogni 20 giorni.
Ad esempio:

Pinco Pallino Compleanno: 02-01-2011 Età: 17 anni
Se faccio partire lo script il risultato sarà questo:
Pinco Pallino Compleanno: 22-01-2011 Età: 18 anni

Se non hai capito ancora te lo rispiego meglio :)

Alessandro il problema è proprio quello che hai scritto tu!
 
Ultima modifica:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Hai strutturato piuttosto male l'applicazione. Invece di creare un campo contenente il prossimo compleanno e uno contenente l'età, io avrei creato un unico campo contenente la data di nascita, e poi avrei ricavato l'età a partire da quello. In ogni caso, potresti fare così:
PHP:
<?php
// si connette al database
require 'connect.php';

// contiene la data attuale (dd-mm-yyyy)
$date = date('d-m-Y');

// contiene le tabelle da aggiornare
$tables = array('GIOC_giovani', 'GIOC_giovani_port', 'GIOC_adulti', 'GIOC_adulti_port');

// viene eseguito per ogni tabella
foreach($tables as $table)
{
	// contiene la query SQL della tabella attuale
	$sql = "UPDATE {$table} SET età = età + 1, compleanno = compleanno + interval 20 day WHERE compleanno = '{$date}'";
	
	// aggiorna la tabella o interrompe visualizzando l'errore
	mysql_query($sql) or die(mysql_error());
}

// recupera tutti i giocatori giovani o interrompe visualizzando l'errore
$query = mysql_query('SELECT * FROM GIOC_giovani WHERE età = \'19\' UNION SELECT * FROM GIOC_giovani_port WHERE età = \'19\'') or die(mysql_error());

// viene eseguito per ogni giocatore
while($player = mysql_fetch_assoc($query))
{
	// seleziona la tabella in cui inserirlo
	$new_table = ($player['ruolo'] == 'Pt' ? 'GIOC_adulti_port' : 'GIOC_adulti');
	
	// ottiene i campi del record
	$keys = array_keys($player);
	
	// ottiene i valori del record
	$values = "'" . implode(", '", $player) . "'";
	
	// contiene la query SQL del giocatore attuale
	$sql = "INSERT INTO {$new_table} ({$keys}) VALUES ({$values})";
	
	// aggiunge il giocatore o interrompe visualizzando l'errore
	mysql_query($sql) or die(mysql_error());
}

// contiene le tabella dei giovani e quelle degli adulti
$young_tables = array('GIOC_giovani', 'GIOC_giovani_port');
$adult_tables = array('GIOC_adulti', 'GIOC_adulti_port');

// viene eseguito per ogni tabella dei giovani
foreach($young_tables as $table)
{
	// contiene la query SQL della tabella attuale
	$sql = "DELETE FROM {$table} WHERE età = '19'";
	
	// cancella i giocatori o interrompe visualizzando l'errore
	mysql_query($sql) or die(mysql_error());
}

// viene eseguito per ogni tabella degli adulti
foreach($adult_tables as $table)
{
	// contiene la query SQL della tabella attuale
	$sql = "DELETE FROM {$table} WHERE età = '40'";
	
	// cancella i giocatori o interrompe visualizzando l'errore
	mysql_query($sql) or die(mysql_error());
}
?>
Non garantisco che funzioni. La struttura del tuo database presenta dei gravi errori di logica, ma è impensabile riscrivere tutti gli altri script. Fammi sapere se così va.
 

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Ciao grazie alessandro per aver messo un pò d'ordine lo script ho cambiato la data in
("Y-m-d") perchè altrimenti non concidiva mai con il campo di tipo DATEcompleanno! :)

Però mi restituisce quest'errore:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0, 'Rino, 'Trosti, 'Trq, '19, '2011-01-23, '74, '0, 'Senza contratto., '30, '300' at line 1
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Prova a modificare questa riga:
PHP:
$values = "'" . implode(", '", $player) . "'";
Così:
PHP:
$values = "'" . implode("', '", $player) . "'";
E vedi se funziona.

scusate se mi intrometto volevo solo Complimentarmi con alessandro e questo forum
questo passaggio era quello che mi mancava e che mi ha dato l'intuizione epr risolvere un problema che mi affligeva da tempo e che per un altro script ho risolto come da un mio post

il ' mancante ci ho messo la bellezza di un ora a trovarlo :hammer: volevo postarlo ma ho trovato già la risposta. :mavieni:

Dei vari forum che giro è fuori discussione che questo è il più preparato in php

:beer:

BRAVI BRAVI
 

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Concordo in pieno con Monital!E personalmente ringrazio borgo_italia e alessandro che riescono ad aiutarmi sempre anche se continuo a rompere!0:)

Comunque ale mi da questo errore:

Column count doesn't match value count at row 1



PS Posso chiederti dove hai imparato ad usare il PHP?
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Aumentare cpc adsense Google AdSense 0
D Aumentare i sublevel del menù del theme Webdesign e Grafica 1
M [WordPress] [HTML] SVG tag: aumentare dimensioni elemento 'path' WordPress 0
M [Javascript] [HTML] come aumentare il valore di una progress bar quando si preme un bottone Javascript 1
J MySql: aumentare max_allowed_packet Database 0
M ma come fanno per aumentare fan Social Media Marketing 7
S CERCO seguaci facebook italiani e aumentare visibilità del profilo Annunci servizi di Social Media Marketing 0
Monital aumentare di decimali la casella di testo Javascript 0
L Dove si trovano i bot per aumentare i fans e bisite ai siti!? Sicurezza e Virus 0
V Come aumentare le visite al sito? (nessun budget da investire) SEO e Posizionamento 2
C VENDO SCRIPT per aumentare fan su pagine facebook Annunci servizi di Social Media Marketing 0
Davidee 10 milioni di link al tuo sito web, aumentare il traffico, SEO Offerte e Richieste di scambio links 0
Y [VENDO] Servizi base per aumentare le visite al vostro sito Offerte e Richieste di scambio links 0
Y [VENDO] Servizi base per aumentare le visite al vostro sito Offerte e Richieste di Lavoro e/o Collaborazione 0
M Aumentare la visibilità' del sito SEO e Posizionamento 13
A.Passariello Aumentare Fans Facebook Annunci servizi di Social Media Marketing 0
F aumentare la dimensione dello slide HTML e CSS 0
HolidaySoft.it Desperado.... Aumentare visite del Sito SEO e Posizionamento 7
C Aumentare le dimensioni di una textarea in funzione delle righe presenti. Javascript 13
max_400 Aumentare il Pagerank SEO e Posizionamento 5
L Aumentare gli utenti iscritti di un forum SEO e Posizionamento 3
W Aumentare i seguitori di Twitter Annunci servizi di Social Media Marketing 0
T Aumentare traffico al proprio sito. Scegli i nostri servizi! Vendere e Acquistare pubblicita' online 0
F Lista per aumentare PR SEO e Posizionamento 0
T aumentare pagerank gratuitamente SEO e Posizionamento 2
G Auito per aumentare page rank SEO e Posizionamento 6
L Tutti i link per aumentare le visite al proprio sito Presenta il tuo Sito 0
dumper74 HDD Volumi e Partizioni : Aumentare volume partizione con spazio non allocato. Hardware 4
B Aumentare livello di sicurezza accesso client area riservata Classic ASP 5
T [Dw CS5] Aumentare dimensioni dei caratteri nella finestra Code e Split HTML e CSS 0
F Aumentare clienti contatti guadagni Presenta il tuo Sito 0
B Aumentare visite al sito web Gratis Presenta il tuo Sito 0
max_400 Evitare lo scatto di fine foto e aumentare la velocità Flash 2
A Un consiglio per aumentare le visite Presenta il tuo Sito 5
V Come aumentare gli ingressi SEO e Posizionamento 2
D Come Aumentare il Traffico Web sul Proprio Sito Presenta il tuo Sito 3
A Un nuovo metodo per aumentare le visite al sito sfruttando un vecchio principio Guadagnare col Sito 1
R pulsanti per aumentare o diminuire velocità di una canzone Flash 7
E aumentare i visitatori al mio sito? SEO e Posizionamento 1
S come aumentare pr SEO e Posizionamento 8
S aumentare visibilità SEO e Posizionamento 0
Andrea Pilotti Come aumentare la visibilità del proprio sito web Altri Annunci 0
S Aumentare le visite del proprio sito SEO e Posizionamento 3
V I trucchi per aumentare il Page Rank SEO e Posizionamento 0
max75 query su due tabelle e dati doppioni MS Access 2
T come ordinare dei record recuperati da due tabelle MySQL 0
K Mettere insieme due funzioni Javascript 2
C Autenticazione a due fattori FB Social Media Marketing 0
A Visualizzazione due tabelle PHP 1
T Query su due tabelle con totali Database 4

Discussioni simili