Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 23/05/2011, 11h43   #1
Membre du Club
 
Inscription : septembre 2009
Messages : 314
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 314
Points : 46
Points : 46
Par défaut Probleme avec array_search()

Bonjour a tous,

Comme le titre de mon sujet l'indique j'utilisais la fonction array_search(), afin de retrouver une chaîne dans un tableaux, cette fonction retournais l'emplacement du l'élément dans le tableau si il étais trouvé ou sinon retournais "o" ou "false".

Bref depuis peu elle me retourne constamment 'o' et ne rentre plus dans mon "if".

Il faut savoir que ma chaîne est un mélange de chiffre et de lettre.

J'ai bien vérifier que les chaîne étais identique, que les paramètre étais bien saisie, que mes variable n'étais pas nul, qu'il n'y avais pas d'espace glisser par une négligence lors de l’insertion dans le tableau.

Rien je ne trouve pas. Je me dis que la fonction est peu être obsolète, mais php.net ne le précise pas et je ne trouve pas d'équivalent.

Pouvez vous me fournir des information ou explication svp?

Merci d'avance pour vos lumières.
darkterreur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 11h46   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
o ? (zéro tu veux dire ?)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 11h46   #3
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Il nous faudrait un peu de code pour pouvoir t'aider
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 12h05   #4
Membre du Club
 
Inscription : septembre 2009
Messages : 314
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 314
Points : 46
Points : 46
Heu oui c'est fort possible désolé

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
34
35
36
37
38
39
40
41
42
if (isset($_SESSION['panier']))//si la session existe et n'est pas nul
						{	//on recupere le tableau en cession et on l'incremente avec les variables get/post
							$nb = $_SESSION['nb'];
							$panier = $_SESSION['panier'];
 
							echo "<script>
									alert ('Session existe !!');
									</script>";
							print_r($panier);
							echo "</br>mon produit".$id_prod."</br>";
 
							$trouve = array_search($id_prod,$panier);
							echo $trouve;
 
							if($trouve != NULL)//si le produit existe deja 
							{
								echo "<script>
									alert ('trouve !!');
									</script>";
 
								$tt_qte_com = $panier[$trouve+1] + $qte_command;
								if($tt_qte_com <= $qte_stock['QUANTITE_PROD_STOCK'])//si la quantité général d'un produit doit etre <= au stock
								{
									$panier[$trouve+1] = $panier[$trouve+1] + $qte_command;
								}
								else//sinon on redirige
								{
									$selection = $qte_stock['QUANTITE_PROD_STOCK'] - $panier[$trouve+1];
 
									if(isset($_GET['choix']))
									{	$choix = mysql_real_escape_string($_GET['choix']);	}
									else
									{	$choix = 0;	}
 
									$qte_prod_stock = $qte_stock['QUANTITE_PROD_STOCK'];
 
									echo "<script>
										alert ('Vous avez deja selectionné ".$panier[$trouve+1]." articles, et nous en avons que ".$qte_prod_stock." en stock. Vous pouvez selectionner que ".$selection." articles !! ');	
										document.location.href='acceuil.php?choix=".$choix."'
										</script>";
								}
							}
Alors je situe le contexte il s'agit de la gestion d'un panier client ou ce code dois , si le client a déjà acheter un article et retourne en prendre alors je ne fais pas plusieurs ligne dans mon tableau je retrouve mon produit et je cumule la quantité.
darkterreur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 12h46   #5
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
$panier n'aurait pas les id produit en clé ?
array_search() fait une recherche sur les valeurs et non les clés.
Utilises arra_key_exists() pour une telle recherche.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h09   #6
Membre du Club
 
Inscription : septembre 2009
Messages : 314
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 314
Points : 46
Points : 46
j'ai fait un
qui me retourne
Array ( [0]=>"maReference"[1]=>"maQuantite" )

J'ai tester votre idée avec array_key_exists(), mais cela ne fonctionne pas se qui me parait normal.
darkterreur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h56   #7
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Bordélique ce panier...
Comment peux-tu mettre plusieurs éléments dans le panier avec cette structure ?
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 15h18   #8
Membre du Club
 
Inscription : septembre 2009
Messages : 314
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 314
Points : 46
Points : 46
Oula des critiques .
Bon d'accord, alors dites moi tout car c'est vague je ne comprend pas.

Merci du temps que vous me consacrez.
darkterreur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 15h30   #9
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Bah disons que tu n'utilises pas le potentiel des arrays et que tu sembles stocker tes informations à la "comme tu peux"...
Tu as la structure suivante :
Code php :
1
2
3
4
5
6
array(
0 => id_1,
1 => quantité_id_1,
2 => id_2,
3 => quantité_id_2
);
Structure qui est assez moche et pas facile à gérer (pas de gestion de doublon, ect)...

Alors qu'il serait facile de faire :
Code php :
1
2
3
4
array(
id_1 => quantite_id_1,
id_2 => quantite_id_2
);
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 15h47   #10
Membre du Club
 
Inscription : septembre 2009
Messages : 314
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 314
Points : 46
Points : 46
Je vois.
C'est intéressant mais je ne l'ai jamais fait.

Cela peut fonctionner si mon id est une référence compilé entre nom de produit et la date , c'est a dire des lettre et des chiffres?
darkterreur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 15h58   #11
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Les clés des array PHP peuvent être des entiers ou bien des String.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 16h05   #12
Membre du Club
 
Inscription : septembre 2009
Messages : 314
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 314
Points : 46
Points : 46
Pensez vous que ce soit cela qui me pose problème? dans mon cas présent ? car cette fonction fonctionnais il y a quelque mois.

Cependant si vous pouviez me glisser un exemple que je puisse voir la syntaxe je serai bien content.

Merci d'avance
darkterreur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 16h16   #13
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Cela donnerait en gros :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (isset($_SESSION['panier']))
{
  if( isSet($_SESSION['panier'][$id_prod]) ) // Le produit existe déjà
  {
    $tt_qte_com = $_SESSION['panier'][$id_prod] + $qte_command;
    if($tt_qte_com <= $qte_stock['QUANTITE_PROD_STOCK'])//si la quantité général d'un produit doit etre <= au stock
    {
      $_SESSION['panier'][$id_prod] += $qte_command;
    }
    else // sinon on redirige
    {
 
    }
  }
}

PS : une fonction n'arrête pas de fonctionner du jour au lendemain sans modification de code.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan 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 15h06.


 
 
 
 
Partenaires

Hébergement Web