Aumentare due record di una tabella

ciao
sembrerebbe un errore mysql e non php.
se avvine nella query con union sei sicuro che le colonne corrispondano?

ps al tuo ps
io qui sul forum
alex all'asilo anche se dat l'eta confondeva php con pp
 
Ciao ho controllato i campi e coincidono tutti,l'errore dovrebbe essere qui:
PHP:
// 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()); 
}

Una domanda qui il "?" e ":"
PHP:
// seleziona la tabella in cui inserirlo 
    $new_table = ($player['ruolo'] == 'Pt' ? 'GIOC_adulti_port' : 'GIOC_adulti');
Sarebbero tipo "if" e "else" o sono completamente fuori strada?0:)
 
ciao
prima la cosa semplice:
si è un if else
se $player['ruolo'] == 'Pt' , $new_table assume il valore GIOC_adulti_port altrimenti GIOC_adulti
veniamo alla parte più difficile.
prova per prima cosa a dividere la query e mettere i var_dump

PHP:
//...
$query_str = "SELECT * FROM GIOC_giovani WHERE età = '19' UNION SELECT * FROM GIOC_giovani_port WHERE età = '19' ";
var_dump($query_str);
$query=mysql_query($query_str);
var_dump($query);
//...

il primo var_dump dovrebbe darti
string(xyz) "...e quello che c'è nella stringa..." e vedi se viene scritta giusta
il secondo se la query NON va a buon fine
bool false
altrimenti
resuorce
sappi dire.

p.s.
se età è un numero intero (e il campo di tipo int) gli apici non servirebbero
 
ciao
fai questa prova (al massimo alex mi manda a quel paese)
PHP:
//...
$keys = array_keys($player);  
/*se fai un var_dump di $keys
ottieni: array ecc.., mentre
nell'INSERT INTO {$new_table} ({$keys}) VALUES ({$values})
al posto di $keys deve risultare (esempio) INTO(pinco, pallo, sempronio)
quindi prova ad eggiungere
*/
$keys=implode(", ",$keys);
//....
 
Ops, mi ero dimenticato di convertire l'array in stringa. Siamo contenti che finalmente funzioni.

P.S. Grazie dei complimenti, mi riempiono di orgoglio. E, rispondendo alla tua domanda, ho imparato PHP in giro per la rete.
 

Discussioni simili