8791 sujets

Développement web côté serveur, CMS

Bonjour à tous.

Pour les besoins de mon site (et d'un peu de sécurisation) j'utilise un tableau php des pages autorisées dans mon site.

Ce tableau est de la forme suivante.

 $pageOK =  array(
		    'accueil'             => '' . _baselink_ . 'accueil.php',
                    'contact'             => '' . _baselink_ . 'contact.php',
			
); 


Mon problème est de générer un autre tableau tableau avec les pages autorisées stockées en bdd. En gros cela devrait donner quelquechose comme cela:
 $pageOK2 =  array(
		    'variablebase1'             => '' . _baselink_ . 'traitement.php?var=variablebase1',
                    'variablebase2'             => '' . _baselink_ . 'traitement.php?var=variablebase2',
			
); 


Vous l'aurez compris mon problème est dans la requete !
Pour le moment j'ai écrit la requete suivante mais qui ne donne pas le resultat escompté.
       $sql = "SELECT ref FROM membres";
		$req = mysql_query($sql) or die ("erreur sql !<br>".$sql."<br>".mysql_error());
		$i=0;
                 while ($result = mysql_fetch_array($req)) 

		{

			$ref=array($result['ref']);
			$i++;

			$ref2=array('traitement.php?var='.$result['ref']);

			$pageOK2[] = array_combine($ref,$ref2);
			print_r($pageOK2);

		}


Merci de votre aide parceque là je suis un peu perdu!
Modifié par gilles6975 (02 Jul 2012 - 11:28)
Bonjour,
while ($result = mysql_fetch_array($req)) 

		{

			$ref=array($result['ref']);
			$i++;

			$ref2=array('traitement.php?var='.$result['ref']);

			$pageOK2[] = array_combine($ref,$ref2);
			print_r($pageOK2);

		}
ne pourrait-il pas être remplacé par
		while ($result = mysql_fetch_array($req))  {
			$ref = array($result['ref']);
			$pageOK2[$ref] = 'traitement.php?var=' . $ref;
			print_r($pageOK2);
		}
Le code que tu avais devait te renvoyer quelque chose du type :

[
	[
		'valeur1' => 'traitement.php?var=valeur1'
	]
	[
		'valeur2' => 'traitement.php?var=valeur2'
	]
	[
		'valeur3' => 'traitement.php?var=valeur3'
	]
]

Modifié par Gothor (02 Jul 2012 - 10:36)
Bonjour Gothor et merci de ta réponse. Tu as exactement anticipé le résultat que j'obtenais mais qui en plus bouclait sur toutes les valeurs.

J'ai essayé ton code mais il me renvoie un illegal offset type.

Il faut sans doute que j'utilise un var_dump.
Modifié par gilles6975 (02 Jul 2012 - 10:49)
Yop, je suis nul...
Il faut également remplacer
$ref = array($result['ref']);
par
$ref = $result['ref'];
Pour la brève explication, en PHP, les clés d'un tableau associatif ne peuvent être que des chaînes de caractères (ou des entiers, mais ça devient alors un tableau normal...)