Mangeur de cigogne Hébergement du site en PHP et Mysql par WDMédia-hébergement
Vous aussi adpotez les éléPHPants de Vincent Pontier !


Rechercher dans le forum

Mots-clés :

Trouver :
un de ces termes tous les termes

Depuis :
7 j 15 j 30 j


Retour à l'index du forum

Contains ...

Message original de Daniel

Le : 19/11/2008 à 12:12:05

Dejà lu 202 fois avant vous

Bonjour tout le monde,

Je suis un super newbies en PHP.
j'essaie de faire une requete avec contains.

du genre

if $valeur contains 'valeur'
{
include (fichier1.php);
}
else
{
include (ffichier2.php);


il me semble qu'il est possible d'utiliser 'contains', mais je ne sais pas comment.
Je pense que ma syntaxe, n'est pas bonne, ou peux-etre qu'il existe un équivalent.

Pouvez vous m'aider?

Merci

Re: Contains ...

Réponse de luce

Le : 19/11/2008 à 13:42:56

Salut,

Ca ne serait pas :

if ($valeur == 'valeur')

... ?

Re: Contains ...

Réponse de Maljuna Kris

Le : 19/11/2008 à 13:54:12

Saluton,
Non ça doit être plutôt strpos().

Re: Contains ...

Réponse de Daniel

Le : 19/11/2008 à 14:34:00

Bonjour,


Avant tout merci pour vos réponses.

En faite non Luce, c'est pas $valeur == valeur.
parceque sur le site, chaque page a une valeur
ex:
page 1= 10
page 2 = 20
Page 3 = 30
etc


si quand je suis dans la page 1, je clique pour aller dans la page 3; j'aurai pour valeur
$valeur = 10-30.

c'est pour quoi je veux être capable de voir si ma valeur contient une valeur
donc ma requete serait

if $valeur contient "10"
{
include fichier.php
}
else
{
include fichier2.php
}



Sinon, je ne connais pas cette command Maljuna Kris.
Je vais faire une recherche sur ce qu'elle fait ;)

si vous avez d'autres idée :D

Merci

Re: Contains ...

Réponse de Maljuna Kris

Le : 19/11/2008 à 14:41:15

Désolé mais tu as tout faux.
Jamais tu de devrais te retrouver dans cette situation, tu devrais avoir deux variables $inf et $sup et comparer, un peu comme avec BETWEEN en SQL, if(($valeur >= $inf) && ($valeur <=$sup))

Re: Contains ...

Réponse de Daniel

Le : 19/11/2008 à 14:56:52

Merci d'avoir répondu.

Tu as surement raison, c'est pour ça que je dis que je suis un newbie en PHP.

Mais je vais tout de même t'expliquer correctement, pour que ce soit plus parlant.


en faite, je suis en train de monté un site de e-commerce (en local pour l'isntant), avec Oscommerce.
j'ai une base de données avec un catalogues, (catégories + articles)


donc imagines que j'ai un catalogue qui est réparti de la manière suivante:
boissons : (70)
- vins (81)
- soda (82)
- jus (83)

epicerie (71)
- conserve (84)
- biscuits (85)


image que quand je clique sur boissons puis sur vins, j'ai une valeur, qu'on appel cPath:= 70_81.
Cette valeur me permet aussi dans le header de me dire ou je me situe
catalogue => Boissons => Vins.

J'ai mis en place grâce a un script existant un menu déroulant.
le soucis c'est qu'il m'affiche
Boissons Epicerie et les sous catégories en dessous.


Je voudrais mettre en place, des icônes ou les internautes puissent cliquer directement sur boissons et que le menu déroulant affiche le contenu de cette catégories.

j'ai essayé en disant si $cpath == 70, tu donnes la valeur 70 à ma requete SQL.
le soucis c'est que a chaque chargement de page il contrôle la valeur de cPath et cette valeur chage tout le temps (ex: 70_81)
il ne m'affiche plus mon menu déroulant correctement.


C'est pourquoi je voulais faire une requete qui disent si $cPath contient 70, tu donnes la valeur 70 à la requete SQL.


Je sais pas si c'est plus clair ou plus compliqué, je sais par contre que depuis ce WE je suis bloqué dessus.


En tout cas, merci pour votre aide :)

Re: Contains ...

Réponse de Maljuna Kris

Le : 19/11/2008 à 15:01:53

Je croyais qu'il s'agissait d'un affichage par tranche de 10. D'où ma remarque précédente.
Donc strpos() va convenir dans ce cas.
Sauf que (j'écris n'importe quoi) dans '100-81' il y a '10' aussi

Re: Contains ...

Réponse de luce

Le : 19/11/2008 à 15:03:49

Re,

C'est assez chiant ton problème, parce que si tu demandes si 10 est contenu dans 20-100

il fait quoi ? Dans 100 il y a bien 10

Tu vois le merdier ?

Il faudrait une expression reguliere qui va chercher une valeur, qui ne contient aucun 0-9 avant et après cette valeur, et en plus, il faut mettre l'expression reguliere dans un $string puis lancer le preg_match($string)...

Et rien que d'y penser, je vois mal le bordel d'expression à sortir pour ça !

Re: Contains ...

Réponse de luce

Le : 19/11/2008 à 15:05:41

Non mais heu !

Tu as aussi pensé au 10 :-P

Par contre, j'ai l'idée de solution :-P

Maintenant, a ecrire, c'est la merdouille !

Re: Contains ...

Réponse de Daniel

Le : 19/11/2008 à 15:08:31

Merci pour ta réponses.

Effectivement il va falloir que je fasse gaffe a ça. :-S
je viens de faire une recherche rapide sur internet comment utiliser cette fonction dans une condition mais j'ai pas trouvé.
Est-ce qu'il faut écrire

if $cPath strpos(70)
{ ....
}


je continue mes recherches, mais si tu sais c'est sympa de me corriger.


Daniel

Re: Contains ...

Réponse de Daniel

Le : 19/11/2008 à 15:10:44

je viens de trouver comment contourner mon problème je pense

<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);


Merci

Daniel

Re: Contains ...

Réponse de Daniel

Le : 19/11/2008 à 15:33:09

C clair tu as bien raison, c'est un vrai merdier ....

Je sais pas comment faire :'(


Merci pour votre aide

daniel

Re: Contains ...

Réponse de luce

Le : 19/11/2008 à 15:56:46

:lol:

Ah non, ca c'est simple, c'est même du gateau, une expression reguliere, la c'est le merdier !

$string = "( [^0-9][-]?".$valeur."[-]?[^0-9])";
if (preg_match($string)) {
// include
} else {
//include2
}

Mais j'ai pas du tout tester, mais voila a quoi doit ressemble ce que tu cherches

Re: Contains ...

Réponse de luce

Le : 19/11/2008 à 16:10:28

J'ai fait quelques tests, mais j'y arrive pas...

Re: Contains ...

Réponse de Daniel

Le : 19/11/2008 à 16:17:55

Salut luce,

Merci pour ton aide.



Je pensais sinon faire différemment.
j'ai une base de données avec des catégories, des sous catégories , des sous-sous-catégories, ...


j'ai fait une requête qui regarde les sous catégories d'une catégorie avec un While,
si dans mon while je fais un echo $valrequete; il m'affiche toutes les catégories qui sont dedans. (ex: 70534165898)

par contre si je sors de mon while et que je fais un echo
il m'affiche que le premier donc 70 dans mon exemple.

Y a t'il une possibilité de dire a ma boucle d'envoyer cette valeur quelque part, de façon a s'incrémenter et non s'ajouter???


merci pour votre aide

Retour à l'index du forum


Ajouter une réponse

Nom :

Email :

Titre :

Message :

Combien font 3 + 2 ?

Mise en forme : gras = [b]...[/b], italic = [i]...[/i], souligné = [u]...[/u], citation = [quote]...[/quote], lien = [url]liens_externe[/url] ou [url nom=texte]liens_externe[/url], code source : [code]...[/code]

Recevoir les réponses par mail :
Oui Non

Mémoriser mon nom et mon email :
Oui Non

 

Charte des forums PHPDébutant

Bienvenue à vous,

Vous voici donc prêt à poster sur les forums de PHPDébutant. Avant toute chose, merci de prendre le temps de lire les quelques lignes qui suivent.

Attention, à partir du moment ou vous postez dans les forums, vous acceptez la présente charte. Si votre message est modéré ou supprimé, vous ne pourrez pas dire que vous n'étiez pas au courant des règles !

Pourquoi une charte

Le but de cette charte est simple : que ces forums restent cordiaux et que les personnes aidant les autres ne se sentent pas lésées, insultées, critiquées. Pour que ces forums fonctionnent, il faut des personnes qui répondent aux questions. Pour que celles ci restent sur le forum, il faut les traiter avec respect, et ne pas les confondre avec des bonnes poires, esclaves, etc...

Mesures de régulation

  • Un nouveau message ne disant pas bonjour, ou insultant, dont le titre est tout en majuscules, pourra être supprimé sans justification (raisons non limitatives).
  • Prenez le temps de vérifier que la question que vous allez poser n'a pas déjà été posée, à l'aide du formulaire de recherche.
  • Prenez également le temps de vérifier que la réponse à votre question ne se trouve pas dans les tutoriaux. Nous ne pouvons pas répeter pour chaque visiteur tous les cours, il sont écrits, profitez-en (dans l'ordre tant qu'à faire) !
  • Nous ne faisons pas de scripts tout prêts. Nous aidons et vous guidons pour que vous puissiez trouver vous même la réponse, ce qui est beaucoup plus formateur.
  • Si vous comptez poster un message publicitaire, abstenez-vous. Au mieux le message sera supprimé, au pire les habitués descendront votre service en flamme.
  • Pour tout message de recrutement, précisez bien votre demande. Inutile de poster pour trouver un développeur pour faire gratuitement votre site de webmastering qui vous rapportera plein de sous. Les seuls coups de mains donnés en développement sont pour des associations ou des sujets passionnant un développeur.
  • Toute personne tenant des propos racistes ou illicites sera bannie et pourra faire l'objet de poursuites.
  • L'humour étant très présent sur ces forums, ne réagissez pas violemment à des propos qui pourraient être à prendre au second degré et avec de l'humour.
  • Attention aux trolls ! Leur multiplication peut entraîner la mort des forums, et sans forum, plus d'aide !
  • Respectez les thèmes des forums. Pensez aussi à vérifier que votre message n'a pas été déplacé si vous le croyez effacé.

Conseils

  • N'oubliez pas que les personnes à qui vous vous adressez sont des bénévoles qui donnent de leur temps pour vous. Si vous êtes méchants avec eux, il n'aideront plus et vous n'aurez plus d'aide !
  • Ne soyez pas pressé. Nous avons une vie aussi, et nous ne sommes par forcément tout le temps disponibles.
  • N'oubliez pas que les smileys sont la pour faire comprendre l'humeur dans laquelle vous rédigez un message. Il est indispensable de mettre des smileys quand vous faites de l'humour, sinon le message pourrait être mal perçu (ca serait quand même idiot de plomber l'ambiance en faisant de l'humour !).
  • Surveillez votre orthographe, nous ne vous demandons pas d'être littéraire, mais que votre message soit au moins compréhensible. Evitez à tout prix le style SMS.
  • Expliquez clairement le problème, ce n'est pas toujours facile, mais mieux vaut essayer de le faire le plus possible.
  • Ne postez pas de questions trop vagues du genre "comment faire un forum". Cela ne sert à rien, cela ne s'explique pas sur un coin de forum.
  • Mettez un titre clair, correspondant au sujet que vous allez poster. A l'aide, au secours, etc... ne sont pas d'une grande utilité pour ceux qui vont vous aider. Parfois nous passons en coup de vent, et si nous ne savons pas ce que va contenir le message, nous ne le regarderons même pas.
  • Ne mettez par [URGENT] ou autre joyeuseté du genre dans vos titres de messages. Cela irrite les gens (il y'a plus urgent dans la vie, pensez aux gens qui meurent de faim ou ayant besoin des pompiers, ça c'est urgent), et vous n'aurez pas votre réponse plus vite pour autant.
  • Si vous connaissez déjà à quel domaine votre question d'adresse (par exemple mysql, html, php, javascript), n'hésitez pas à le marquer au début de votre message, avec un [html] par exemple (notez les minuscules).
  • Ne dites pas "ça marche pas". Il y a toujours des raisons. Je vous invite à consulter le tutorial "ça marche pas" qui vous aidera à mieux expliquer votre problème.
  • Ne postez pas 36000 lignes de code. Sur le forum, le code apparaît non coloré et sans indentation, ce qui est illisible. Au dessus de 5 lignes, plus personne ne lit et vous n'aurez pas de réponse. Utilisez le wall
  • En règle générale restez courtois et clair, n'oubliez pas que la politesse fait partie de la vie courante. Il est de bon ton de dire bonjour même pour une réponse, même plusieurs fois dans la journée (ceux qui vous lisent n'ont pas forcément lu vos autres messsages)

La Fin

Avec tout ces conseils vous augmenterez les chances de réponse, leur pertinence et leur rapidité

Voilà, ça sera tout, bonne écriture :)

Fermer les règles et poster un message


www.phpdebutant.org © 2009 - L'équipe de phpDebutant - Hébergement : WDMédia-hébergement