recuperation dune variable

Eléphanteau du PHP | 21 Messages

03 mars 2011, 11:40

bonjour,
j envoi une variable de ma première page a partir d'un tableau sur ma page principale que je réussit a récupérer directement,mais des que je veut la réutiliser sur cette même page je n y arrive page ,(je désire lier cette variable avec une autre tirer d un autre table sql),il y aurait t il une solution pour que je puisse utiliser cette variable plusieurs fois voici mes codes:
envoie de la variable id_user

$query='SELECT * FROM liste_user_tbl ORDER BY id_user';
$resultat=mysql_query($query) or die (mysql_error());
$total=mysql_num_rows($resultat);//donne le nombre de ligne
// si on a récupéré un résultat on l'affiche.
if($total) {
//debut du tableau
echo'<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres du tableau id_user,nom dans 2 colones
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>id_user</u></b></td>';
echo '<td bgcolor="#669999"><b><u>prenom</u></b></td>';
echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';

echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><a href="liste_user.php?id_user='.$row["id_user"].'" target="droite">'.$row["id_user"].'</a></td>';
echo '<td bgcolor="#CCCCCC"><a href="liste_user.php?id_user='.$row["id_user"].'" target="droite">'.$row["prenom"].'</a></td>';
echo '<td bgcolor="#CCCCCC"><a href="liste_user.php?id_user='.$row["id_user"].'" target="droite">'.$row["nom"].'</a></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($resultat);
}

je veut la réutiliser page 2 (je post une autre variable avant pour pouvoir les lier)

// On commence par récupérer les champs id_service_tbl et id_user
if(isset($_get['id_user'])) $id_user=$_get['id_user'];
else $id_user="";
if(isset($_post['id_services'])) $id_services=$_POST['id_services'];
else $id_services="";


connexion_bdd();

$id_user= $_GET["id_user"] ;


// on écrit la requête sql
$sql = "INSERT INTO liste_tbl(id,id_services,id_user) VALUES('','$id_services','$id_user')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';

mysql_close(); // on ferme la connexion


lorsque je regarde dans mon table liste_tbl je ne reçoit que l id_services et l id_user reste vide

ViPHP
xTG
ViPHP | 7331 Messages

03 mars 2011, 13:50

Que donnes ceci sur ta seconde page :
var_dump($_GET);

Eléphanteau du PHP | 21 Messages

03 mars 2011, 15:12

lors du 1er envoie ca donne array(1) { ["id_user"]=> string(1) "1" }
mais quand j essai de la lier ca donne array(0) { }
mais j ai compris le problème car pour les lier j envoie une autre données sur la même page ca doit donc effacer ma 1ere variable
j ai donc essayer avec $_SESSION[''] mais étant débutant je me suis planter en l utilisant
quelqu'un aurait t il une autre façon de garder ma variable même si j en envoie une autre sur la page ou modifier mon code pour réenvoyer la 1er variable avec la 2nd voici le code 2 variable(je renvoie la variable sur la même page)

// Début du script
$sql="SELECT id_services,nom_services,port1 FROM services_tbl ORDER BY id_services";
$resultat=mysql_query($sql);
echo '<form method="post" action="liste_user.php">';
echo '<select name="id_services">';

echo '<option value="" selected></option>';
while ($rang=mysql_fetch_array($resultat))
{
$id_services=$rang['id_services'];
$nom=$rang['nom_services'];
$port=$rang['port1'];

{

echo "<option value=\"$id_services\">$id_services || $nom || $port</option>";

}
}echo' <br /><input type="submit" name="lier" value=lier />';
echo'<form method="post" action="supprservices"><input value="supprimer" name="supprimer_services" type="submit">';
echo '</select>';


echo '</form>';
}

ViPHP
xTG
ViPHP | 7331 Messages

03 mars 2011, 16:57

Je n'ai absolument pas compris ton histoire de premier envoi, second envoi...
Pourrais-tu détailler ?

Eléphanteau du PHP | 21 Messages

03 mars 2011, 17:10

c es vrai c es pas très clair
alors sur ma 1ere page (tableau.php) j envoie $id_user vers ma 2eme page (liste_user.php),je n utilise pas de bouton plutot une sorte de lien pour envoyer les données:
<input type="hidden" name="id_user" value="$iduser"/><a href="liste_user.php?id_user='.$row["id_user"].'" target="droite">'.$row["id_user"].'</a></td>';

sur liste_user.php grace a un menu je choisit des donnees (id_service) que j'envoie grace a un bouton vers liste_user.php
ensuite je met une commande qui devrait lier id_user et id_service dans une table sql
donc des que j envoie id_service ma variable id_user s efface je ne peut donc pas les regrouper
ma question etait comment faire pour garder mon id_user en plus de mon id_service ?

j espère avoir été plus claire dans mes explication

ViPHP
xTG
ViPHP | 7331 Messages

03 mars 2011, 17:57

Donc voilà comment palier à ton problème en utilisant les sessions :
if( !empty($_POST['id_user']) ) // cas d'envoi par formulaire en méthode POST
  $_SESSION['id_user'] = intval($_POST['id_user']); // conversion de la variable en int et stockage en session
if( !empty($_GET['id_user']) ) // cas d'envoi par lien ou formulaire en méthode GET
  $_SESSION['id_user'] = intval($_GET['id_user']); // conversion de la variable en int et stockage en session
Ainsi dès réception de la valeur elle est enregistrée.
Tu peux faire de même avec toute autre variable.

Ensuite pour le traitement (basé sur les sessions, mais tu peux adapter à tes besoins) il faut vérifier les informations pour éviter toute requête désastreuse.
$id_user = (!empty($_SESSION['id_user']))? $_SESSION['id_user'] : ''; // si l'id existe on le stocke, sinon on laisse la chaîne vide
$id_services = (!empty($_SESSION['id_services']))? $_SESSION['id_services'] : ''; // si l'id existe on le stocke, sinon on laisse la chaîne vide
if( !empty($id_user) && !empty($id_services) )
{
  // on écrit la requête sql
  $sql = "INSERT INTO liste_tbl(id,id_services,id_user) VALUES('','$id_services','$id_user')";

  // on insère les informations du formulaire dans la table
  mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

  // on affiche le résultat pour le visiteur
  echo 'Vos infos on été ajoutées.';
}
else
  echo "Message d'erreur";

Eléphanteau du PHP | 21 Messages

04 mars 2011, 11:21

merci pour ta réponse,
mais j ai tester plusieurs fois et en modifiant certaines données
mais il me marque toujours "message d erreur"

ViPHP
ViPHP | 5462 Messages

04 mars 2011, 11:24

t'as bien fais ton session_start ?

Eléphanteau du PHP | 21 Messages

08 mars 2011, 15:40

après avoir effectuer quelque modification ca marche
merci de vos conseil