Problème de syntaxe avec la commande

Résolu
Bonjour,

Afin d'éviter d'avoir à taper une multitudes de lignes pour déclarer mes pages valides en faisant comme ci-dessous

<?
$pageOK = array('CRIN001' => 'pages/CRIN001.php',
'CRIN002' => 'pages/CRIN002.php',
'CRIN003' => 'pages/CRIN003.php',
etc.....);
?>

j'aurais aimé pouvoir remplacer toutes ses lignes par une seule faisant appel à ma base de données qui contient déjà toutes ces informations.

Et obtenir ainsi un code qui ressemblerait à ça :

<?
include("sql.php");
include("connection.php");

$result = mysql_query("SELECT * from articles order by no");

$pageOK = array(

while ($row = mysql_fetch_array($result))

{'$row[ref]' => 'pages/$row[ref].php'});

mysql_close();
?>

J'ai beau tourner mon code dans tous les sens, je suis persuadée qu'à force j'ai dû rajouter des erreurs de ponctuation et de parenthèse un peu partout, mais rien à faire pour que ça marche, et je n'arrive pas non plus à trouver la solution sur les forums.

J'en suis à me demander si celà ne serait finalement pas du domaine de l'impossible.

Merci d'avance de vos réponses.
Configuration: Windows XP
Firefox 2.0.0.9

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Essaye qqch comme :
    <?php
    include("sql.php");
    include("connection.php");
    
    $result = mysql_query("SELECT * from articles order by no");
    $pageOK = array( 'aaa' );
    while( $row = mysql_fetch_array( $result ) )
    	{
    	$t = $row[ 'ref' ] => 'pages/' . $row[ 'ref'] . 'php';
    	$pageOK = array_merge( $pageOK, $t );
    	}
    mysql_close();
    
    unset( $pageOK[ 0 ] );
    
    echo '<pre>'; print_r( $pageOK ); echo '</pre>';
    ?>
    
    1. Merci pour la réponse,

      Cependant, pris tel quel, le code ne fonctionne pas et me retourne le message d'erreur suivant :

      "Parse error: parse error in g:\serveur\www\pageok.php on line 8"

      (la ligne 8 chez moi étant la 4 ici)
      1. Pourrais-tu renvoyer ton script qui provoque une erreur en ligne 8.
        1. Alors,

          J'appelle la pageok.php depuis ma page index.php qui est la suivante :

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <title></title>
          </head>
          <style type='text/css'>@import url(style.css);</style>
          <body>

          <?
          include("pageok.php");
          if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
          include($pageOK[$_GET['page']]);
          } else {
          include("pages/CONF001.php");
          }
          ?>


          <?
          include("sql.php");
          include("connection.php");
          $result = mysql_query("SELECT * from articles where categorie='Crinolines' order by no");
          while ($row = mysql_fetch_array($result)){
          echo "
          <a href='index.php?page=$row[ref]'><img src='img/mini/$row[categorie]/$row[ref].png' height='50'></a>";
          }
          mysql_close();
          ?>

          </body>
          </html>

          et ma page pageok.php est exactement celle que tu m'as envoyée.

          (Désolée de la longueur de ce code que j'ai tenté d'alléger un tantinet quand même )
          1. Désolé, il y a une légère erreur dans le script que je t'ai envoyé dans mon message de 19h24

            Le script suivant ne provoque pas d'erreur :
            
            <?php
            include("sql.php");
            include("connection.php");
            
            $result = mysql_query("SELECT * from articles order by no");
            $pageOK = array( 'aaa' );
            while( $row = mysql_fetch_array( $result ) )
            	{
            	$t = array( $row[ 'ref' ] => 'pages/' . $row[ 'ref'] . 'php' );
            	$pageOK = array_merge( $pageOK, $t );
            	}
            mysql_close();
            
            unset( $pageOK[ 0 ] );
            
            echo '<pre>'; print_r( $pageOK ); echo '</pre>';
            ?>
            
            1. Merci beaucoup,

              J'ai dû rajouter un "." juste avant le 'php' dans la ligne de la variable $t, mais comme ça ça fonctionne.

              Merci infiniment, tu viens de m'éviter plusieurs centaines de lignes de code à saisir.