Erreur fonction "extract"

Petit nouveau ! | 2 Messages

22 sept. 2009, 21:57

Bonjour à tous,

J'ai pour mission de modifier le site web de ma boite. J'ai donc tous rapatrié pour travailler en local, puis installé EasyPHP pour simuler le serveur et la base de donnée. Pour faire simple, le site est composé d'un charte graphique et tous les textes sont récupérées a partir de la base de donnée. J'ai fait quelques essais pour voir si tout fonctionnaient mais j'ai un problème avec la fonction "extract" (parse error)

Le code est le suivant:
<?php

$hote = "localhost"; //hote                                                  
$login = "root"; //login utilisateur                                     // code modifié pour travailler en local      
$motpasse = ""; //mot de passe 
$database = "arvdata"; // nom de la base de données

$bdd_textes = "arv_textePage";

$lang = 2;
$menu = 1;

$db = mysql_connect($hote, $login, $motpasse);  // 1
mysql_select_db($database,$db);        

//test pr voir si l'accés à la bdd est bon
$req = mysql_query("SELECT * FROM $bdd_textes");
$res = mysql_num_rows($req);

echo 'Il y a '.$res.' enregistrement(s) dan sla table .';
//test ok

// code qui pose problème
$query =  mysql_query("SELECT * FROM $bdd_textes WHERE menu='$menu' AND lang='$lang'") or die (mysql_error());

			if (!$query)
			{
			echo mysql_error()." : ".mysql_error();
			exit;
			}

echo 'valeur de la variable : '.$query. '  ';// la réponse de du style Ressource id #5

extract($value = $mysql_fetch_array($query)) //Parse error: parse error in C:\Program Files\EasyPHP5.3.0\www\essai.php on line 36
mysql_close($db);

?> 
<?=$texte?>
La base donnée ressemble à ca :

Image

Le site en ligne fonctionne bien mais impossible de travailler avec la base de donnée en local. Est ce que quelqu'un pourrait m'aider à résoudre ce problème et à corriger les erreurs

Merci

Onizuka

ViPHP
ViPHP | 5924 Messages

23 sept. 2009, 01:07

Les Parse Error (erreurs de syntaxe) sont en général très explicites. Lis l'erreur, relis le code de la ligne suscitée (j'y vois 2 fautes tout de même), et en principe tu ne devrais pas avoir de problème à trouver. Dans le cas contraire relis encore une fois… :wink:

Petit nouveau ! | 2 Messages

24 sept. 2009, 13:42

Effectivement il y avait quelques erreurs de syntaxe mais mon problème persistait. Le problème venait d'une autre erreur de syntaxe dans le code php. Le souci c'est que l'erreur ne se produit que lorsque je travail en local.

Est ce qu'il y a une différence entre le code offline et celui online

code source du site web :
<?
//connection bbd
//blabla 
//extract($value = mysql_fetch_array($query)); 
?>

<?=$texte?>
et pour que le code fonctionne en local
<?php
//connection bbd
//blabla 
//extract($value = mysql_fetch_array($query)); 
?>

<?php echo $texte; ?>
Pourquoi cette différence de syntaxe? est ce une évolution de langage ou il faut un script spécial pour le faire fonctionner.

Mammouth du PHP | 991 Messages

24 sept. 2009, 14:13

Okay ,

Alors la différence de syntaxe est du a la permissivité de PHP.
En effet ces trois codes sont interpreter de la même façon
<?php
echo 'Hello wolrd';
?>
<? 
echo 'Hello World';
?>
<?='Hello World' ?>
Seulement le 1ere cas sera TOUJOURS interpréter de la même façon
alors que le deuxième dépendra de la configuration local, et provoquera des erreurs avec des documents XML qui débute tous par : <?xml ( il y a si cela ce trouve une histoire de performance derrière je ne sais pas).
Enfin le 3eme est une syntaxe simplifié mais ... comment dire en restant poli ... abérante.

Modifie ton code source pour rentrer dans le premier cas , seulement cela necessite de revoir tout le code, alors tu peux modifier le php.ini contenu dans un sous repertoire de EasyPHP, en modifiant la direction short_open_tag = ON (de mémoire).

Bye hawk
DevOps, Symfony4, Hoa

Eléphant du PHP | 369 Messages

24 sept. 2009, 15:26

Salut,

Changeant de serveur, donc de php, tu peux aussi avoir un trouble au niveau de php.ini.
...'fin c'est possible. Le principe quand on migre est s'assurer de rapatrier:

- .htaccess
- la config

Et biensur essayer d'avoir la même version que...

Possible que ca vienne de la... ou pas. En tout cas, courage ;)

@+ bon code;)