Imbrication PHP/MySql, SELECT et $

stanymassart Messages postés 10 Statut Membre -  
aomaom Messages postés 3 Statut Membre -
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
Configuration: Windows XP
Firefox 2.0.0.3

2 réponses

  1. lefoufighter Messages postés 277 Date d'inscription   Statut Membre Dernière intervention   99
     
    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
  2. aomaom Messages postés 3 Statut Membre
     
    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