IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Fonction php stockée dans ma DB qui ne s'exécute pas [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Par défaut Fonction php stockée dans ma DB qui ne s'exécute pas
    Bonjour,

    Je me permet de poster ici car je ne sais pas trop où poster donc désolé si je me suis trompé de partie.

    Alors ma situation est simple et compliquer a la fois : je suis en train de faire une refonte complète d'une base de donnée de nos clients pour note utilisation technique. Mais voila dans cette refonte j'ai pensé a stocké une grande partie des pages sur la base de donnée dans une table "corps" qui contient la syntaxe HTML,PHP,... pour que cette page s'affiche.

    Hors la/les fonction(s) stocké dans la table ne s'exécute pas du tout.

    Voici le code utilisé :

    Pages Index.php (qui appel mon affichage)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <!-- Appel de la gestion d'affichage du menu déroulant -->
    <script type="text/javascript" src="menu.js"></script>
    <!-- Ou copier le code ci-dessus dans les balises : -->
    <script type="text/javascript">
    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
    
    <?php
    include "Fonction.php";
    
    ?>
    <body>
    <?php
    include "head.php";
    ?>
    <table width="770" border="0" cellspacing="0" cellpadding="0" align="center" >
      <tr>
        <td align="center">
    	<div id="page">
    	<div id="top">
    	<?php include "menu.xhtml"; ?>
    	</div>
    	</div>
    	</td>
      </tr>
      <tr>
        <td align="center">
    	<div id="page">
    	<div id="wrapper">
    	<div id="main">
    	<p1>Test</p>
    	<p>Test2</p>
    	<p><?php 
    	if (isset($_GET['page'])){
    	$page = $_GET['page'];
    	$categ = $_GET['categ'];}
    	appel($page,$categ); ?></p>  <-- Fonction qui fonctionne pour afficher les infos stocker.
    	<br />
    	<br />
    	</div>
    	</div>
    	</div>
    	</td>
      </tr>
      <tr>
        <td align="center"><div id="page">
    		<div id="footer"><!--Pied de page -->
    			<p id="footer"><?php include "include/Pied.inc" ?> </p>
    		</div>
    		</div>
    	</td>
      </tr>
    </table>
    </div>
    </div>
    </body>
    </html>
    Page Fonction.php (où toutes les fonctions sur stocker)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    // on se connecte à MySQL 
    $db = mysql_connect($HOST, $USER, $PSW);  
    
    // on seléctionne la base 
    mysql_select_db($DB,$db); 
    
    //-------------------------------------------      PARTIE APPEL DES PAGES  -------------------------------------------//
    //Appel de la pages demander
    
    //Affichage du résultat 
    function appel($page,$categ)
    {
    	 $sql = "SELECT * FROM corps where `page`='$page' && `categorie`='$categ'";
    	 $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	 $data = mysql_fetch_array($req);
    	 echo '<p>'.$data['compo'].'</p>';
    }
    //-------------------------------------------      PARTIE GARAGE  -------------------------------------------//
    //recherche de la version Qui ne s'exécute pas quand elle est appelé de la DB mais qui s'exécute quand elle est appelé d'une page php
    function RechercheS($ver)
    {	 //Affichage du résultat par Version
    	 $sql = "SELECT `id`, `NOM`,`TYPE`,`CLE_CPTA`, `SERIAL_CPTA`, `NUMEROS`,`VERSION`,`LIGNE` FROM `garage` WHERE NOM like '$ver%' order by `NOM`";
    	 $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	 $tbl = "garage";
    	 $stat = $_SESSION['statut'] > "1";
    	 // on fait une boucle qui va faire un tour pour chaque enregistrement
    	 while($data = mysql_fetch_array($req))
    	 if ($_SESSION['statut'] > "1")  
        { echo '<tr>
        <td width="10" align="center"><div align="CENTER" class="result2">&nbsp;</div></td>
    	<td width="20" align="center"><div align="CENTER" class="result2"><a href="delete.php?id='.$data['id'].'&tbl='.$tbl.'"><img src="im/supp.png" border="0"></a></div></td>
    	<td width="20" align="center"><div align="CENTER" class="result2"><a href="EnregGGE.php?id='.$data['id'].'& tbl='.$tbl.'"><img src="im/edit.png" border="0"></a></div></td> 
        <td width="140" align="center"><div align="CENTER" class="result2"><b> '.$data['NOM'].'</b></div></td>
    	<td width="90" align="center"><div align="center" class="result2"> '.$data['TYPE'].'</div></td>
    	<td width="260" align="center"><div align="center" class="result2"> '.$data['CLE_CPTA'].'</div></td>
    	<td width="190" align="center"><div align="center" class="result2"> '.$data['SERIAL_CPTA'].'</div></td>
    	<td width="80" align="center"><div align="center" class="result2"> '.$data['NUMEROS'].'</div></td>
    	<td width="70" align="center"><div align="center" class="result2"><a href="DL/L'.$data['LIGNE'].'V'.$data['VERSION'].'.exe">'.$data['VERSION'].'</a></div></td>
    	</tr>';}
    	else 
    	{ echo '
    	<td width="10" align="center"><div align="CENTER" class="result2">&nbsp;</div></td>
    	<td width="140" align="center"><div align="CENTER" class="result2"><b> '.$data['NOM'].'</b></div></td>
    	<td width="90" align="center"><div align="center" class="result2"> '.$data['TYPE'].'</div></td>
    	<td width="260" align="center"><div align="center" class="result2"> '.$data['CLE_CPTA'].'</div></td>
    	<td width="190" align="center"><div align="center" class="result2"> '.$data['SERIAL_CPTA'].'</div></td>
    	<td width="80" align="center"><div align="center" class="result2"> '.$data['NUMEROS'].'</div></td>
    	<td width="70" align="center"><div align="center" class="result2"><a href="DL/L'.$data['LIGNE'].'V'.$data['VERSION'].'.exe">'.$data['VERSION'].'</a></div></td>
    	</tr>';}
    }
    Les info dans la DB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
      	
    id             1
    page         garage       
    categorie 	nom 	       
    compo      <form method="post">
    <table width="300px" align="center" style="left: 150px;" border="0">
       <tr>
    	  <td><div align="center">Recherche par Nom : </div>
    	    <div align="center"><input class='inTxt' type="text" name='version' size=30 value=""></div></td>
       </tr>
          <td align="center"><input type="submit" id="bnt" name="bntRech" value="Rechercher"></td>
       </tr>		        
    </table>
    </form>
    <br>
    <table id="include" height="20" border="0" cellpadding="0" cellspacing="0" background="im/corps2.gif">	
        <tr>
    	<td width="10" align="center"><div align="CENTER">&nbsp;</div></td>
    	<td width="20" align="center"><div align="CENTER">&nbsp;</div></td>
    	<td width="20" align="center"><div align="CENTER">&nbsp;</div></td>
    	<td width="140" align="center"><div align="center">Nom : </div></td>
        <td width="90" align="center"><div align="center">Type : </div></td>
        <td width="270" align="center"><div align="center">Cl&eacute; Compta : </div></td>
        <td width="190" align="center"><div align="center">Cl&eacute; S&eacute;rial : </div></td>
        <td width="80" align="center"><div align="center">Num&eacute;ros : </div></td>
    	<td width="70" align="center"><div align="center">Version : </div></td>
    </table>	
    	<table id="include" height="20" border="0" align="center" cellpadding="0" cellspacing="0" background="im/corps2.gif">		
    <?php 
    if(isset($_POST['bntRech']))
         {$ver = $_POST['version'];  
     	  RechercheS($ver);};  <-- cette fonction ne se déclenche pas
    ?>
    </table>
    j'espère être assez clair mais j'ai des doute donc n'hésitai pas a poser des question ou demander des précision je me ferai un plaisir d'y répondre.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut utiliser eval() pour que PHP interprete une chaine de caractere comme du code.
    Je ne sais pas si ca peut marcher comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<p>' .eval($data['compo']).'</p>';
    ou comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<p>';
    eval($data['compo']);
    echo '</p>';
    ou si tu es obligé d'avoir un echo dans ton champ dans la base pour encadrer la partie html
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Par défaut
    Je viens de tester et j'ai ce message là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error in c:\program files\easyphp 2.0b1\test\Fonction.php(20) : eval()'d code on line 1
    j'ai modifier dans la page fonction.php la ligne 20 comme tu l'a indiqué ce qui donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<p>'.eval($data['compo']).'</p>';
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<p>'.$data['compo'].'</p>';
    pour ta seconde solution même message

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Et la troisieme solution ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonsoir,

    Je crois qu'il manque les guillements :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<p>' . eval("$data['compo']") . '</p>';
    Gillou.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Par défaut
    @ Legilou :

    cela ne fonctionne toujours pas j'ai le message suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp 2.0b1\test\Fonction.php on line 20
    @sabotage :

    Désolé je comprend pas trop ce que tu veux dire par :
    ou si tu es obligé d'avoir un echo dans ton champ dans la base pour encadrer la partie html

  7. #7
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    eval( "\$str = \$data['compo'];" );
    echo $str;
    Je viens de tester. Ca marche.

    Gillou.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Code PHP stocké dans une base MySQL
    Par yvon_huynh dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/10/2008, 02h28
  2. Fonction Javascript qui ne s'exécute pas
    Par bubuche007 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 25/01/2007, 11h17
  3. Réponses: 17
    Dernier message: 21/11/2006, 11h44
  4. Réponses: 18
    Dernier message: 27/10/2006, 14h15
  5. [D7-EXCEL2000] Formule dans cellule Excel qui ne se calcule pas
    Par Albertolino dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 09/09/2003, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo