• User

    glossario

    Ciao a tutti,
    vorrei realizzare un glossario come questo http://www.klarinet.it/glossario.php

    Adesso 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?
    😢


  • User Attivo

    Sicuramente l'echo devi farlo all'interno del ciclo:

    
    while&#40;$row = mysql_fetch_array&#40;$result&#41;&#41;&#123; 
    $pdata = $row&#91;'descrizione'&#93;; 
    echo $pdata; 
    &#125; 
    
    

    Invece di:

    
    while&#40;$row = mysql_fetch_array&#40;$result&#41;&#41;&#123; 
    $pdata = $row&#91;'descrizione'&#93;; 
    
    &#125; 
    echo $pdata; 
    
    

    Poi se dici "non va" non é che uno si inventa cosa non va...


  • User

    @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 &#40;$i=65;$i<91;$i++&#41; &#123;
    			echo"<a href=\"index.php?lettera=".chr&#40;$i&#41;."\">".chr&#40;$i&#41;."</a>"."";
    			&#125;
    			$lettera = $_GET&#91;'lettera'&#93;;
    			$conn = connectDB&#40;&#41;;
    			$query = "select * from termini where voce like '$lettera%'";
    			$result = mysql_query&#40;$query&#41;;
    			if&#40;!$result&#41;&#123;
    			echo 'could not run query:'.mysql_error&#40;&#41;;
    			exit;
    			&#125;
    			while&#40;$glossario = mysql_fetch_array&#40;$result&#41;&#41;&#123;
    			echo"<tr>
    					<td>
    						<h4 style=\"color&#58;#200FC8;\">&#123;$glossario&#91;'voce'&#93;&#125;</h4>
    					</td>
    				</tr>
    				<tr>
    					<td>
    						<h4>&#123;$glossario&#91;'descrizione'&#93;&#125;</h4>
    					</td>
    				</tr>";
    			&#125;
    	
    		?>
    		</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 :arrabbiato: [/code]


  • User Attivo

    Beh, per l'inizio é facile:

    
    $lettera = $_GET&#91;'lettera'&#93;;
    
    

    lo fai diventare:

    
    $lettera = isset&#40;$_GET&#91;'lettera'&#93;&#41; ? $_GET&#91;'lettera'&#93; : "A";
    
    

  • User

    @margheritebianche said:

    Beh, per l'inizio é facile:

    
    $lettera = $_GET&#91;'lettera'&#93;;
    
    

    lo fai diventare:

    
    $lettera = isset&#40;$_GET&#91;'lettera'&#93;&#41; ? $_GET&#91;'lettera'&#93; : "A";
    
    

    Grazie per i suggerimenti.
    Adesso funziona.
    :vai:

    www.lpwebdesign.net/glossario.php