2010-06-15 7 views
1
$from = $_POST['from']; 
$to = $_POST['to']; 
$message = $_POST['message']; 

$query = "SELECT * FROM Users WHERE `user_name` = '$from' LIMIT 1"; 
$result = mysql_query($query); 
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $fromID = $row['user_id']; 
} 

J'essaie d'avoir $ formID être l'id_utilisateur pour un utilisateur dans ma base de données. Chaque ligne de la table des utilisateurs est comme:obtenir la valeur de base de données MySQL avec PHP

user_id | user_name | user_type 
    1 | Hristo | Agent 

Je veux $from = 1 mais le code ci-dessus ne fonctionne pas. Des idées pourquoi?

+0

Ne me semble pas que vous avez une connexion en direct à la DB. Pouvez-vous nous montrer le code où vous avez utilisé 'mysql_connect'? –

+0

Vous avez raison. Je ne me connectais pas à la base de données. Maintenant je suis et c'est donner une erreur. FireBug dit 500 Erreur interne du serveur – Hristo

+0

Pouvez-vous poster le code que vous avez utilisé? –

Répondre

3

Essayez ceci:

$from = mysql_real_escape_string($_POST['from']); 
$to = mysql_real_escape_string($_POST['to']); 
$message = mysql_real_escape_string($_POST['message']); 

$query = "SELECT * FROM Users WHERE user_name = '$from' LIMIT 1"; 
$result = mysql_query($query) or die(mysql_error()); 

while($row = mysql_fetch_assoc($result)) { 
    $fromID = $row['user_id']; 
} 

Aussi, assurez-vous que:

  • Vous êtes connecté à la base de données
  • Vous ne recevez pas les données du poste, essayez var_dump avec vos vars, par exemple var_dump($from)
+0

Je suis maintenant connecté au message DB et $ from, $ to, $ sont tous corrects! – Hristo

+0

@Hristo: Toujours pas de résultat? Quelles erreurs, le cas échéant, vous obtenez? – Sarfraz

+0

Accès refusé pour l'utilisateur 'Hristo' @ 'localhost' (en utilisant le mot de passe: NO) – Hristo

1

Utilisez mysql_fetch_assoc à la place

+0

ne semble pas travailler ... Je pense que je ne vais jamais entrer dans la boucle ... J'ai mis un echo $ fromID après l'affectation dans la boucle while et il n'a rien imprimé:/ – Hristo

0

while($row =mysql_fetch_assoc($result)){ $fromID = $row['user_id']; }

+0

ne semble pas fonctionner. .. Je pense que je ne suis jamais entrer dans la boucle ... J'ai mis un 'echo $ fromID' après l'affectation dans la boucle while et il n'a rien imprimé:/ – Hristo

0

bien qu'il devrait. essayer ce code

$from = mysql_real_escape_string($_POST['from']); 
$to  = mysql_real_escape_string($_POST['to']); 
$message = mysql_real_escape_string($_POST['message']); 

$query = "SELECT * FROM Users WHERE `user_name` = '$from' LIMIT 1"; 
$result = mysql_query($query) or trigger_error(mysql_error().$query); 
$row = mysql_fetch_array($result, MYSQL_ASSOC); 
$fromID = $row['user_id']; 
echo $fromID; 

si elle lancera aucune erreur mais toujours imprimer aucun, ajoutez cette ligne

var_dump($row); 

et post ici sa sortie

pas que vous ne devriez pas utiliser un nom d'utilisateur mais identifiant d'utilisateur pour adresser un utilisateur particulier.

+0

aucune erreur et aucun ID. var_dump résultats en NULL :( – Hristo

+0

Je ne me connectais pas à la base de données ... maintenant je suis et il donne une erreur – Hristo

+0

@Hristo bien que cela signifie que vous ne pouvez pas voir d'erreurs ou vous n'avez aucun enregistrement dans votre base de données. choses –

Questions connexes