[Résolu] PHP - blocage sur Select * Where *

Kathy
Invité n'ayant pas de compte PHPfrance

07 oct. 2011, 15:46

Bonjour,

Je suis en train de faire un formulaire dans lequel j'aimerais intégrer les infos de l'utilisateur enregistré.
J'utilise le code suivant mais j'ai un soucis que je suppose venir de la ligne de code:
$sql = 'SELECT lastname,firstname,cb_telephone FROM jom16_comprofiler WHERE user_id = "$idform"';
<?php
$db = mysql_connect('*******', '*******', '*******'); 
mysql_select_db('*******',$db);

$user =& JFactory::getUser();
$idform = $user->id;
$sql = 'SELECT lastname,firstname,cb_telephone FROM jom16_comprofiler [color=#FF0000]WHERE user_id = "$idform"[/color]'; 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
$data = mysql_fetch_assoc($req);
 
if (!$user->guest) {

  echo 'Vs êtes connecté(e) en tant que ';
  echo '<b>' .$user->username . '</b><br/>';
  echo ' Nom: '.$data['lastname'].'<br>'; 
  echo ' Prénom: '.$data['firstname'].'<br>'; 
  echo ' Téléphone: '.$data['cb_telephone'].'<br>'; 
  echo ' Email: '.$user->email. '<br/>';
  echo 'n° utilisateur : ' . $user->id. '<br>';

  mysql_close();
}
?>
Comme résultat, j'obtiens:

Vs êtes connecté(e) en tant que username OK
Nom: champs vide ??
Prénom: champs vide ??
Téléphone: champs vide ??
Email: email OK
n° utilisateur : n° OK

Il n'arrive donc apparemment pas à interpréter la variable $idform car lorsque je remplace celle-ci par un numéro id, il me donne toutes les infos demandées.

Je vous remercie d'avance pour toute l'aide que l'on pourrait m'apporter!

ViPHP
xTG
ViPHP | 7331 Messages

07 oct. 2011, 15:59

Simple quote = aucune interprétation des variables
Double quote = interprétation des variables
^^
$test = "ok";
echo 'Test = $test'; // Test = $test
echo "Test = $test"; // Test = ok

Kathy
Invité n'ayant pas de compte PHPfrance

07 oct. 2011, 16:15

Merci pour cette réponse rapide xTG!

Par contre, je ne vois pas où cela pourrait causer problème dans mon code, le simple quote ou double.
C'est p-ê à force d'avoir le nez dedans depuis des heures que je ne le vois pas :? :)

ViPHP
xTG
ViPHP | 7331 Messages

07 oct. 2011, 16:21

$idform est une variable, une variable que tu utilises au sein de simple quote. La variable n'est donc pas interprétée, ce n'est qu'une chaîne de caractère. ;)

Ta requête doit donc être enserrée entre DOUBLE quote, et pour garder le côté correct pour le sgbd tu dois enserrer la variable entre simple quote (on n'utilise d'ailleurs jamais de double quote pour des strings dans une requête sql à ce qu'il me semble).

Kathy
Invité n'ayant pas de compte PHPfrance

07 oct. 2011, 16:34

Merci pour les explications!
Effectivement, ça change tout! Le code fonctionne correctement maintenant! :) Un tout grand merci pour cette aide précieuse et si rapide!