Creazione di un sito di news

Stato
Chiusa ad ulteriori risposte.

Emperor

Nuovo Utente
11 Mag 2020
11
0
1
Salve, premettendo che non sono sicuro di essere nella sezione giusta ho alcune dubbi per la gestione del mio sito web.
In poche parole devo creare una pagina usando HTML, CSS, JavaSript, PHP per un progetto universitario. Il sito è una pagina di news e recensioni ma il problema principale è la gestione degli articoli. Nello specifico non so se devo creare una pagina html per ogni articolo o dovrei usare il database.
Qualcuno mi può dire come gestire la situazione?
 
Puoi usare un database e un unico file php dove prendi un valore passato con GET e mostri le informazioni relative a quell'articolo
 
Si potrebbe fare ma per spiegarlo meglio nella home ci dovrebbero essere gli articoli più recenti quindi come faccio ad indicare che voglio pesto e immagini proprio di quel'articolo ?
 
Dovresti creare una tabella "articoli" con i seguenti campi:
id_articolo (INT)
titolo(VARCHAR)
testo(VARCHAR)
immagine(VARCHAR)
...altri eventuali campi
Poi nella home fai una query per prelevare i tot articoli più recenti e per ciascuno prendi ciò che ti serve (titolo, testo, immagine, ...)
 
Penso di aver capito, l'unico dubbio ora è il seguente, devo fare la query in un file php separato o sarebbe meglio inserire tutto in una pagina ? E in quest'ultimo caso sarebbe più giusta una panina php o html ?
 
Beh se vuoi fare una query il file deve essere necessariamente PHP. Ti consiglio di inserire tutto in uno stesso file a meno che non siano tanti tanti codici
 
Ti consiglio di inserire tutto in uno stesso file a meno che non siano tanti tanti codici
Che dici...
I file di output dovrebbero chiamare controller al massimo degli helpers....

devo fare la query in un file php separato o sarebbe meglio inserire tutto in una pagina
Se la materia è progettazione per il web stai cannando il progetto....

Forse dovresti utilizzare il metodo OOP.....
 
Che dici...
I file di output dovrebbero chiamare controller al massimo degli helpers....


Se la materia è progettazione per il web stai cannando il progetto....

Forse dovresti utilizzare il metodo OOP.....
In realtà il corso è molto basilare quindi non viene richiesto una grande rigorosità a livello strutturale
 
Il codice in questione è questo, premetto che lo script php l'ho preso in giro, ma non funziona (ovviamente è "completo" solo per il primo articolo) e mi chiedevo se Altervista, che sto usando come host, riconosce i metodi my_sql o li devo implementare o se l'errore è da qualche altra parte.
PHP:
<!DOCTYPE html>

<html>


<head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <!--per risolvere i problemi di accenti;-->

    <title>KingdomTech - HomePage</title>

    <link rel="stylesheet" type="text/css" href="style.css" />

    <script src="Orologio.js"></script>

    <span id="orologio"></span>

</head>


<body onload="OrologioScorrevole()">


<!-- Banner del sito -->


    <div id="banner">

  

    </div>


<!-- Barra di navigazione per accedere alle altre pagine -->


    <div id="navigation">

        <ul>

            <li><a href="KingdomTech-HomePage.html">Home</a></li>

            <li><a href="chisiamo.html">Chi Siamo</a></li>

            <li><a href="recensione.html">Recensioni</a></li>

            <li><a href="contatti.html">Contatti</a></li>

        </ul>

    </div>

  

    <?

/* dichiariamo alcune importanti variabili per collegarci al database */

$DBhost="localhost";

$DBuser="---";

$DBpass="----";

$DBName="---";


/* specifichiamo il nome della nostra tabella */

$table="Articoli";


/* Connettiamoci al database */

mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");

mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");


/* impostiamo la query e cerchiamo solo le amiche donne...*/

$sqlquery="SELECT * FROM $table ORDER BY Data_pubblicazione ASC";

$result=mysql_query($sqlquery);

$number=mysql_num_rows($result);


$i = 0;

if ($number < 1) {

  print "<center><p>La ricerca non ha prodotto nessun risultato</p></center>";

}else{

  while ($i < 4) {

    $titolo[$i]=mysql_result($result,$i,"titolo");

    $sottotitolo[$i]=mysql_result($result,$i,"sottotiolo");

    $immagine[$i]=mysql_result($result,$i,"immagine");

    $testo[$i]=mysql_result($result,$i,"testo");

    $i++;

  }

}

?>


<!-- Sezione principale della pagina contenete gli artiocli più recenti -->

<!--Primo Articolo-->

    <a><div id="content">

        <div id="articolo">

            <img src="<?php $immagine[1]?>"><div id="testo">

                <h1><?php $titolo[1]?></h1>

                <p><?php $sottotitolo[1]?></p>

            </div>

        </div></a>

<!--Secondo articolo-->

        <a><div id="articolo">

            <img src="img/immagine di prova.jpg"><div id="testo">

                <h1>Titolo del articolo</h1>

                <p>breve descrizione</p>

            </div>

        </div></a>

<!--Terzo articolo-->               

        <a><div id="articolo">

            <img src="img/immagine di prova.jpg"><div id="testo">

                <h1>Titolo del articolo</h1>

                <p>breve descrizione</p>

            </div>

        </div></a>

<!--Quarto articolo-->       

        <a><div id="articolo">

            <img src="img/immagine di prova.jpg"><div id="testo">

                <h1>Titolo del articolo</h1>

                <p>breve descrizione</p>

            </div>

        </div></a>

      


      


<!-- Barra laterale destra della pagina -->


     </div><div id="right-menu">

            <form method="post" action="php/login.php">

                <input type="text" id="username" placeholder="Username" name="username">

                <input type="password" id="password" placeholder="Password" name="password">

                <br><button class="bottone" type="submit" name="login">Accedi</button>

            </form><a href="registrazione.html"><button class="bottone">Registrati</button></a>

    </div>


<!-- Informazioni a piè di pagina -->

    <div id="footer-img" align="center">

        <img src="img/Logo.png" width="10%">

    </div>



    <div id="footer">@copyright azienda di tecnologia, tutti i diritti riservati</div>

</body>


</html>
 
Ultima modifica di un moderatore:
1. Dovresti usare mysqli al posto di mysql
2. Invece di incrementare $i per prendere i primi 4 risultati fai prima a mettere LIMIT 4 nella query.
3. Non possono esserci più elementi html con lo stesso ID.
4. Per mostrare una variabile in PHP devi usare echo, non puoi semplicemente scriverla
PHP:
<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--per risolvere i problemi di accenti;-->
<title>KingdomTech - HomePage</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script src="Orologio.js"></script>
<span id="orologio"></span>
</head>

<body onload="OrologioScorrevole()">

<!-- Banner del sito -->

<div id="banner">

</div>

<!-- Barra di navigazione per accedere alle altre pagine -->

<div id="navigation">
<ul>
<li><a href="KingdomTech-HomePage.html">Home</a></li>
<li><a href="chisiamo.html">Chi Siamo</a></li>
<li><a href="recensione.html">Recensioni</a></li>
<li><a href="contatti.html">Contatti</a></li>
</ul>
</div>

<?
/* dichiariamo alcune importanti variabili per collegarci al database */
$DBhost="localhost";
$DBuser="---";
$DBpass="----";
$DBName="---";

/* specifichiamo il nome della nostra tabella */
$table="Articoli";

/* Connettiamoci al database */
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");

/* impostiamo la query e cerchiamo solo le amiche donne...*/
$sqlquery="SELECT * FROM $table ORDER BY Data_pubblicazione ASC LIMIT 4";
$result=mysql_query($sqlquery);
$number=mysql_num_rows($result);
if ($number < 1) {
echo "<center><p>La ricerca non ha prodotto nessun risultato</p></center>";
}else{
while ($get_ris = mysql_fetch_assoc($result)) {
$titolo=$get_ris['titolo'];
$sottotitolo=$get_ris['sottotitolo'];
$immagine=$get_ris['immagine'];
$testo=$get_ris['testo'];
?>
<a>
<div class="articolo">
<img src="<?php echo $immagine;?>">
<div class="testo">
<h1><?php echo $titolo;?></h1>
<p><?php echo $sottotitolo;?></p>
<p><?php echo $testo;?></p>
</div>
</div>
</a>
<?php
}
}
?>
<!-- Barra laterale destra della pagina -->

</div><div id="right-menu">
<form method="post" action="php/login.php">
<input type="text" id="username" placeholder="Username" name="username">
<input type="password" id="password" placeholder="Password" name="password">
<br><button class="bottone" type="submit" name="login">Accedi</button>
</form><a href="registrazione.html"><button class="bottone">Registrati</button></a>
</div>

<!-- Informazioni a piè di pagina -->
<div id="footer-img" align="center">
<img src="img/Logo.png" width="10%">
</div>


<div id="footer">@copyright azienda di tecnologia, tutti i diritti riservati</div>
</body>

</html>
P.S. in questo codice ho lasciato mysql, sappi che dovresti portare tutto a mysqli
 
Basta che sostituisci i vari mysql con mysqli ricordando che in mysqli_query devi inserire il parametro della connessione. Ma funziona il codice così come te l'ho mandato?
 
Ho provato il codice ma non mi fa connettere all'database (ovviamente ho modificato i dati per la connessione) e l'editor mi segnati come errore
$DBName inserito come argomento di mysqli_select_db("$DBName")
$sqlquery inserito come argomento di $result=mysqli_query($sqlquery);
 
Devi togliere i "" da $DBName. Prima davo per scontato che avessi già testato che la connessione al database funzionasse
 
@Emperor
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
PHP (2).png
quando posti del codice php, oppure la funzione codice dalla barra degli strumenti
box inserisci.png

Inoltre IMPORTANTE: Prima di creare una nuova discussione o di rispondere alle discussioni esistenti ricordati di leggere attentamente il Regolamento del Forum e l'eventuale regolamento specifico della sezione!
Grazie
Correggi i tuoi post
mi raccomando altrimenti sarò costretto a cancellare le discussioni
 
Allora come errore per entrambi mi da che i calori aspettati sono 2 ma ne riceve solo uno, per la connessione al DB, un mio compagno ha trovato un codice un po' diverso per la registrazione e questo codice funzione e gli utenti vengono aggiunti.
Se pensi che possa serviti posso mandarlo.
 
Stato
Chiusa ad ulteriori risposte.

Discussioni simili