PDA

View Full Version : [PHP] Problema con form, visualizzazione dati


SaintTDI
30-08-2006, 14:16
Ciao a tutti! :)

Sto inziando a fare un sito di fantacalcio su DB. E' la prima esperienza in php, anche se come lavoro faccio il programmatore :)

Ho un piccolo problema.

su questa pagina ho la lista dei giocatori di una determinata squadra passata in input. Sono tutti campi a sola lettura, apparte la Fanta_Squadra e i Fanta_Miliardi, che sono editabili. Cosi su questa pagina passo associare alla fanta squadra, il giocatore appena acquistato, e per quanti FM.

nella prima form di prova... riesco a fare una combo box... dove posso scegliere le fanta squadre. E fin qui tutto ok.

prova a fare la stessa cosa nella tabella di visualizzazione dei dati, ma questa cosa non aviene. Mi fà vedere la combobox vuota, prima della riga d'intestazione:


echo "<td>N°</td><td>Cognome</td><td>Nome</td><td>Ruolo</td><td>Squadra</td><td>Fanta Squadra</td><td>Fanta Miliardi</td>";


anche se l'ho scritta dopo.

Quindi invece di vedere le fanta squadre nella loro "colonna" insieme a tutti i dati, nella combo box. Vedo le (3) fantasquadre scritte per esteso, in visualizzazione, sulla prima riga. Nelle successive righe non leggo viene scritto niente.

Poi ovviamente pensandoci... anche se il codice va bene, quando avrei la lista nella combo, mi fà solamente vedere la lista delle fantasquadre... ma non quella vera associata a quel giocatore, perchè li ci sarebbe l'id della query sulle fantasquadre... e non l'id in join.

Mi sapete dare una mano ? grazie a tutti in anticipo:D
<?//versione 1.0.0

/* Connessione e selezione del database */
$connessione = mysql_connect($host, $user, $pass) or die("Connessione non riuscita: " . mysql_error());
mysql_select_db($Database) or die("Selezione del database non riuscita");

/*Valori passati dalla pagina d'inserimento */
$Id_Squadra = $_GET['Id_Squadra'];
$Id_Fanta_Squadra = $_POST['Id_Fanta_Squadra'];
$Fanta_Miliardi = $_POST['Fanta_Miliardi'];
$Id_Calciatore = $_POST['Id_Calciatore'];

/*echo "Id_Squadra - $Id_Squadra<br>";
echo "Id_Fanta_Squadra - $Id_Fanta_Squadra<br>";
echo "Fanta_Miliardi - $Fanta_Miliardi<br>";
echo "Id_Calciatore - $Id_Calciatore<br>";*/

if ($Id_Calciatore!='' && $Fanta_Miliardi!='')
{
$update_calciatore = "Update fc_calciatori set fanta_miliardi='".$Fanta_Miliardi."'where id='".$Id_Calciatore."'";
//echo "update - $update_calciatore";
$risultato_update = mysql_query($update_calciatore) or die("Query fallita: " . $query1 . mysql_error() );
$Id_Squadra = $_POST['Id_Squadra'];
}

$query_fanta_squadre = "SELECT fs.id, fs.nome FROM fc_fanta_squadre fs";

$risultato_fanta_squadre = mysql_query($query_fanta_squadre) or die("Query fallita: " . mysql_error() . $query_fanta_squadre);

echo "<form action=\"edit_squadra.php\" method=\"post\">";
echo "<select name=Id_Fanta_Squadra>";

lf8267611 while ($row_fanta_squadre = mysql_fetch_object($risultato_fanta_squadre))
{
echo "<option VALUE=$row_fanta_squadre->id >$row_fanta_squadre->nome</option>";
}
echo "<input type=text size=1 name=fanta_miliardi />";
echo "</select>";
echo "<button type=submit>Invia</button>";
echo "</form>";

/* Esecuzione query SQL per vedere tutti i valori della tabella*/
if ($Id_Squadra !='all')
{
$query_squadre =
"SELECT c.id id_calc, c.maglia, c.cognome, c.nome nome_calc,
c.ruolo, s.nome squadra, c.id_fanta_squadra, c.fanta_miliardi
FROM
fc_squadre s, fc_calciatori c
where
s.id = c.Id_Squadra and
s.id= '".$Id_Squadra."'";
}
else
$query_squadre =
"SELECT c.id id_calc, c.maglia, c.cognome, c.nome nome_calc,
c.ruolo, s.nome squadra, c.id_fanta_squadra, c.fanta_miliardi
FROM
fc_squadre s, fc_calciatori c
where
s.id = c.Id_Squadra";

$risultato_squadre = mysql_query($query_squadre) or die("Query fallita: " . mysql_error() );
//$risultato_fanta_squadre = mysql_query($query_fanta_squadre) or die("Query fallita: " . mysql_error() );

echo "<table>";
echo "<tr>";
echo "<td>N°</td><td>Cognome</td><td>Nome</td><td>Ruolo</td><td>Squadra</td><td>Fanta Squadra</td><td>Fanta Miliardi</td>";
echo "</tr>";
/*echo "<form action=\"edit_squadra.php\" method=\"post\">";
echo "<select name=Id_Fanta_Squadra>";*/

while ($row_squadre = mysql_fetch_object($risultato_squadre))
{
$Squadra=$row_squadre->squadra;
$risultato_fanta_squadre = mysql_query($query_fanta_squadre) or die("Query fallita: " . mysql_error() );
echo "<form action=edit_squadra.php method=POST>";
echo "<select name=Id_Fanta_Squadra>";
echo "<tr>";
echo "<td>$row_squadre->maglia</td><td>$row_squadre->cognome</td><td>$row_squadre->nome_calc</td>";
echo "<td>$row_squadre->ruolo</td><td>$row_squadre->squadra</td>";
echo "<input type=hidden name=Id_Calciatore value=$row_squadre->id_calc />";
echo "<input type=hidden name=Id_Squadra value=$Id_Squadra />";

while ($row_fanta_squadre = mysql_fetch_object($risultato_fanta_squadre))
{
echo "<td><option VALUE=$row_fanta_squadre->id >$row_fanta_squadre->nome</option></td>";
}

echo "<td><input type=text size=1 name=Fanta_Miliardi value=$row_squadre->fanta_miliardi /></td>";
echo "<td><button type=submit>Invia</button></td>";
echo "</select></form>";
echo "</tr>";
mysql_free_result($risultato_fanta_squadre);
}

echo "</table>";

//Stampa del tag <title> in base alla squadra selezionata
if ($Id_Squadra == 'all')
echo "<head><title>Tutti i Calciatori</title></head></html>";
else
echo "<head><title>$Squadra</title></head></html>";

/* Liberazione delle risorse del risultato */
mysql_free_result($risultato_squadre);

/* Chiusura della connessione */
mysql_close($connessione);
?>

SaintTDI
31-08-2006, 17:02
ho cambiato un pò il codice... ma il problema c'è sempre :( nessuno mi sà aiutare?

ho messo un immagine per far capire meglio :)

bianchins
31-08-2006, 21:54
A me sembra però tu stia facendo parecchia confusione con l'html...in particolare se inizi una select non puoi mettere nel mezzo righe e colonne (tr e td) ma subito dopo select vanno una serie di option (e solo quelli) e poi la chiusura /select. Prova a cambiare il codice HTMl e vedere che succede ;)

Altra cosa:

<head><title>Tutti i Calciatori</title></head></html>

Nota bene che dopo /head andrebbe il tag body: se metti la chiusura dell'html (il tag finale) la pagina potrebbe incasinarsi... /html va solo alla fine della pagina!

bianchins

SaintTDI
31-08-2006, 22:16
A me sembra però tu stia facendo parecchia confusione con l'html...in particolare se inizi una select non puoi mettere nel mezzo righe e colonne (tr e td) ma subito dopo select vanno una serie di option (e solo quelli) e poi la chiusura /select. Prova a cambiare il codice HTMl e vedere che succede ;)

Altra cosa:

<head><title>Tutti i Calciatori</title></head></html>

Nota bene che dopo /head andrebbe il tag body: se metti la chiusura dell'html (il tag finale) la pagina potrebbe incasinarsi... /html va solo alla fine della pagina!

bianchins

ok.. adesso proverò questa cosa dei soli option tra i tag select :D questi tag html gl'ho usati poco :)

si si... lo so che ci dovrebbe essere il tag body :) ma provando non dà nessuno problema :) purtroppo per adesso mi viene in mente solo quel metodo per poter mettere il nome della squadra nel tag title

loris_p
01-09-2006, 09:39
si si... lo so che ci dovrebbe essere il tag body ma provando non dà nessuno problema
si ma la pagina non è valida :)

SaintTDI
01-09-2006, 10:22
si ma la pagina non è valida :)

cioè dici che non è standard? :)

si immagino che non lo sia di certo :D per essere il 4 giorno di php va bene :) ovviamente devo fare miliardi modifiche :)

loris_p
01-09-2006, 10:31
cioè dici che non è standard?
cioè non corrisponde al DTD di nessun HTML esistente ;) (vedere www.w3.org)
si immagino che non lo sia di certo per essere il 4 giorno di php va bene ovviamente devo fare miliardi modifiche
php non centra proprio nulla..non si valida php (tu uno script php lo puoi scrivere come ti pare tanto lo vedi solo tu) bensì si valida il codice HTML prodotto, ma se la tua pagina non segue la struttura

<html>
<head></head>
<body></body>
</html>
allora devi proprio rivederti HTML :)
questi tag html gl'ho usati poco
..si, devi proprio rivederlo.. :)
se vuoi 1 consiglio:

impara da subito XHTML 1.0 Strict
impara da qui (http://xhtml.html.it/guide/leggi/52/guida-xhtml/)
verifica le tue pagine da subito qui (http://validator.w3.org/)

ricorda che scrivere a 4 boiate in simil-html sono capaci tutti (basta scrivere qualcosa e salvarlo .htm ;) ) ma la differenza la sa fare chi sa scrivere codice snello e pulito, senza formattazione (vedi CSS) :D

SaintTDI
01-09-2006, 10:52
cioè non corrisponde al DTD di nessun HTML esistente ;) (vedere www.w3.org)

php non centra proprio nulla..non si valida php (tu uno script php lo puoi scrivere come ti pare tanto lo vedi solo tu) bensì si valida il codice HTML prodotto, ma se la tua pagina non segue la struttura

<html>
<head></head>
<body></body>
</html>
allora devi proprio rivederti HTML :)

..si, devi proprio rivederlo.. :)
se vuoi 1 consiglio:

impara da subito XHTML 1.0 Strict
impara da qui (http://xhtml.html.it/guide/leggi/52/guida-xhtml/)
verifica le tue pagine da subito qui (http://validator.w3.org/)

ricorda che scrivere a 4 boiate in simil-html sono capaci tutti (basta scrivere qualcosa e salvarlo .htm ;) ) ma la differenza la sa fare chi sa scrivere codice snello e pulito, senza formattazione (vedi CSS) :D

grazie per i consigli :) l'html lo conosco... conosco la gerarchia dei tag :D però mi fermo li per adesso... i CSS li volevo iniziare a vedere (qualcosa avevo già visto)

però diciamo che con queste prove... per adesso mi interessava poco l'html :) era quello che intendevo :) ovviamente devo fare tutto quanto in CSS etc :)