Besoin d'aide, récupération d'une info dans la BDD [Résolu/Fermé]

Signaler
Messages postés
13
Date d'inscription
samedi 16 mars 2013
Statut
Membre
Dernière intervention
30 mars 2013
-
Truncky
Messages postés
13
Date d'inscription
samedi 16 mars 2013
Statut
Membre
Dernière intervention
30 mars 2013
-
Bonjour,

Je possède un script php (Un système d'échange de point virtuels).
Et pour utiliser ce système, il faut le pseudo du membre, qui est à rentrer dans une case.
Donc on récupère le PSEUDO du membre, mais moi, pour mon script, il faudrait aussi récupéré l'ID du membre dans la Base De Données (BDD).

J'ai essayer
$idmembre = mysql_query('SELECT id FROM membres WHERE pseudo='.$pseudo);


Bien entendu, $pseudo =
$pseudo = $_POST['pseudo'];
mais ceci ne marche pas :( .

Je vous donne le script complet.

<?php 

include('base.php');
include('tete.php');




// Sécurité des variables
if (isset($_POST['pseudo']))
{
		$pseudo = $_POST['pseudo'];
}

if (isset($_POST['montant']))
{
		$montant = $_POST['montant'];
}


//le id du membre poste
$idmembre = mysql_query('SELECT id FROM membres WHERE pseudo='.$pseudo);


$reponse = mysql_query('SELECT id, pseudo FROM membres ORDER BY pseudo ASC');
						while($donnees = mysql_fetch_assoc($reponse))
						{
							echo '
							<option value="' . intval($donnees['id']) . '">' . stripslashes(htmlspecialchars($donnees['pseudo'])) . '</option>
							';
						}


// On récupère le nombre d'argent que je prossède
$requete2 = mysql_query('SELECT argent FROM membres WHERE id = ' . $idmembre);
$shop2 = mysql_fetch_assoc($requete2);
$argent2 = secure($shop2['argent']);


// On récupère le nombre d'argent que je prossède
$requete = mysql_query('SELECT argent FROM membres WHERE id = ' . $_SESSION['m']['id']);
$shop = mysql_fetch_assoc($requete);
$argent = secure($shop['argent']);


$reponse = mysql_query('SELECT COUNT(*) FROM membres WHERE pseudo REGEXP "^' . $pseudo .'$"');
$result = mysql_result($reponse, 0);


$reponse2 = mysql_query('SELECT pseudo, id FROM membres ORDER BY pseudo ASC');


if($_GET['etape'] == 1 AND isset($_POST['pseudo']))
{

if($_POST['pseudo'] == $_SESSION['m']['pseudo'])
{ echo' Vous pouver pa doner de largent a vous meme. '; }

else{

if($argent >= $montant)
{

if($result == 0)
{ echo' Ce pseudo existe pas '; }
else{


if(!is_numeric($montant)) 
{  echo' Le montant doit etre compose uniquements de chiffres. '; }
else
{

if(!empty($_POST['pseudo']) AND !empty($_POST['montant']))
		{
if(isset($_POST['montant']))
			{


echo' kaka  ' . $argent2 . ' ';


}
else
{ echo' Vous n\'avez pas indique le montant '; }

}
else
{ echo' Vous n\'avez pas remplis tous les champs '; }

}
}


}
else
{ echo' Vous ne pouvez pas donner plus d\'argent que vous en avez, ou donner la totalite de votre argent. '; }

}





}
else
{ 


						
							
							





echo' <form method="post" action="banque.php?etape=1">	

	<div class="bloc1">
<h3>Banque ' . $argent . '  ' . $idmembre . ' 
' . $_SESSION['m']['pseudo'] . '</h3>
		<div class="texte">
		
			</center><br /><br />
			<center><font color="DodgerBlue"><strong>Informations sur la salle:</strong></font></center>
			<div class="separate"></div><br />

                        


			<label for="pseudo"><font color="red">* Pseudo du receveur</font> :</label> <input type="text" id="pseudo" name="pseudo" /><br/>
			<label for="passe"><font color="red">* Montant</font> :</label> <input id="montant" "type="text" name="montant" /><br />
			 
			<center><input type="submit" value="Valider" />


		</div>
	</center></div>
</form>

';


 }





?>





Merci de votre aide ! :)

2 réponses

Messages postés
8561
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
1 247
Bonjour,

à moins que ton pseudo ne soit une valeur numérique, il va falloir mettre des quotes.

$idmembre = mysql_query("SELECT id FROM membres WHERE pseudo='$pseudo'");
Truncky
Messages postés
13
Date d'inscription
samedi 16 mars 2013
Statut
Membre
Dernière intervention
30 mars 2013

Hum, avec ce code, ca ne met pas l'id du membre, mais "Resource id #41"

Et ça met Resource id #41 avec TOUS les pseudos que j'ai essayés :(
ThEBiShOp
Messages postés
8561
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
1 247
il faut ensuite passer soit par un mysql_result, soit par un mysql_fetch_assoc
Truncky
Messages postés
13
Date d'inscription
samedi 16 mars 2013
Statut
Membre
Dernière intervention
30 mars 2013

Houla, je ne sais pas trop ce que s'est x)

C'est le genre de chose qu'il faut mettre comme ceci:
mysql_result( ' . $idmembre . ')
?

(Je débute dans le php)
ThEBiShOp
Messages postés
8561
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
1 247
non en fait si tu fais ceci :
$idmembre = mysql_query("SELECT id FROM membres WHERE pseudo='$pseudo'");
$idmembre = mysql_result($idmembre, 0);


ça devrait fonctionner.

mysql_query retourne un jeu d'enregistrement que tu dois parcourir, si tu sais qu'il n'y a qu'une valeur qui t'intéresse, tu peux la récupérer comme ceci.
Truncky
Messages postés
13
Date d'inscription
samedi 16 mars 2013
Statut
Membre
Dernière intervention
30 mars 2013

Parfait merci ! Tout fonctionne c'est super ! :)
Messages postés
4521
Date d'inscription
jeudi 19 août 2010
Statut
Modérateur
Dernière intervention
3 août 2016
155
Salut,

Cette méthode de faire est désuète et crois moi, y'a vraiment pas de sécurité dans ce que tu fais. Tu peux vite être victime d'injection SQL sur ton script.

Essais plutôt d'utiliser l'API PDO pour te connecter à ta base de données et récupérer les enregistrements en faisant appel aux requêtes préparées.