Page 1 sur 2

variable en fonction d'un nom de fichier

Posté : 23 févr. 2005, 11:59
par Vianney
Bonjour tlm,
est ce que c possible d'affecter une variable d'un fichier en fonction du nom du fichier dans lequel elle est contenu ?

par exemple :
mon fichier "page_pb_id=7.php"
je veux que $var = 7 ?

j'explique un peu le contexte ya peu etre une autre maniere de faire...
En fait, j'essaie de developper un annuaire. Lorsqu'on saisi un nouvel utilisateur. il est ajouter a la base sql, ajouter automatiquement dans ma page php d'annuaire. Dans la page d'annuaire tous les utilisateurs apparraissent donc j'affiche que les infos essentielles.
A l'ajout d'un utilisateur je créer une fiche complete des infos de l'utilisateur en fonction de l'id de la personne d'ou le page_pb_id=7.php. Je fais un lien de l'annuaire vers la fiche

Dans le code suivant je voudrais que ma variable $pb_id change en fonction du nom du fichier :/
et la jai beau chercher jtrouve pas mon bonheur.
mysql_select_db($db_name,$cnx);

//sql query
$sql = 'SELECT name,firstname,telephone,mobile,department,birthdate,COMMENT FROM people WHERE Id = $pb_id';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);

    $res = strlen($data['firstname']);
    $fl = substr($data['firstname'], -$res, 1);  // return the 1st letter of the firstname 
    echo '<ul class="contentPF">';
    echo '<img src="photos/'.$fl.''.$data['name'].'.jpg" width="70" height="77" alt="Id">';  
    echo '<li>'.$data['name'].' '.$data['firstname'].'</li>';
    echo '<li>Telephone : '.$data['telephone'].'</li>';
    echo '<li>Mobile : '.$data['mobile'].'</li>';
    echo '<li>Department : '.$data['department'].'</li>';
    echo '<li>Birthdate : '.$data['birthdate'].'</li>';
    echo '<li><i>'.$data['COMMENT'].'</i></li>';

Merci beaucoup d'avance pr votre aide :)

Posté : 23 févr. 2005, 12:35
par Udufru
Salut,

si je comprend ce que tu veux faire c'est passé les variables par l'url. Pour ca il te suffit d'utiliser la methode get

sur la page 1 tu fait
<form method="GET" action=page1.php?id_page1=7>
sur la page2 tu recupere la variable passé dans l'url
$ma_var=$_GET['id_page1'];
Dans ce cas $ma_var=7

Vianney

Posté : 23 févr. 2005, 13:06
par Vianney
euh en fait jlutte pas mal la.................. :/

jcomprend pas trop comment tu fais le lien entre les 2 fichiers :?

parce que pr comparer ac la fonction post, on va utiliser un submit pr déclencher une certaine action.
c'est possible de passer cette variable ds un lien hypertexte?

genre j'ai mon fichier annuaire.php qui est la page ds laquelle je veux modifier ma variable $id.
j'ai un autre fichier test.php ou je vais faire differents liens pr differents utilisateurs genre
<a href="annuaire.php?id=3">user3</a>

et dans mon fichier jvais avoir une requette du style :
SELECT * FROM people WHERE Id = $_GET['id']';

mais ca marche pas :///

Posté : 23 févr. 2005, 16:21
par Vianney
jsuis largué la...
si qq1 q une doc ou un tuto jsuis vraiment preneur

Re: Vianney

Posté : 23 févr. 2005, 16:27
par Jerem'
parce que pr comparer ac la fonction post, on va utiliser un submit pr déclencher une certaine action.
c'est possible de passer cette variable ds un lien hypertexte?
avec un formulaire de method "get" à la place de "post"

tes variables de formulaire passeront par l'url :wink:

Posté : 23 févr. 2005, 16:30
par Udufru
tu as ta 1ere page ou tu as ton lien

<a href="annuaire.php?id=3">user3</a>

et sur la seconde tu fais

$id=$_GET['id'];
SELECT * FROM people WHERE Id ='$id';

Juste pour info, evite d'utiliser * dans le SELECT, il vaut mieux écrire les champs (optimisation)

Posté : 23 févr. 2005, 16:32
par Vianney
lol jfais un blocage :)

si j'ai :
annuaire.php (qui contient $id)
test.php (qui aura des liens de la forme <a href="annuaire.php?id=X>x</a>
si jai $id=$_GET['id'] dans mon annuaire.php
la valeur va etre bien affecté ???

Posté : 23 févr. 2005, 16:43
par Vianney
kan jlance ce fichier : page_phonebook.php?id=3

voila ce que jai :
Parse error: parse error, unexpected T_VARIABLE in c:\program files\easyphp\www\intranet2\page_phonebook.php on line 12
mysql_select_db($db_name,$cnx);
$id=$_GET['id']; 
$sql = 'SELECT name,firstname,telephone,mobile,department,birthdate,COMMENT FROM people WHERE Id ='$id'';
et si je change dans ma requette sql $id par un nombre ca marche...
jvais devenir fou :p[/php]

Posté : 23 févr. 2005, 16:47
par Udufru
fais un echo $_GET['id'];
à mon avis ta variable est vide

Posté : 23 févr. 2005, 17:01
par Vianney
si je met en commentaire toute la suite du code et que je laisse juste

echo $_GET['id']

dans page_phonebook.php?id=3

il affiche 3........

jme suis dit que peut etre ct qu'une faute de syntaxe dc jai essayé des trucs:
$sql = 'SELECT name,firstname,telephone,mobile,department,birthdate,COMMENT FROM people WHERE Id =$_GET['id']';
$sql = 'SELECT name,firstname,telephone,mobile,department,birthdate,COMMENT FROM people WHERE Id ='$_GET['id']'';
etc................

mais rien qui marche

Posté : 23 févr. 2005, 17:04
par Jerem'
mysql_select_db($db_name,$cnx);
$id=$_GET['id']; 
$sql = "SELECT name,firstname,telephone,mobile,department,birthdate,COMMENT FROM people WHERE Id ='$id'";
Essaye ça :wink:

Posté : 23 févr. 2005, 17:11
par Invité
il suffi de voir que d'un coté y a id et de l'autre Id , attention a la casse:p

Posté : 23 févr. 2005, 17:14
par Epeda
Moi j'aurais plutot dis
$sql = 'SELECT name,firstname,telephone,mobile,department,birthdate,COMMENT FROM people WHERE Id ='.$id;
:?

Posté : 23 févr. 2005, 17:23
par Vianney
mysql_select_db($db_name,$cnx);
$id=$_GET['id']; 
$sql = "SELECT name,firstname,telephone,mobile,department,birthdate,COMMENT FROM people WHERE Id ='$id'";
Essaye ça :wink:

comme ca ca roule. jai pas trop compris la difference mais en tout cas merci bcp pr l'aide :))

Posté : 23 févr. 2005, 17:25
par Udufru
La différence est au niveau des simples et doubles quotes ' et "