Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/02/2011, 16h27   #1
Membre régulier
 
Avatar de camyo
 
Inscription : juin 2004
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2004
Messages : 213
Points : 70
Points : 70
Par défaut opérateurs OU inclusif/excusif

Bonjour,


Je dois avouer ne pas comprendre ou j'ai raté mon coup,
ça a l'air tout bête et ça doit l'être ... mais quand on a le nez dans le guidon, des fois y'a des trucs simple qu'on voit pas
(enfin, a moi , ça arrive ... )

je m explique ..
je fais un test simple :
Code :
1
2
if (!isset($ref) or $ref != $tab[0] )  // Si ID de commande n'existe pas ou qu'il est diffèrent du précédent
		{ // CODE A EXÉCUTER }
Donc : SI $ref n'existe pas OU $ref est differnt de $tab[0]
j'exécute mon code ..

MAIS ... il se passe ça :
Citation:
if (!isset(081213170536CAS) or 081213170536CAS != 081213170536CAS )
ça exécute quand même mon code ..

Quelqu'un comprendrait pourquoi ?
camyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 16h31   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
Salut,

C'est simple : penses aux parenthèses :
Code :
if (( ! isset($ref)) || ($ref != $tab[0]))
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 16h39   #3
Membre régulier
 
Avatar de camyo
 
Inscription : juin 2004
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2004
Messages : 213
Points : 70
Points : 70
j'y au cru .. j'ai testé .. mais le code s'exécute quand même ...

Citation:
if ((!isset(081213170536CAS)) || (081213170536CAS != 081213170536CAS ))
camyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 16h47   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
Ah bon, alors essaies ça :
Code :
if (( ! isset($ref)) || (((string)$ref) != ((string)$tab[0])))
Tu as peut-être aussi une existence de $ref.
Code :
if ((strlen($ref) == 0) || (((string)$ref) != ((string)$tab[0])))
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 16h53   #5
Membre régulier
 
Avatar de camyo
 
Inscription : juin 2004
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2004
Messages : 213
Points : 70
Points : 70
Ca ne donne rien non plus ...

ça à l'air tout simple .. et pourtant ça veux pas ...

vraiment, je comprend pas ...
camyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 16h57   #6
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
Il faut creuser,

Tu dois sortir les longueurs et les valeurs des différentes variables avant l'exécution du test : $ref et $tab[0] histoire de bien voir ce que tu manipules avant le if.
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 17h00   #7
Membre régulier
 
Avatar de camyo
 
Inscription : juin 2004
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2004
Messages : 213
Points : 70
Points : 70
Mon code en entier ..

le but étant d'importer des CSV, ( des commandes)
si la ref client existe, sauter l'étape ajout de compte client
( une commande peux prendre autant de ligne que d'articles)

donc le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// TABLE CLIENT		
		if ((strlen($ref) == 0) || (((string)$ref) != ((string)$tab[0])))  // Si la ref client n'existe pas ou qu'elle est differente de la precedente
		{
				//$id = $tab[0];
				$ref = $tab[0];
				$raison = $tab[1];
				$entreprise = $tab[2];
				$siret = $tab[3];
				$intracom = $tab[4];
				$nom = $tab[5];
				$prenom = $tab[6];
				$telfixe = $tab[7];
				$telport = $tab[8];
				$email = $tab[9];
				$motdepasse = $tab[10];
				$parrain = $tab[11];
				$type = $tab[12];
				$poucentage = $tab[13];
				$jour = $tab[14];
				$mois = $tab[15];
				$annee = $tab[16];
				$anniv = $tab[17];
				$lang = $tab[18];
				$fbpays = $tab[19];
				$province = $tab[20];
 
 
		$sql =" INSERT INTO client (id, ref, raison, entreprise, siret, intracom, nom, prenom, adresse1, adresse2, adresse3, cpostal, ville, pays, telfixe, telport, email, motdepasse, parrain, type, pourcentage, jour, mois, annee, anniv, lang, fbpays, province) 
		VALUES ('','".$ref."', '".$raison."', '".$entreprise."', '".$siret."', '".$intracom."', '".$nom."', '".$prenom."', '".$adresse1."', '".$adresse2."', '".$adresse3."', '".$cpostal."', '".$ville."', '".$pays."', '".$telfixe."', '".$telport."', '".$email."', '".$motdepasse."', '".$parrain."', '".$type."', '".$pourcentage."', '".$jour."', '".$mois."', '".$annee."', '".$anniv."', '".$lang."', '".$fbpays."', '".$province."') ";
		$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());	
 
	$id_client = mysql_insert_id(); // <= dernier ID table client
	}
ça semble évident .. et pourtant y'a un bug ..
camyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 17h04   #8
Membre régulier
 
Avatar de camyo
 
Inscription : juin 2004
Messages : 213
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2004
Messages : 213
Points : 70
Points : 70
Citation:
Envoyé par Xysyo Voir le message
Il faut creuser,

Tu dois sortir les longueurs et les valeurs des différentes variables avant l'exécution du test : $ref et $tab[0] histoire de bien voir ce que tu manipules avant le if.
je me suis dis ça aussi c'est pour ça qu'avant l'exécution du script j'ai ajouté:
Code :
echo "if ((strlen($ref) == 0) || (((string)$ref) != ((string)$tab[0]))) ";
sur mon test ça donne :
ligne 1 ( $ref n'existe pas, donc il ne peux être égal à $tab[0]
Citation:
if ((strlen() == 0) || (((string)) != ((string)081213170536CAS)))
ligne 2 la ref existe et c'est la même
Citation:
if ((strlen(081213170536CAS) == 0) || (((string)081213170536CAS) != ((string)081213170536CAS)))
... i'm lost
camyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 17h28   #9
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
tu as un problème avec tes données parce qu'un test aussi simple passe sans problème chez moi :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
 
# TEST 1
$ref = '081213170536CAS';
$tab[0] = '081213170536CAS';
 
if ((strlen($ref) == 0) || ($ref != $tab[0])) {
   echo 'different';
} else {
   echo 'identique'; // -> affiché
}
 
# TEST 2
$ref = '';
$tab[0] = '081213170536CAS';
 
if ((strlen($ref) == 0) || ($ref != $tab[0])) {
   echo 'different'; // -> affiché
} else {
   echo 'identique';
}
 
# TEST 3
$ref = '123456789';
$tab[0] = '081213170536CAS';
 
if ((strlen($ref) == 0) || ($ref != $tab[0])) {
   echo 'different'; // -> affiché
} else {
   echo 'identique';
}
 
?>
Donc si le if s'exécute, c'est que tu manipules des données qui vérifient le test.
Tu parle de CSV -> comment tu découpes tes lignes, tes données ? Quel est l'encodage du fichier, n'aurais-tu pas des caractères foireux en fin de ligne qui poseraient problème ? ...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h55.


 
 
 
 
Partenaires

Hébergement Web