Probleme de récupération de données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme de récupération de données

par djtec » 11 juin 2007, 18:35

Je te remercie Sékiltoyai pour ton aide qui m'as été bien précieuse.

Sujet clos et réglé.

++

par Sékiltoyai » 11 juin 2007, 18:30

On dit comparer, pas comparaître...

Et si l'opérateur d'assignation est '=', l'opérateur de comparaison est '==' :
http://php.net/op%E9rateurs

par djtec » 11 juin 2007, 18:21

Bonjour,

Alors je dois faire quoi ou comment pour qu'il comparaisse la donnée

par Sékiltoyai » 11 juin 2007, 00:10

Tu fais
$board_flags = 1
C'est une affectation, pas une comparaison, et donc la valeur de cette expression est toujours vraie...

par djtec » 10 juin 2007, 23:06

C'est bon merci ça fonctionne cependant j'ai un autre problème qui concerne la même chose

Dans ma table config je peux activer ou désact(iver des option a l'enregistrment mais le champ s'affiche toujours

Voici le code du champ
<?
if( $board_flags = 1)
	{
echo '
	<tr>
		<td width="150"><b>Votre pays:</b></td>
		<td><select name="pays"onchange="javascript:document.getElementById(\'flags\').src=\'images/flags/\'+this.value+\'.png\'">
         <option value="00" selected="selected">Choisissez</option>
         <option value="01">Afghanistan</option>
         <option value="02">Albanie</option>
etc .............................
</select>&nbsp;&nbsp;<img id="flags" src="transparent.png" /></td>
	</tr>
	<tr>
		<td>&nbsp;</td>
	</tr>
';
	} 
?>
Dans ma base la donnée board_flags est a 0 donc le champ ne devrait pas s'afficher

par Sékiltoyai » 10 juin 2007, 22:10

Mais non, tu dois utiliser global dans ta fonction viewheader(). C'est dans cette fonction que tu veux que ta variable soit globale, ca ne sert strictement à rien de créer une nouvelle fonction.

par djtec » 10 juin 2007, 21:24

Alors j'ai éssayé ceci
function board_config()
{
    global $board_titre, $board_flags;
    $board_titre = ''.$var['nomsite'].'';
    $board_flags = ''.$var['flag'].'';
} 
et ceci aussi
$nomsite = $var['nomsite'];
$flag = $var['flag'];

function board_config()
{
    global $board_titre, $board_flags;
    $board_titre = '$nomsite';
    $board_flags = '$flag';
} 
Mais aucun des 2 ne fonctionnent.

Je vois vraiment pas pourtant je suis sur que c'est tout simple.

par djtec » 10 juin 2007, 21:02

Donc je dois faire comme ceci
function board_config()
{
    global $board_titre, $board_flags;
    $board_titre = ''.$var['nomsite'].'';
    $board_flags = ''.$var['flag'].'';
} 

par Sékiltoyai » 10 juin 2007, 20:58

Non non, pas du tout.
Je vais te donner un exemple :
function machin()
{
    global $truc;
    $truc = 'Cette variable est globale';
    $machin = 'Cette variable est locale';
}
$truc est globale dans la fonction machin parce que l'on a indiqué global $truc au début de la fonction, $machin est locale parce que l'on n'a rien indiqué. Il n'y a pas besoin de créer une nouvelle fonction. Il faut juste indiquer dans la fonction quelles variables doivent être cherchées dans le contexte global.

par djtec » 10 juin 2007, 20:49

Donc je dois faire ceci
$c = mysql_connect($host,$login_host,$pass_host) or die('connection impossible');
mysql_select_db($hostname,$c) or die('selection impossible');

$requete = mysql_query("SELECT * FROM ".$prefixe."_config") or die("Erreur : " . mysql_error()); 
$var = mysql_fetch_array ($requete);

function board_config() {
global $board_titre, $board_flags;
}
?>
Et dans mon fichier function.php, je dois mettre cela
<? function viewheader() { ?>
<?php
$start = microtime(true);

board_config();
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<META Http-Equiv="Content-Language" Content="fr">
<title><?php echo $board_titre; ?></title>
</head>
<? } ?>
Pour le header c'est parce que j'ai voulu essayer les fonction pour éviter d'avoir un fichier header.php, fonction.php, et footer.php

J'ai voulu regrouper les 3 en 1.

par Sékiltoyai » 10 juin 2007, 20:39

Comme j'espère, et je pense, tu a compris, il faut en effet que tu utilises le mot global pour indiquer que la variable en question est globale.
En fait, tu mets après le mot global la liste des variables, séparées par des virgules, avec bien entendu le traditionnel point-virgule à la fin. En l'occurence, si tu ne veux qu'une seule variable globale, tu indiques tout simplement
global $variable;
Ensuite, je n'avais pas tilté avant, mais plutôt que de mettre ton header dans une fonction, pourquoi ne le mettrais-tu pas dans un fichier spécifique header.php que tu incluerais au bon endroit ?

par djtec » 10 juin 2007, 20:27

oups désolé

Je disais:

Comment je fais pour faire une fonction global car dans le lien que tu m'as donné et qui est celui-ci
http://www.php.net/manual/fr/language.v ... .scope.php

Il additionne les champs a et b

par Sékiltoyai » 10 juin 2007, 19:56

D'accord mais je fais comment car dans le lien que m'as donné il additionne les champs
En français ?

par djtec » 10 juin 2007, 19:14

D'accord mais je fais comment car dans le lien que m'as donné il additionne les champs

par Sékiltoyai » 10 juin 2007, 19:00

Il dise que l'on doit récuperer la donnée avant de l'afficher mais c'est ce qui est fait dans l'ordre des fichiers
Non, la variable dans ta fonction a une portée locale, et donc la variable $board_titre à l'intérieur de ta fonction n'est pas la même que la variable $board_titre dans le reste du script. Il donc faut indiquer dans ta fonction que la variable $board_titre est globale et non locale...