- Home
- Categorie
- Coding e Sistemistica
- PHP
- Radio Button, problema action
-
@fantagalla said:
Modulo.php
[php]<head>
<meta name="robots" content="noindex">
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Modulo inserimento RISULTATI calcetto</title>
</head>
<FORM METHOD="post" ACTION="inserisci_risultati.php">
<table border="1" width="100%" style="border-collapse: collapse" id="table1">
<tr>
<td width="20%" align="center"><b>DATA</b></td>
<td width="20%" align="center"><b>SQUADRA 1</b></td>
<td width="20%" align="center"><b>GOALS 1</b></td>
<td width="20%" align="center"><b>SQUADRA2</b></td>
<td width="20%" align="center"><b>GOALS 2</b></td>
</tr>
<tr>
<td width="20%" align="center"> <INPUT TYPE="text" NAME="data" size="15"></td>
<td width="20%" align="center"> <INPUT TYPE="text" NAME="squadra1" size="20"></td>
<td width="20%" align="center"> <INPUT TYPE="text" NAME="goals1" size="5"></td>
<td width="20%" align="center"> <INPUT TYPE="text" NAME="squadra2" size="20"></td>
<td width="20%" align="center"> <INPUT TYPE="text" NAME="goals2" size="5"></td>
</tr>
<tr>
<td width="20%" align="center"> </td>
<td width="20%" align="center">Vittoria<input type="radio" value="Vittoria" name="R1"></td>
<td width="20%" align="center">Pareggio<input type="radio" value="Pareggio" name="R1"></td>
<td width="20%" align="center">Sconfitta<input type="radio" value="Sconfitta" name="R1"></td>
<td width="20%" align="center"></td>
</tr>
</table>
<INPUT TYPE="submit" VALUE="Inserisci"></FORM> [/php]inserisci.php
[php]<? $conn=mysql_connect("localhost","fantagalla");
if (!$conn){
echo ("Errore durante la connessione a mysql!");
exit();
}
$db_name="my_fantagalla";
mysql_select_db($db_name,$conn);$query="INSERT INTO calcetto_risultati (data, squadra1, squadra2, goals1, goals2) VALUES ('{$_POST['data']}', '{$_POST['squadra1']}', '{$_POST['squadra2']}','{$_POST['goals1']}','{$_POST['goals2']}')";
$result=mysql_query($query, $conn);echo("Risultato aggiunto correttamente");
mysql_close($conn);
?>[/php]vorrei poter salvare i valori dei radio button ma non so come fare...
ho tre colonne per loro, una per le vittorie, una per le sconfitte, una per i pareggiCIAO
Semplice. Devi innanzitutto inserire un nuovo campo nella tabella calcetto_risultati (es.: campo_1x2 - VARCHAR (9), i caratteri max coinvolti).
Fargli arrivare la variabile $_POST['R1'] del campo "radio button"; al file ACTION del form ed è fatta.
CIAO
-
tenendo presente che non programmo in php le tue parole sono arabo...
e comunque ho gà 3 campi con vittorie, pareggi, sconfitte
-
Ti spiego.
Tenendo presente che il radio button ti da la possibilità di scegliere solo un campo, nella tabella il campo deve essere solo uno tra vittorie-pareggi-sconfitte. Esempio precedente campo_1x2 - VARCHAR (9), sostituisce i campi vittorie-pareggi-sconfitte, il quale tramite $_POST['R1'] inserirà il valore del radio button scelto.
$query="INSERT INTO calcetto_risultati (data, squadra1, squadra2, goals1, goals2, campo_1x2) VALUES ('{$_POST['data']}', '{$_POST['squadra1']}', '{$_POST['squadra2']}','{$_POST['goals1']}','{$_POST['goals2']}', '{$_POST['R1']}')";
Mi sono spiegato?
Se non ci riesci postami il codiceCIAO
-
il campo può essere benissimo triplice, ce l'ho già con un sistema simile per le statistiche giocatore, fidati...
modulo.php
[php]<head>
<meta name="robots" content="noindex">
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Modulo inserimento GIOCATORI calcetto</title>
</head>
<FORM METHOD="post" ACTION="inserisci.php">
<table border="1" width="100%" style="border-collapse: collapse" id="table1">
<tr>
<td width="15%" align="center"><b>COGNOME</b></td>
<td width="15%" align="center"><b>NOME</b></td>
<td width="15%" align="center"><b>GOALS</b></td>
<td width="15%" align="center"><b>VITTORIA</b></td>
<td width="15%" align="center"><b>PAREGGIO</b></td>
<td width="15%" align="center"><b>SCONFITTA</b></td>
<td width="15%" align="center"><b>NON PARTECIPA</b></td>
</tr>
<?php
include("config.inc.php");
$db = mysql_connect($host, $username);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");mysql_select_db($database, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");$query = "SELECT cognome, nome FROM calcetto ORDER BY id";
$result = mysql_query ($query, $db);
$i = 0;
while ($line = mysql_fetch_array ($result))
{
$i++;
echo '<tr>';
echo '<td width="15%">' . $line['cognome'] . '</td>';
echo '<td width="15%">' . $line['nome'] . '</td>';
echo '<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals' . $i . '" size="5"></td>';
echo '<td width="15%" align="center">';
echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="4"></td>';
echo '<td width="15%" align="center">';
echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="2"></td>';
echo '<td width="15%" align="center">';
echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="1"></td>';
echo '<td width="15%" align="center">';
echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="0" checked></td>';
echo '</tr>';
}
$new_player = 3; // qui il numero di nuovi giocatori
for ($j = 1; $j <= $new_player; $j++)
{
$i++;
echo '<td width="15%"><input type="text" name="cognome' . $j . '"></td>';
echo '<td width="15%"><input type="text" name="nome' . $j . '"></td>';
echo '<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals' . $i . '" size="5"></td>';
echo '<td width="15%" align="center">';
echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="4"></td>';
echo '<td width="15%" align="center">';
echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="2"></td>';
echo '<td width="15%" align="center">';
echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="1"></td>';
echo '<td width="15%" align="center">';
echo '<INPUT TYPE="radio" NAME="result' . $i . '" VALUE="0" checked></td>';
echo '</tr>';
}
?>
</table> <INPUT TYPE="submit" VALUE="Inserisci"> </p> </FORM> [/php]inserisci.php
[php]<?
include("config.inc.php");
$db = mysql_connect($host, $username);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");mysql_select_db($database, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");// 1. Crea la tabella temporanea
$query = "CREATE TABLE tmp_calcetto (
id INT (5) UNSIGNED not null,
goals INT (5) UNSIGNED not null,
vittorie INT (5) UNSIGNED not null,
pareggi INT (5) UNSIGNED not null,
sconfitte INT (5) UNSIGNED not null)";if (mysql_query($query, $db))
echo "Creazione tabella temporanea eseguita correttamente";
else
echo "Errore durante creazione tabella temporanea";// 1-bis. Inserisce i nuovi giocatori, se impostati
$new_player = false;
$query = "INSERT INTO calcetto (cognome, nome, goals, vittorie, pareggi, sconfitte) VALUES ";
$i = 0;
// cognome e nome devono essere entrambi compilati
while (isset ($_POST['cognome' . ++$i]) && $_POST['cognome' . $i] != NULL && $_POST['cognome' . $i] != '' && $_POST['nome' . $i] != NULL && $_POST['nome' . $i] != NULL)
{
$query .= "('" . $_POST['cognome' . $i] . "', '" . $_POST['nome' . $i] . "', 0, 0, 0, 0), ";
$new_player = true;
}
if ($new_player)
{
$query = substr ($query, 0, strlen ($query) - 2);
if (mysql_query($query, $db))
echo "Inserimento nuovo giocatore eseguito correttamente";
else
echo "Errore durante inserimento nuovo giocatore";
}// 2. Inizia la costruzione della query di inserimento...
$query = "INSERT INTO tmp_calcetto (id, goals, vittorie, pareggi, sconfitte) VALUES ";
$i = 0;
while (isset ($_POST['goals' . ++$i]))
{
if ($_POST['goals' . $i] == '' || $_POST['goals' . $i] == NULL)
$values = '(' . $i . ', 0, ';
else
$values = '(' . $i . ', ' . $_POST['goals' . $i] . ', ';
switch ($_POST['result' . $i])
{
case '4': $values .= '1, 0, 0), '; break;
case '2': $values .= '0, 1, 0), '; break;
case '1': $values .= '0, 0, 1), '; break;
default: $values .= '0, 0, 0), '; break;
}
$query .= $values;
}// ... poi elimina l'ultima virgola di troppo e la esegue
$query = substr ($query, 0, strlen ($query) - 2);if (mysql_query($query, $db))
echo "Inserimento dati in tabella temporanea eseguito correttamente";
else
echo "Errore durante inserimento dati nella tabella temporanea";// 3. Effettua l'aggiornamento
$query = "UPDATE calcetto, tmp_calcetto
SET calcetto.vittorie = calcetto.vittorie + tmp_calcetto.vittorie,
calcetto.pareggi = calcetto.pareggi + tmp_calcetto.pareggi,
calcetto.sconfitte = calcetto.sconfitte + tmp_calcetto.sconfitte,
calcetto.goals = calcetto.goals + tmp_calcetto.goals
WHERE calcetto.id = tmp_calcetto.id";if (mysql_query($query, $db))
echo "Aggiornamento del database eseguito correttamente";
else
echo "Errore durante aggiornamento del database";// 4. Distruggi la tabella temporanea
$query = "DROP TABLE tmp_calcetto";if (mysql_query ($query, $db))
echo ("Operazione completata!");
else
echo ("Eliminazione della tabella temporanea non riuscita :-(");
?> [/php]comunque mi bsterebbe creare un ciclo dove se i goals della squadra1 sono maggiori della squadra 2 mi mette in automatico il valore uno nella cella delle vittorie, e così via per pareggi e sconfitte...tanto questa statistica di vittorie e pareggi è solo per la squadra 1
-
ma il sistema che chiedi è uguale a quello dei giocatori, non puoi usare lo stesso script
Ciao
-
no, è diverso...
-
guarda se questo corrisponde a ciò che ti serve:
prendi tutti i dati dal form e li inserisci nelle variabili
poi fai una serie di IF per i radio.
ESEMPIO$risultato=$_POST['R1'];
if ($risultato="vittoria"){
$vittoria=1;
$result=mysql_query(UPDATE table SET campovittoria=$vittoria WHERE sq1=sq1);}
else {if ($risultato="sconfitta"){
$sconfitta=1;
$result=mysql_query(UPDATE table SET camposconfitta=$sconfitta WHERE sq1=sq1);}
else {
$pareggio=1;
$result=mysql_query(UPDATE table SET campopareggio=$sconfitta WHERE sq1=sq1);}}Nelle query ci aggiungi gli altri campi, ho usato update perche penso tu abbia già le tabelle con i nomi, altrimenti usa insert, in questo caso negli IF aggiungi delle variabili vuote per i campi .
Non sarà la soluzione piu' efficace, ma anche io sono agli inizi di php, quindi :bho:
Ciao
-
senti, facendo diversamente?
a me serve solo che se goals1>goals 2 allora assegno il valore 1 nella cella vittorie, se goals1<goals 2 assegno il valore 1 nella cella sconfitte e se goals1=goals2 assegnoi il pareggio...tutto qui...
-
@fantagalla said:
senti, facendo diversamente?
a me serve solo che se goals1>goals 2 allora assegno il valore 1 nella cella vittorie, se goals1<goals 2 assegno il valore 1 nella cella sconfitte e se goals1=goals2 assegnoi il pareggio...tutto qui...non cambi molto da quello che ho scritto negli if, al posto di confrontare il valore nel radio button , metti gol1 e gol2
if ($gol1>$gol2){
$vittoria=1;
$result=mysql_query(UPDATE table SET campovittoria=$vittoria WHERE sq1=sq1);}
else {if ($gol1<$gol2){
$sconfitta=1;
$result=mysql_query(UPDATE table SET camposconfitta=$sconfitta WHERE sq1=sq1);}
else {
$pareggio=1;
$result=mysql_query(UPDATE table SET campopareggio=$sconfitta WHERE sq1=sq1);}}Per le query e la correttezza dei comandi vale come prima
Ciao
-
vabbeh, ma dove lo inserisco il pezzo i codice che hai postato tu?
dammi la pagina completa..
al momento mi da errore nella riga
$result=mysql_query(UPDATE table SET campovittoria=$vittoria WHERE sq1=sq1);}
-
Prova cosi:
<html><body>
<?
//prendo i dati dal form
$squadra1=$_POST['squadra1'];
$goals1 =$_POST['goals1'];
$squadra2=$_POST['squadra2'];
$goals2=$_POST['goals2'];
$risultato=$_POST['R1'];// qui inserisci i dati per collegarti al db
// controlli chi ha vinto
if ($goals1>$goals2){
$vittoria=1;
$result=mysql_query(UPDATE table SET campovittoria=$vittoria WHERE sq1=$squadra1);
echo "ha vinto la",$squadra1;}
else {if ($goals1<$goals2){
$sconfitta=1;
$result=mysql_query(UPDATE table SET camposconfitta=$sconfitta WHERE sq1=$squadra1);
echo "ha vinto la",$squadra2;}
else {
$pareggio=1;
$result=mysql_query(UPDATE table SET campopareggio=$sconfitta WHERE sq1=$squadra1);
echo "pareggio, alla prossima ";}}//chiudi il db
?>
<\body><\html>Con questo aggiorni i dati delle partite di un db gia' esistente con i nomi delle squadre (ecco perchè ho usato update), al posto dei caratteri rossi dovrai mettere i nomi delle tabelle e dei campi che possiedi. Naturalmente se, invece, devi aggiungere le righe al db dovrai usare INSERT (INSERT INTO table VALUES '$squadra1','$squadra2', '$goals1', '$goals2','$vittoria','$pareggio','$sconfitta'), controllando l'ordine dei campi.
Ciao
-
allora, io ho questo form:
[PHP]<head>
<meta name="robots" content="noindex">
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Modulo inserimento RISULTATI calcetto</title>
</head>
<FORM METHOD="post" ACTION="inserisci_risultati.php">
<table border="1" width="100%" style="border-collapse: collapse" id="table1">
<tr>
<td width="20%" align="center"><b>DATA</b></td>
<td width="20%" align="center"><b>SQUADRA 1</b></td>
<td width="20%" align="center"><b>GOALS 1</b></td>
<td width="20%" align="center"><b>SQUADRA2</b></td>
<td width="20%" align="center"><b>GOALS 2</b></td>
</tr>
<tr>
<td width="20%" align="center"> <INPUT TYPE="text" NAME="data" size="15"></td>
<td width="20%" align="center"> <INPUT TYPE="text" NAME="squadra1" size="20"></td>
<td width="20%" align="center"> <INPUT TYPE="text" NAME="goals1" size="5"></td>
<td width="20%" align="center"> <INPUT TYPE="text" NAME="squadra2" size="20"></td>
<td width="20%" align="center"> <INPUT TYPE="text" NAME="goals2" size="5"></td>
</tr>
</table>
<INPUT TYPE="submit" VALUE="Inserisci"></FORM> [/PHP]e ho una tabella di nome calcetto_risultati
in cui ho i campi:
ID, DATA, SQUADRA1, SQUADRA2, GOALS1, GOALS2, VITTORIE, PAREGGI, SCONFITTEper ogni partita aggiungo una riga nuova.
quindi, il codice esatto è?