- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problemi inserimento dati database....
-
nell'input della checkbox, al posto di "giocatori*" scrivi "$row['id']" e poi nella pagina successiva fai un ciclo che ti controlla se la checkbox è TRUE o FALSE, e in caso sia TRUE vai a prendere i dati nel database tramite l'id. Se non sai programmare, la cosa è difficile, ma, se sai programmare, puoi partire dalla mia idea per sviluppare il codice.
Ciao
-
per quanto mi riguarda non sono programmatore...
quindi è un po' arabo per me...io nello specifico ho una tabella con:
id - cognome - nome - goals - vittorie - pareggi - sconfitte
-
@fantagalla said:
per quanto mi riguarda non sono programmatore...
quindi è un po' arabo per me...
comicia a modificare la parte che ti ho detto e passami il link della pagina, almeno controllo che vada bene.. poi vedo se riesco a scrivere il codice (forse per domani sera)..ciao
-
io non ho quella parte di codice..ho 2 pagine, inserisci.php e modulo.htm..
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";// 2. Inserisci in questa tabella tutte le coppie ID/Goal ricavate dall'invio del modulo
$query = "INSERT INTO tmp_calcetto (id, goals, vittorie, pareggi, sconfitte) VALUES
(1, '{$_POST['goals1']}', '{$_POST['vittorie1']}', '{$_POST['pareggi1']}', '{$_POST['sconfitte1']}'),
(2, '{$_POST['goals2']}', '{$_POST['vittorie2']}', '{$_POST['pareggi2']}', '{$_POST['sconfitte2']}'),
(3, '{$_POST['goals3']}', '{$_POST['vittorie3']}', '{$_POST['pareggi3']}', '{$_POST['sconfitte3']}'),
(4, '{$_POST['goals4']}', '{$_POST['vittorie4']}', '{$_POST['pareggi4']}', '{$_POST['sconfitte4']}'),
(5, '{$_POST['goals5']}', '{$_POST['vittorie5']}', '{$_POST['pareggi5']}', '{$_POST['sconfitte5']}'),
(6, '{$_POST['goals6']}', '{$_POST['vittorie6']}', '{$_POST['pareggi6']}', '{$_POST['sconfitte6']}'),
(7, '{$_POST['goals7']}', '{$_POST['vittorie7']}', '{$_POST['pareggi7']}', '{$_POST['sconfitte7']}'),
(8, '{$_POST['goals8']}', '{$_POST['vittorie8']}', '{$_POST['pareggi8']}', '{$_POST['sconfitte8']}'),
(9, '{$_POST['goals9']}', '{$_POST['vittorie9']}', '{$_POST['pareggi9']}', '{$_POST['sconfitte9']}'),
(10, '{$_POST['goals10']}', '{$_POST['vittorie10']}', '{$_POST['pareggi10']}', '{$_POST['sconfitte10']}'),
(11, '{$_POST['goals11']}', '{$_POST['vittorie11']}', '{$_POST['pareggi11']}', '{$_POST['sconfitte11']}')
";if (mysql_query($query, $db))
echo "Creazione tabella temporanea eseguita correttamente";
else
echo "Errore durante creazione 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 "Creazione tabella temporanea eseguita correttamente";
else
echo "Errore durante creazione tabella temporanea";// 4. Distruggi la tabella temporanea
$query = "DROP TABLE tmp_calcetto";if (mysql_query ($query, $db))
echo ("Inserimento riuscito!");
else
echo ("Errore nell'inserimento :-(");if (mysql_query ($query, $db))
echo ("Eliminazione tabella temporanea non riuscita");
?>[/PHP]modulo.htm
[HTML]<html>
<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 statistiche giocatori calcetto</title>
</head>
<body>
<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>VITTORIE</b></td>
<td width="15%" align="center"><b>PAREGGI</b></td>
<td width="15%" align="center"><b>SCONFITTE</b></td>
</tr>
<tr>
<td width="15%">NASTARI</td>
<td width="15%">Raffaele</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals1" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie1" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi1" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte1" size="5"></td>
</tr>
<tr>
<td width="15%">COVA</td>
<td width="15%">Simone</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals2" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie2" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi2" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte2" size="5"></td>
</tr>
<tr>
<td width="15%">GIACOMETTI</td>
<td width="15%">Maurizio</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals3" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie3" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi3" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte3" size="5"></td>
</tr>
<tr>
<td width="15%">POMATI</td>
<td width="15%">Davide</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals4" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie4" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi4" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte4" size="5"></td>
</tr>
<tr>
<td width="15%">CERESA</td>
<td width="15%">Francesco</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals5" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie5" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi5" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte5" size="5"></td>
</tr>
<tr>
<td width="15%">GIOIA</td>
<td width="15%">Daniele</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals6" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie6" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi6" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte6" size="5"></td>
</tr>
<tr>
<td width="15%">AVVISATO</td>
<td width="15%">Francesco</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals7" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie7" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi7" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte7" size="5"></td>
</tr>
<tr>
<td width="15%">TERRANOVA</td>
<td width="15%">Marco</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals8" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie8" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi8" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte8" size="5"></td>
</tr>
<tr>
<td width="15%">TURRI</td>
<td width="15%">Matteo</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals9" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie9" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi9" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte9" size="5"></td>
</tr>
<tr>
<td width="15%">...</td>
<td width="15%">...</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals10" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie10" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi10" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte10" size="5"></td>
</tr>
<tr>
<td width="15%">...</td>
<td width="15%">...</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals11" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="vittorie11" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="pareggi11" size="5"></td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="sconfitte11" size="5"></td>
</tr>
</table>
<INPUT TYPE="submit" VALUE="Inserisci">
</p>
</FORM>
</body>
</html>[/HTML]e volevo utilizzare i pulsanti radio per selezionare pareggio, vittoria o sconfitta invece di dover mettere la cifra 1 nella casella di testo..
inoltre volevo ricavare i giocatori dal database con un ciclo invece di doverli scrivere a mano nella pagina modulo e nella pagina inserisci
-
modifica modulo.htm in questo modo:
[php]
<html>
<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 statistiche giocatori calcetto</title>
</head>
<body>
<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>VITTORIE</b></td>
<td width="15%" align="center"><b>PAREGGI</b></td>
<td width="15%" align="center"><b>SCONFITTE</b></td>
</tr>
<?
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 * FROM calcetto ORDER BY cognome DESC";
$result = mysql_query($query, $db);while ($row = mysql_fetch_array($result))
{
extract($row)
echo"
<tr>
<td width="15%">$cognome</td>
<td width="15%">$nome</td>
<td width="15%" align="center"> <INPUT TYPE="text" NAME="goals1" size="5"></td>
<td width="15%" align="center"> <input type="checkbox" name="vittorie$id"></td>
<td width="15%" align="center"> <input type="checkbox" name="pareggi$id"></td>
<td width="15%" align="center"> <input type="checkbox" name="sconfitte$id"></td>
</tr>
";
}
?>
</table>
<INPUT TYPE="submit" VALUE="Inserisci">
</p>
</FORM>
</body>
</html>
[/php] adesso mettilo online e passami il link!! se non me lo passi diventa difficile, devo controllare se vanno bene i nomi delle checkbox..
ciao
-
mi da errore inserimento dati nella tabella temporanea...
non ti posso dare il link altrimenti mi incasineresti i dati presenti nel database, lo sto già utilizzando
-
ho dimenticato il punto e virgola ( ; ) dopo extract($row).. mettilo.. cmq a me serve il link della pagina modulo.htm per controllare il mio codice, se non schiaccio INVIO al database non succede niente.. se non mi passi il link non posso vedere dove sbaglio..
EDIT:
non schiacciare invio neanche te, perchè non ho ancora messo a posto il codice dell'altra pagina.. prima devo vedere se funge questo
-
UN'ALTRA SOLUZONE è:
modulo.php
[php]<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>
</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 '</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";// 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]))
{
$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;
}
$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<br>Query: " . $query . "<br>Errore: " . mysql_error();// 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]però mi da questo errore:
Query: INSERT INTO tmp_calcetto (id, goals, vittorie, pareggi, sconfitte) VALUE
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 '' at line 1forse manca una parentesi in questa riga:
[php]$values = '(' . $i . ', ' . $_POST['goals' . $i] . ', ';[/php]
-
no, è giusta quella riga lì.. la parentesi la mette dopo.. non riesco a capire che errore è..
-
io non vedo dove chiude la parentesi...comunque...un'altra cosa che mi chiedevo è se si può aggiungere un boc alla fin dove casomai inserire un nuovo giocatore se non è presente nel database...
-
@fantagalla said:
io non vedo dove chiude la parentesi..
la parentesi la chiude qua (il ".=" è per concatenare stringhe..):
[php]
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;
}
[/php]