Così ho creato un'interfaccia che accetta input da un menu a tendina .. Come utilizzare logicamente PHP per visualizzare tutti i possibili valori di una tabella di database?
visualizza quindi i dati provenienti da tre diverse tabelle di database in una tabella HTML con tutte le voci che corrispondono ai criteri.
La tabella è indicata nella parte inferiore dell'immagine precedente.
La mia domanda è: come posso utilizzare PHP, utilizzando loop o altro, per rielaborare il mio codice e creare un'enorme pagina HTML che attraversa ogni singolo evento? AKA ho bisogno di generare 126 tabelle:
Ma io non sono sicuro di come affrontare questo. Il mio pensiero iniziale era quello di usare un ciclo e inserire il codice per generare una sola tabella al suo interno, ma non saprei come fermarne la condizione, né vorrei sapere come scorrere tra le diverse opzioni negli elenchi a discesa. Non sto chiedendo a nessuno di creare il codice per me, ma piuttosto indirizzarmi verso quale logica usare .. dopo di che, probabilmente posso capirlo da solo. Grazie a tutti. :)
Qui di seguito è il mio codice, che uso per generare ogni tavolo, con annotazioni in form commento:
<?php
error_reporting(E_ALL);
$dbhost = "localhost"; //logs into my localhost server
$dbname = "sportsDay";
$dbuser = "root";
$dbpass = "...";
$year=$_POST['Year']; //gets variables from the drop-downs in the form displayed above
$gender=$_POST['Gender'];
$event=$_POST['Event'];
$result[]=0;
try
{
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->exec("SET CHARACTER SET utf8mb4");
$sql = "SELECT Students.lName, Students.fName, Students.house
FROM Entries INNER JOIN Events ON Entries.ev1ID = Events.ID
JOIN Students ON Students.stID = Entries.stID
WHERE (Entries.ev1ID = :event or Entries.ev2ID = :event2) and (Students.year = :year)
AND (Students.gender = :gender)
ORDER BY Students.house ASC";
//my SQL code that matches up the values from the drop-downs to the values in the database tables
$stmt = $conn->prepare($sql);
$stmt->bindValue(':event', $event);
$stmt->bindValue(':event2', $event);
$stmt->bindValue(':year', $year);
$stmt->bindValue(':gender', $gender);
$stmt->execute();
$result = $stmt->fetchAll();
$count = $stmt->rowCount();
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
<html>
<body>
<?php if ($count > 0): ?> //checks to see if there are results. if there are results, it displays them:
<table border="1" >
<tr>
<th>Name</th>
<th>House</th>
<th>Score</th>
</tr>
<?php foreach ($result as $row) {
?>
<tr>
<td><?php echo $row['fName']. ' '.$row['lName'] ?></td>
<td><?php echo $row['house'] ?></td> <td></td>
</tr>
<?php } ?>
</table>
<?php else: echo "No results." ?> //if not, it displays that there are no results.
<?php endif ?>
</body>
</html>
Quindi il messaggio è stato molto da fare, ma sono voi provando a generare molti tavoli contemporaneamente? Questo è quello che ho guadagnato leggendo la parte inferiore? – Jek
@Jek sì, in sostanza sto cercando di generare molte tabelle contemporaneamente. Sono così dispiaciuto che non sia chiaro, modificherò il post per chiarezza. –
@ Jek ha senso ora? –