- Home
- Categorie
- Coding e Sistemistica
- PHP
- glossario
-
glossario
Ciao a tutti,
vorrei realizzare un glossario come questo http://www.klarinet.it/glossario.phpAdesso quello che ho fatto è un db con 1 tabella(termini) e 3 campi(id,voce,descrizione).
Poi ho creato 3 file:
config.php
<?php
//parametri del database
//parametri del database
$db_host = ".......";
$db_user = ".......";
$db_password = ".......";
$db_name = "......";
?>db.php
<?php
//**********************************
//Connetti DataBase
//**********************************function connectDB(){ $conn=mysql_connect(".....", "......", ".........") or die ("errore durante la connessione al db".mysql_error()); mysql_select_db("........."); return $conn; }
//*********************************
//Disconnetti DataBase
//*********************************
function disconnectDB($conn){
mysql_close($conn)
or die ("errore durante la disconnessione".mysql_error());
}?>
glossario.php
<?php
include 'db.php';
include 'config.php';
?><?php
for ($i=65;$i<91;$i++) {
echo"<a href="index.php?lettera=".chr($i)."">".chr($i)."</a>"."";
}
$lettera = $_GET['lettera'];
$conn = connectDB();
$query = "select voce,descrizione from termini where voce like '$lettera%'";
$result = mysql_query($query);
if(!$result){
echo 'could not run query:'.mysql_error();
exit;
}
while($row = mysql_fetch_array($result)){
$pdata = $row['descrizione'];} echo $pdata;
?>
Il problema è che non va.
Mi date 1 mano?
-
Sicuramente l'echo devi farlo all'interno del ciclo:
while($row = mysql_fetch_array($result)){ $pdata = $row['descrizione']; echo $pdata; }
Invece di:
while($row = mysql_fetch_array($result)){ $pdata = $row['descrizione']; } echo $pdata;
Poi se dici "non va" non é che uno si inventa cosa non va...
-
@margheritebianche said:
Poi se dici "non va" non é che uno si inventa cosa non va...
Hai ragione.
Allora ho seguito il tuo suggerimento e ho fatto così:<table> <?php for ($i=65;$i<91;$i++) { echo"<a href=\"index.php?lettera=".chr($i)."\">".chr($i)."</a>".""; } $lettera = $_GET['lettera']; $conn = connectDB(); $query = "select * from termini where voce like '$lettera%'"; $result = mysql_query($query); if(!$result){ echo 'could not run query:'.mysql_error(); exit; } while($glossario = mysql_fetch_array($result)){ echo"<tr> <td> <h4 style=\"color:#200FC8;\">{$glossario['voce']}</h4> </td> </tr> <tr> <td> <h4>{$glossario['descrizione']}</h4> </td> </tr>"; } ?> </table>
Ancora però non è completo perchè vorrei fosse come questo http://www.klarinet.it/glossario.php
1)Non riesco a mettere nella pag. iniziale solo i termini che iniziano per a
2Vorrei stampare inizialmente solo una piccola introduzione della descrizione e poi cliccando sul termine si va in un'altra pag. dove ci sarà tutta la descrizione .In pratica vorrei che fosse come il sito della klarinet...
Fin ora quello che sono riuscito a fare si trova qua http://www.lucfast79.altervista.org/
Come potete vedere inizialmente ci sono tutti i termini ed io questo non lo vorrei, poi cliccando sulla a ci sono solo i termini che iniziano per a(questo ok)
Mi date 1 mano [/code]
-
Beh, per l'inizio é facile:
$lettera = $_GET['lettera'];
lo fai diventare:
$lettera = isset($_GET['lettera']) ? $_GET['lettera'] : "A";
-
@margheritebianche said:
Beh, per l'inizio é facile:
$lettera = $_GET['lettera'];
lo fai diventare:
$lettera = isset($_GET['lettera']) ? $_GET['lettera'] : "A";
Grazie per i suggerimenti.
Adesso funziona.