variable en fonction d'un nom de fichier

Eléphant du PHP | 161 Messages

23 févr. 2005, 11:59

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 :)
Modifié en dernier par Vianney le 23 févr. 2005, 13:11, modifié 3 fois.

Eléphant du PHP | 61 Messages

23 févr. 2005, 12:35

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

Eléphant du PHP | 161 Messages

23 févr. 2005, 13:06

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 :///

Eléphant du PHP | 161 Messages

23 févr. 2005, 16:21

jsuis largué la...
si qq1 q une doc ou un tuto jsuis vraiment preneur
Modifié en dernier par Vianney le 23 févr. 2005, 16:28, modifié 1 fois.

Eléphant du PHP | 334 Messages

23 févr. 2005, 16:27

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:

Eléphant du PHP | 61 Messages

23 févr. 2005, 16:30

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)

Eléphant du PHP | 161 Messages

23 févr. 2005, 16:32

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é ???

Eléphant du PHP | 161 Messages

23 févr. 2005, 16:43

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]

Eléphant du PHP | 61 Messages

23 févr. 2005, 16:47

fais un echo $_GET['id'];
à mon avis ta variable est vide

Eléphant du PHP | 161 Messages

23 févr. 2005, 17:01

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

Eléphant du PHP | 334 Messages

23 févr. 2005, 17:04

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:

Invité
Invité n'ayant pas de compte PHPfrance

23 févr. 2005, 17:11

il suffi de voir que d'un coté y a id et de l'autre Id , attention a la casse:p

Eléphant du PHP | 102 Messages

23 févr. 2005, 17:14

Moi j'aurais plutot dis
$sql = 'SELECT name,firstname,telephone,mobile,department,birthdate,COMMENT FROM people WHERE Id ='.$id;
:?

Eléphant du PHP | 161 Messages

23 févr. 2005, 17:23

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 :))

Eléphant du PHP | 61 Messages

23 févr. 2005, 17:25

La différence est au niveau des simples et doubles quotes ' et "