Imbrication PHP/MySql, SELECT et $

Fermé
stanymassart Messages postés 9 Date d'inscription samedi 3 mars 2007 Statut Membre Dernière intervention 19 octobre 2010 - 9 avril 2007 à 15:09
aomaom Messages postés 2 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 25 mai 2008 - 17 mai 2008 à 20:36
Bonjour à tous,

Voici ce que je veux faire et le problème que je rencontre :

J'ai une page "proposer_news.php", qui comme son nom l'indique, permet d'ajouter une news dans la base de données. La table qui réceptionne ces données s'appelle tbl_news.

Il y a dans la table tbl_news un champ nommé news_auteur. Ce champ est une clé étrangère de la table "utilisateurs". Il recoit donc des nombres qui sont les valeurs de la clé primaire de "utilisateurs". Cette clé primaire est nomée user_id

Dans le formulaire présent sur la page "proposer_news", un champ caché est censé envoyer à la base de données le user_id qui correspond à celui de la personne qui s'est identifiée, et c'est là que ça coince.

la variable $_SESSION['Username'] est le pseudo sous lequel la personne s'est identifiée, mais comment faire en sorte que le formulaire n'envoie pas le pseudo à la base, mais bien le user_id qui lui corresond ?

J'ai essayé un truc de manière très intuitive, qui ne fonctionne évidemment pas (ben non, ce serait trop beau... ;). Il s'agit de définir une variable id_auteur_news et de la faire envoyer par le formulaire. Cela donnerait :

$id_auteur_news= "SELECT user_id FROM utilisateurs ON utilisateurs.user_id=$SESSION['UserName]";


où $SESSION['UserName']représente le pseudo sous lequel la personne s'est identifiée.

Quelqu'un à une idée de comment je pourrais réaliser cela ??

Merci d'avance.

Stan

2 réponses

lefoufighter Messages postés 277 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 12 avril 2018 99
11 avril 2007 à 12:01
Salut Stan,
je suis tout à fait d'accord dans ton idée de requête mais je l'écrirais comme ca moi :
et puis il faut lancer ta requete aussi ce que tu ne fais pas je pense :

mysql_connect("localhost", "nomdutilisateur", "motdepasse"); // Connexion a MySQL
mysql_select_db("nomdetaBD"); // Selection de la base coursphp 
$requete = "SELECT user_id FROM utilisateurs where utilisateurs.user_id = ".$SESSION['UserName]; // Requete SQL
$reponse = mysql_query($requete);
if($donnees = mysql_fetch_array($reponse) )
{
	$id_auteur_news = $donnees['user_id'];	
}


Voila j'espere que ca peut t'aider,
0
aomaom Messages postés 2 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 25 mai 2008
17 mai 2008 à 20:36
j une page php qui a de zone de text 1 nome cdepro et la 2 qtprod
ca donne variable $_POST['cdpro'] et $_POST['qtpro'].
j'aime compare ci $_POST['cdpro'] = code de produit de matable; et $_POST['qtpro'] =< qte qui enregiste sur matable.
si le code entrer par le client ($_POST['cdpro']) et $_POST['qtpro'] =< qte qui enregiste sur le client va remplie une formulaire de demande
sinon un message avec echo" .....etc".

voila le code :
<?php
if (isset($_POST['cdpro']) AND isset($_POST['qtpro'])) // Si les variables existent
{
if ($_POST['cdpro'] != NULL AND isset($_POST['qtpro'])) // Si on a quelque chose à enregistrer
{

// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("produit");
$reponse = mysql_query("select qtpro from produits where cdpro =$_POST['cdpro'] and qtpro =< $_POST['qtpro'] "); // a ce ligne php signaler a moi que l'error y la!!. ( la requete doit faire la selection avec les cretere qui entre l'utilisateur dans les 2 zone de saise) avant que verifier
$vartable = mysql_result($reponse, 0) avec le stock demander )


$cdpro = mysql_real_escape_string(htmlspecialchars($_POST['cdpro']));
$pripro = mysql_real_escape_string(htmlspecialchars($_POST['pripro']));
// Ensuite on enregistre le message
// On se déconnecte de MySQL
$vartable = mysql_result($reponse, 0);
echo $vartable;
mysql_close();
}
}


// Que l'on ait enregistré des données ou pas...
// On affiche le formulaire puis les 10 derniers messages

// Tout d'abord le formulaire :

?>

<form action="verstock.php" method="post">

<p>
Code De Produit Demander : <input type="text" name="cdpro" /><br />
Qté De Produit Demander : <input type="text" name="qtpro" /><br />

<input type="submit" value="Envoyer" />
</p>

</form>
</body>
</html>
0