Utiliser donnée table Mysql en variable php

Résolu
iTeush -  
 pogprop -
Bonjour,

Je souhaiterais savoir comment faire pour récupérer une donnée d'une table mysql pour ensuite l'utiliser comme variable php.
La table iConomy se présente sous la forme:
id : *****
username : ***** 
balance: *****
hidden : 0 

Avec un formulaire php je récupère l'username:
<form method="post" action="allopo.php"> 
Pseudo: <input type="text" name="Pseudo" size="45" /> <br /> 
<input type="submit" value="Confirmer" /> 
</form>


Ensuite je me connecte à la base sur une autre page:
<?php 
//Reportage erreures php 
error_reporting(E_ALL); 
//Infos Database 
$dbhost = 'db4free.net'; 
$dbuser = 'iteush'; 
$dbpass = '5Hapower'; 
$dbname = 'minesword'; 
$dbtable = 'iConomy'; 
//Connexion à la base 
$player = $_POST['Pseudo']; 
$conn = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Error: ' . mysql_error()); 
mysql_select_db($dbname) or die(mysql_error()) ; 
$query = "SELECT * FROM 'iConomy'"; 
$result = mysql_query($query, $link) or die($query . " - " . mysql_error()); 
?> 


Mais après je suis bloqué, comment faire pour récupérer la valeur id de la table, le nom de l'utilisateur grâce au formulaire , ajouter 500 à balance et 0 à hidden, ou alors ajouter 500 à balance ?

Merci d'avance :)

édit : infos perso.

4 réponses

  1. naruto-94 Messages postés 904 Statut Membre 188
     
    Fais attention tu as laisser tes identifiants de connexion dans ton post ! modifies ça !

    Sinon par rapport à ton problème

    modifies :

    $query = "SELECT * FROM 'iConomy'";

    par

    $query = "SELECT * FROM iConomy WHERE pseudo='".$player."'";

    comme ça on aura que les informations du membre qui s'appelle selon l'input .

    et ensuite rajoutes à la suite de ton code :

    $row = mysql_fetch_row($result); /* pour ne récuperer qu'une seule ligne , pour en récuperer plusieurs on utilise mysql_fetch_array */

    echo 'Salut'. $row['username'] . ' ta balance est de ' . $row['balance'] . 'on va y ajouter 500';

    mysql_query("UPDATE iConomy SET balance=balance+500 WHERE id=".$row['id']); /* on ajoute 500 a la balance qu'il y a dans la bdd pour le joueur ayant l'id qu'on a récuperer dans la bdd , on pouvait le faire avec pseudo mais il est mieux d'utiliser la clé primaire . */
    1
  2. naruto-94 Messages postés 904 Statut Membre 188
     
    dans la ligne :

    $result = mysql_query($query, $link) or die($query . " - " . mysql_error());

    tu utilises la variable $link alors que ça devrait être $conn
    1
  3. iTeush
     
    Ah oui les identifiants, j'y avais pensé en plus. -.-
    Merci pour ton code mais quand je met mon pseudo dans le formulaire j'obtient:
    Notice: Undefined variable: link in /var/www/site/site.com/blabla.php on line 15 
    
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /var/www/site/site.com/allopo.php on line 15 
    SELECT * FROM iConomy WHERE pseudo='iTeush' -


    Comment résoudre ça ?
    Merci d'avance :)
    0
  4. iTeush
     
    Merci :D
    Sauf que maintenant j'obtiens ça
    Notice: Undefined index: id in /var/www/site/site.com/blabla.php on line 17


    Blala.php est la page où j'ai mit le code, le formulaire est sur une autre. Est-ce la cause du bug ?
    0
    1. naruto-94 Messages postés 904 Statut Membre 188
       
      ben ça dépend , tu dois passer par le formulaire pour qu'il n'y ait pas d'erreur , c'est grâce à la valeur de l'input que le php peut faire ses requêtes .
      donc soit tu as été sur la page sans passer par le formulaire soit c'est autre chose .
      la page allopo.php c'est quoi ? c'est l'ancien blabla.php ?
      0
    2. iTeush
       
      Ouais j'ai oublié de changer. Le problème c'est que l'erreur s'affiche quand je valide mon pseudo dans le formulaire. :/
      0
    3. naruto-94 Messages postés 904 Statut Membre 188
       
      dans cette ligne :

      mysql_query("UPDATE iConomy SET balance=balance+500 WHERE id=".$row['id']);

      remplaces $row['id'] par $row[0]
      0
    4. iTeush
       
      Parfait ça marche nickel merci. :)
      Dernière petite question, comment je fait pour faire ensuite une redirection sans obtenir
      Headers already sent by
      ?
      0
    5. naruto-94 Messages postés 904 Statut Membre 188
       
      tu peux utiliser la fonction header que si aucune donnée n'a déjà été envoyé et afficher dans le navigateur , ce qui veut dire que tu ne dois pas faire d'echo ou même mettre le <html> avant de l'exécuter sinon tu auras cette erreur .
      tu peux faire une redirection en javascript ou simplement en html avec un meta refresh .
      0