Utiliser donnée table Mysql en variable php

Résolu/Fermé
iTeush - Modifié par green day le 15/08/2011 à 10:33
 pogprop - 23 nov. 2011 à 18:31
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.
A voir également:

4 réponses

naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
14 août 2011 à 06:50
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
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
14 août 2011 à 14:38
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
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
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
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
Modifié par naruto-94 le 14/08/2011 à 14:52
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
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
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
14 août 2011 à 14:55
dans cette ligne :

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

remplaces $row['id'] par $row[0]
0
Parfait ça marche nickel merci. :)
Dernière petite question, comment je fait pour faire ensuite une redirection sans obtenir
Headers already sent by
?
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
14 août 2011 à 15:03
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