Elenet.net
+3 voti
quesito posto 21 Marzo in Classe quinta da Gianni Messina Esperto (736 punti)
  

4 Risposte

+1 voto

La prima funzionalità da sviluppare e la presentazione dell'elenco degli sport e delle relative competizioni. L'interfaccia deve essere studiata per la restituzione su dispositivi mobile. La modalità di restituzione deve prevedere un mosaico a due colonne con l'elenco degli sport rappresentati da un titolo e da una immagine.

risposta inviata 21 Marzo da Gianni Messina Esperto (736 punti)
Per sviluppare la funzionalità di visualizzazione dell'elenco degli sport e delle relative competizioni, iniziamo esaminando il file del database olimpiadi.sql che è stato caricato, per capire la struttura delle tabelle e i dati disponibili. Successivamente, possiamo procedere alla progettazione di una query SQL per recuperare le informazioni necessarie e alla definizione di un layout adatto per dispositivi mobili.
Tabella sport: Questa tabella contiene le informazioni sugli sport, inclusi il nome dello sport (nome), un'immagine rappresentativa (img), e un identificativo unico (id_sport). La presenza del campo img suggerisce che puoi utilizzare queste immagini per rappresentare visivamente ciascuno sport nella tua interfaccia.

Tabella evento: Contiene dettagli sugli eventi o le competizioni, come l'identificativo dell'evento (id_evento), l'identificativo dello sport (id_sport) a cui l'evento appartiene, la data (data), e altri dettagli specifici dell'evento, come il nome dell'evento (nome_evento). Questa tabella può essere utilizzata per collegare gli eventi agli sport specifici.
+1 voto

Per recuperare l'elenco degli sport e delle relative competizioni, utilizziamo una query SQL che unisca queste due tabelle. Tuttavia, per la presentazione iniziale servirà principalmente la tabella sport.

risposta inviata 21 Marzo da Gianni Messina Esperto (736 punti)
+1 voto

Layout di Restituzione

Per il layout su dispositivi mobili, considerando un mosaico a due colonne con l'elenco degli sport, utilizziamo HTML e CSS per strutturare e stilizzare la pagina. Un framework come Bootstrap può semplificare la creazione di un layout responsive.

Esempio di codice HTML e CSS:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Olimpiadi Studentesche</title>
    <style>
        .container {
            display: flex;
            flex-wrap: wrap;
        }
        .sport {
            width: 50%; /* Due colonne */
            box-sizing: border-box;
            padding: 10px;
        }
        .sport img {
            max-width: 100%;
            height: auto;
        }
    </style>
</head>
<body>
<div class="container">
    <!-- Ciclo per ogni sport, con PHP che genera dinamicamente questi blocchi -->
    <div class="sport">
        <img src="path/to/sport/image.jpg" alt="Nome dello Sport">
        <h2>Nome dello Sport</h2>
    </div>
    <!-- Fine del ciclo per gli sport -->
</div>
</body>
</html>

risposta inviata 21 Marzo da Gianni Messina Esperto (736 punti)
+1 voto

Procediamo con la creazione dello script in php per la restituzione degli sport. 

Utilizzare PDO per la connessione a mysql in un file separato chiamato database.php che contiene i parametri di connessione. Creare una classe da implementare con i diversi metodi necessari. Il primo metodo estrarrà l'elenco degli sport, il secondo l'estrazione dei dati relativi ad uno specifico sport.

Parte 1: Configurazione del Database (Database.php)

Creiamo un file Database.php che stabilisca la connessione al database usando PDO. Questo file conterrà una classe Database che offre un metodo per ottenere un'istanza del PDO.

<?php
class Database {
    private $host = 'localhost';
    private $db_name = 'nome_database'; // Sostituisci con il nome del tuo database
    private $username = 'username'; // Sostituisci con il tuo username
    private $password = 'password'; // Sostituisci con la tua password
    public $conn;

    public function getConnection() {
        $this->conn = null;

        try {
            $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
            $this->conn->exec("set names utf8");
        } catch(PDOException $exception) {
            echo "Errore di connessione: " . $exception->getMessage();
        }

        return $this->conn;
    }
}
?>

Parte 2: Classe per la Gestione degli Sport

Successivamente, implementiamo una classe SportManager che includerà i metodi per interagire con il database riguardo agli sport. Il primo metodo estrarrà l'elenco degli sport, mentre il secondo otterrà i dettagli di uno specifico sport.

<?php
require_once 'Database.php';

class SportManager {
    private $conn;

    public function __construct() {
        $database = new Database();
        $db = $database->getConnection();
        $this->conn = $db;
    }

    // Metodo per ottenere l'elenco degli sport
    public function getSports() {
        $query = "SELECT id_sport, nome, img FROM sport";
        $stmt = $this->conn->prepare($query);
        $stmt->execute();
        
        return $stmt;
    }

    // Metodo per ottenere i dettagli di uno specifico sport
    public function getSportDetails($id_sport) {
        $query = "SELECT id_sport, nome, img FROM sport WHERE id_sport = :id_sport";
        
        $stmt = $this->conn->prepare($query);
        $stmt->bindParam(':id_sport', $id_sport);
        $stmt->execute();
        
        return $stmt;
    }
}
?>

Utilizzo

Per utilizzare queste classi nel tuo progetto, dovrai prima includere il file Database.php e SportManager.php nella tua pagina PHP che gestisce la visualizzazione degli sport. Poi, puoi creare un'istanza della classe SportManager e chiamare i suoi metodi per ottenere i dati che desideri visualizzare. Ecco un esempio di come potresti utilizzare il metodo getSports():

<?php
require_once 'SportManager.php';

$sportManager = new SportManager();
$stmt = $sportManager->getSports();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    // Qui puoi utilizzare i dati, ad esempio:
    echo $row['nome'] . "<br/>";
    // E visualizzare l'immagine (assicurati che il campo img contenga il percorso dell'immagine o i dati binari)
}
?>
risposta inviata 21 Marzo da Gianni Messina Esperto (736 punti)

Domande correlate

+3 voti
1 risposta
quesito posto 7 Marzo in Classe quinta da Gianni Messina Esperto (736 punti) | 347 visite
+3 voti
1 risposta
quesito posto 7 Marzo in Classe quinta da Gianni Messina Esperto (736 punti) | 316 visite
+3 voti
1 risposta
quesito posto 7 Marzo in Classe quinta da Gianni Messina Esperto (736 punti) | 379 visite
778 domande
1,565 risposte
639 commenti
1,445 utenti