[php]création de liens

Résolu/Fermé
bezourox
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
- 3 juil. 2007 à 11:23
bezourox
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
- 3 juil. 2007 à 11:53
Bonjour a tous .
Voila je souhaite afficher une page qui ne contient que des liens .
Faire des liens simples, ca n'est pas un soucis , mais la le problème est légèrement plus complexe .
Je veux donc afficher des liens en fonctions de valeurs récupérées dan une base de données .
Je m'explique :

J'ai plusieurs tables dans ma base de données, et toutes celles qui ont un nom commencant par 'qcm' servent aux questionnaires .
exemple : la table 'qcm_maths' est en lien avec le questionnaire qui s'appelle 'questionnaire_maths' et le résultat du questionnaire 'reponse_maths' .

Donc je veux que mon script php récupère la liste des tables, les compare une par une avec la chaine fixe 'qcm' .
Si les 3 premières lettres sont qcm, alors affichage sur "la page des liens" le lien qui permetsd'accéder au qcm en relation avec cette dernière table .

Voila pour le moment mon code :
Il me permets déja de récupérer seulement les tables commencant par qcm .
// Sélection de la base
		//********************************************************************/
			mysql_select_db (DATABASE) or die("Erreur de connexion à la base de données");
			if (!$serveur)
			{
				die(' Erreur MySQL : ' . mysql_error());
			}
			else
			{
			/* requete qui donne la liste des tables */ 
				$query = "SHOW tables";
			/* on execute la requete et on recupère le resultat */ 
				$tables = @mysql_query($query); 
			/* traitement des erreurs ... */
				if (!$tables)
				{
					echo "Erreur : impossible de lister les bases de données</p>";
					echo 'Erreur MySQL : ' . mysql_error();
					exit;
				}
			/* construction d'un tableau indexé de 0 à <nombre_de_resultats> */
				while ($line = mysql_fetch_array($tables))
				{
				/* on place le resultat dans un tableau en indexan sur le rang du resultat (1,2,3, ...) */
					$tableList[] = $line[0];
				}
			/* on libere le resultat */
				mysql_free_result($tables);
			/* on affiche ensuite la liste des tables */
				for($i = 0; $i<count($tableList);$i++)
				{
					if(substr($tableList[$i], 0, 3) == "qcm")
						echo ''.$tableList[$i].'<br />';
				}
			}


Je souhaite donc maintenant améliorer ca pour que l'affichage a l'écran ne soit pas juste le nom du qcm mais que ce soit un lien .

Exemple :
dans ma bases, voici les tables :
t_login
t_gestion_des_donnees
qcm_maths
qcm_info
qcm_anglais


Pour le moment, s'affiche à l'ecran :
qcm_maths
qcm_info
qcm_anglais


Maintenant je souhaite que mon programme créé les liens :

<a href="questionnaire_qcm_maths.php">qcm de maths</a>
<a href="questionnaire_qcm_info.php">qcm d'informatique</a>
<a href="questionnaire_qcm_anglais.php">qcm d'anglais</a>


Peut on m'aider ?
Merci

1 réponse

bezourox
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
143
3 juil. 2007 à 11:53
bon j'ai trouvé par moi même en fait .
Pour peut être quelqu'un un jour , voici la solution :
for($i = 0; $i<count($tableList);$i++)
{
		if(substr($tableList[$i], 0, 3) == "qcm")
			echo '<a href="questionnaire_'.$tableList[$i].'.php">'.$tableList[$i].'</a><br />';
}
0