|
|
|
|
Configuration: Windows XP Internet Explorer 7.0
Bonjour.
C'est du php ? if ($mesvaleur = "")
{
$varw = $mesvaleur;
}
Le problème est là : SI (AFFECTER "" à $mesvaleur) ALORS AFFECTER $mesvaleur (qui vaut donc "") à $varw C'est une faute courante (quand j'ai un bug, c'est le premier truc que je vérifie :-O ) Pour effectuer une comparaison, il faut un double égal. if ($mesvaleur == "") |
merci pour cette réponse aussi rapide mais g fait une bourde :( ce n'est pas
if ($mesvaleurs ="") { $var = $mesvaleur; } mais if ($valeurs != "") { $var = $mesvaleur; } et même en mettant un == cela ne fonctionne pas non plus |
Pour débugger, mets des echo régulièrement, pour voir le contenu de tes variables.
Juste avant le 2ème point, affiche la valeur de $varw, et après affiche le contenu de $char et $enreg (voire des autres variables)... Au niveau de ta Mise en forme, tu essaies de faire quoi, au juste ? J'ai l'impression que tu te compliques la vie, là... |
Voila j'ai trouvé d'ou vient le problème lorsque je fais un echo sur mon switch, ma variable $varw récupère bien les infos dans la table et les affiche mais lorsque je fais un echo sur $varw dans mon if : là ma variable $varw est vide ; elle ne renvoie rien du tout . Je ne vois pas d'ou vient le problème , peut etre manque-t-il un bout de code qui permettrait de récupérer les infos de ma variable $varw dans mon switch?
Pour répondre à ta question macgawel , ma fonction est censée afficher les infos les unes en dessous des autres selon la longueur qui est indiquée dans ma table en gros cela donne : 1 nom de l'emmeteur 2 siret de la societe ..... et ce n'est pas moi qui veut le faire comme ca c'est mon patron . voila si quelqu'un à une solution ce serait vraiment géniale , pendant ce temps la je continue de chercher.
|
Oui tout mon code est bien dans le même fichier ; de plus je précise une petite chose dans ma table j'ai une colonne MESVALEUR et une MESCODE . Dans la colonne MESVALEUR , je n'ai qu'une seule valeur D1 et dans la colonne MESVALEUR j'ai toutes les valeurs qui sont dans le switch. Le but de mon ficher est que selon les infos de mon switch je récupère des infos par rapport à celle-ci dans d'autre table.
J'ai tester ce que tu m'a dis mais j'avais déjà essayer et il me retourne seulement la valeur D1 qui est dans la colonne MESVALEUR et $varw est vide. Voila en espérant que cela t'éclaire un peu car moi je sèche. |
Est-ce que tu peux faire un copier-coller de ton code, histoire d'avoir ce qui est vraiment demandé ?
Parce que tu donnes : if ($mesvaleur = "")
{
$varw = $mesvaleur;
}
puis mais if ($valeurs != "")
{
$var = $mesvaleur;
}
Sinon, rajoute dans ton code des echo et donne le résultat: $req = "SELECT * FROM messagese,oa,societe WHERE MESCODE='$mescode'
AND MESTYPENR='type1' AND OANOA='$noa'";
$res = mysql_query($req) or die ("erreur $req ");
while($mes = mysql_fetch_object($res))
{
// 1°) Remplissage de la valeur du champ
// -----------------------------------------------------------------------
$mesvaleur = $mes->MESVALEUR;
$mescode = $mes->MESCODE;
$socTabEm = array();
$socTabEm = getSociete($chargeur);
$cdeTabEm = array();
$cdeTabEm = getCommande($cdeId);
switch($mescode)
{
...
}
echo "varw après le switch = ".$varw.". ";
if ($mesvaleur != "")
{
echo "varw dans le IF = ".$varw." Et mesvaleur = '.$mesvaleur.". ";
$varw = $mesvaleur;
echo "varw après l'affectation = ".$varw.". ";
}
echo "varw après le IF = ".$varw.". ";
|
Déjà, la variable $varw n'est pas affectée dans ton SWITCH, vu que tu as :
varw après le switch = . Mets, avant le SWITCH un echo : echo 'mescode = '.$mescode;
switch($mescode)
{...
Soit ta variable $mescode n'a pas de correspondance dant ton SWITCH CASE, soit l'affectation ($varw = $socTabEm[6]; ) est foireuse. Et tu as bien copié/collé le code ? Parce que là : $mesvaleur = $varw ; c'est encore autre chose que tu fais...
|
Si tu as bien codé echo 'mescode = '.$mescode; et que tu obtiens mescode = varw , ça veut dire que $mescode = 'varw' (la variable $mescode contient la chaîne de caractères 'varw') ?!
Donc, on reprend les chose dans l'orde : 1. Regarde comment est faite ta requête, et passe-la dans phpMyAdmin : $req = "SELECT * FROM messagese,oa,societe WHERE MESCODE='$mescode' AND MESTYPENR='type1' AND OANOA='$noa'"; echo $req.'<br />'; Vérifie dans phpMyAdmin que ta requête rend bien le résultat que tu veux. Il y a peut-être un problème dessus (auquel cas tu ne passerais pas dans ta boucle WHILE). J'aurais tendance à l'écrire plutôt : $req = "SELECT * FROM messagese,oa,societe WHERE MESCODE='".$mescode."' AND MESTYPENR='type1' AND OANOA='".$noa."'"; 2. $mesvaleur = $mes->MESVALEUR; echo $mesvaleurs.'<br />'; $mescode = $mes->MESCODE; echo $mescode.'<br />';
|