Salve a tutti,
sto cercando di fare una pagina in php dove poter scegliere i campi di una tabella mysql e una volta scelti questi vengano esposti sottoforma di tabella html in una successiva pagina.
Le due pagine sono così composte:
codice:
Choose the informations you need to be displayed:
<form action="./reg_admin.php" method='POST'>
<select name="firstoption">
<option selected value="NULL">none</option>
<option value="name">name</option>
<option value="lastname">lastname</option>
<option value="email">email</option>
<option value="birthdate">birthdate</option>
<option value="memberof">memberof</option>
</select>
<select name="secondoption">
<option selected value="NULL">none</option>
<option value="name">name</option>
<option value="lastname">lastname</option>
<option value="email">email</option>
<option value="birthdate">birthdate</option>
<option value="memberof">memberof</option>
</select>
<select name="thirdoption">
<option selected value="NULL">none</option>
<option value="name">name</option>
<option value="lastname">lastname</option>
<option value="email">email</option>
<option value="birthdate">birthdate</option>
<option value="memberof">memberof</option>
</select>
<select name="fourthoption">
<option selected value="NULL">none</option>
<option value="name">name</option>
<option value="lastname">lastname</option>
<option value="email">email</option>
<option value="birthdate">birthdate</option>
<option value="memberof">memberof</option>
</select>
<select name="fifthoption">
<option selected value="NULL">none</option>
<option value="name">name</option>
<option value="lastname">lastname</option>
<option value="email">email</option>
<option value="birthdate">birthdate</option>
<option value="memberof">memberof</option>
</select>
<input type='submit' value='Submit' />
</form>
Questa è la pagina con i vari select i cui value corrispondono alle instestazioni della tabella nel database.
Questa è l'action
codice:
<?php
include ('./DBparameter.php');
$firstoption = $_POST['firstoption'];
$secondoption = $_POST['secondoption'];
$thirdoption = $_POST['thirdoption'];
$fourthoption = $_POST['fourthoption'];
$fifthoption = $_POST['fifthoption'];
mysql_connect ( $db_host, $db_user, $db_password)or die("Impossibile connettersi al DB: ".mysql_error());
mysql_select_db($db_name) or die(mysql_error());
$table = 'registration';
$result = mysql_query("SELECT $firstoption, $secondoption, $thirdoption, $fourthoption, $fifthoption FROM {$table}");
if (!$result) {
die("Query to show fields from table failed");
}
$fields_num = mysql_num_fields($result);
echo "<h1>Table: {$table}</h1>";
echo "<table class='sortable'>";
echo "<tr>";
//table headers
for($i=0; $i<$fields_num; $i++)
{
$field = mysql_fetch_field($result);
echo "<th>{$field->name}</th>";
}
echo "</tr>\n";
//table rows
while($row = mysql_fetch_array($result))
{
echo "<tr>";
if ($firstoption =! NULL) {
echo "<td>{$row['$firstoption']}</td>";
}
if ($second =! NULL) {
echo "<td>{$row['$secondoption']}</td>";
}
if ($thirdoption =! NULL) {
echo "<td>{$row['$thirdoption']}</td>";
}
if ($fourthoption =! NULL) {
echo "<td>{$row['$fourthoption']}</td>";
}
if ($fifthoption =! NULL) {
echo "<td>{$row['$fifthoption']}</td>";
}
echo "</tr>\n";
}
echo "</table>";
?>
Gli header della tabella vengono visualizzati correttamente ed anche le celle ma all'interno di quest'ultime non ci sono i dati; suppongo che il problema risieda nell'ultima parte di codice.
Ho notato inoltre che se provo nella prima pagina a dare valore null(opzione none del select) viene stampato un header della tabella chiamato "NULL" mentre non dovrebbe essere visualizzato nulla.
Tra l'altro provando a stampare alla fine del codice i valori delle varie opzioni viene fuori "1 1 1 1 1" come se dopo un tot di codice i valori delle opzioni venissero resettati.
Qualche delucidazione?
Grazie