Probleme traitement de chaine

cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012 - 26 févr. 2004 à 19:27
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012 - 29 févr. 2004 à 16:45
Yep all

en fait j'ai un formulaire. Voila le code html:

<form name="form1" method="post" action="valid.php">



</form>

en fait j'aimerai fair eune condition pour vérifié sur la variable name contient la chaine : valid_

donc g fé

if (strpos($name,'valid_') !== false) {
echo 'tout beigne valid_ detecter
';
}
if (strpos($name,'valid_') === false) {
echo 'pas de valid_ detecter
';
}

mais ca m'affiche tout le temps pas de valid_ detecter alors que j'appuye bien sur Valider et que le formulaire envoie $name...

merci d'avance c sympas ;)

(ps: g bien looker pou rla fonction strpos: http://fr2.php.net/manual/fr/function.stripos.php )

:-p :-p :-p :-p :-p :-p :-p :-p :-p :-p :-p :-p :-p :-p :-p

24 réponses

davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
26 févr. 2004 à 20:16
lu !!

je ne vois pas ouest definie ta variable name!!
ce que je vois, c'est une variable valid_1 qui est définie, ou une variable supr1.

pour faire un variable name, voila comment je ferai:

<form name="form1" method="post" action="valid.php">

</form>


-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
26 févr. 2004 à 21:21
essai avec
if (strpos($name,'valid_') != false) {
echo 'tout beigne valid_ detecter
';
}
else
{
echo 'pas de valid_ detecter
';
}

ca devrais marcher

pour info :
: pour vérifier que var1=var2!: vérifier que var1 n'est pas a var2
= : pour vérifier que var1 = var2 et que c'est du meme type!: pour vérifier que var1 n'est pas a var2 ou qu'ils ne sont pas de meme type

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
26 févr. 2004 à 21:34
IL est vrai que ton form est bizard tout de meme utilise le form de davwart et revois la facon de penser

Mais je vois pas l'utilité de

je ferais plus un truc du style
<form name="form1" method="post" action="valid.php">



</form>

et pour le traitement tu fais
if ($name=="Valider")
{
//valider la ligne $No
}
else if ($name=="Delete")
{
//sup de la ligne $No
}

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
26 févr. 2004 à 21:55
c clair.. perig a raison. teste et dis nous ce que ça donne.
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
26 févr. 2004 à 22:51
Tout beigne impec g refais la facon dont je tratais le formulaire et simplifier le formulaire en sois. :) j'aimerai juste comprendre le == prk j'ai pas trop pigé :\\ g mit 1 seul = ca a pas marché a pres g essayer avec 2 ca a marché ! merci d'avance =) :-p
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
26 févr. 2004 à 23:06
lol

1x = , ça permet d'affecter une valeur
donc si tu fais
$var1=3;//$var1 prend la valeur 3
$var2=4;//$var2 prend la valeur 4
et donc si tu fais
if ($var1=$var2) //il va donner à $var1 la valeur de $var2 (on aura donc 4 dans $var1)
et le if ici donnera toujours vrai

en revanche si tu fais 2x =
if($var1==$var2) //comme $var1=3 et $var2=4, c'est différent donc ça donnera faux et les variables garderont leurs valeurs initiales
donc pour résumé
1x = : affectation de valeur
2x = : comparaison de 2 valeurs
3x = : comparaison de 2 valeurs et en meme temps vérifie si c'est les meme types (long, int, char, ...)

Je sais pas si c'est clair!!!!

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
27 févr. 2004 à 11:49
Lol chui un ane! :D:D vi je viens de comprendre lol ;) merci pour ton explication j'ai tout comprit! =) PAr contre je sais po comment on peut selectionné la 2em "entrée" du tableau mysql_fetch_array

sachant que:

$sql = mysql_query("SELECT view,section,rituel,titre,auteur,date,type,niveau,ingredients,risques,notes from article_valid") or die ("Erreur Mysql :".mysql_error());

$rs = mysql_fetch_array($sql,MYSQL_ASSOC)

;) merci d'avance coco :-p :-p :-p :-p :-p :-p :-p :-p
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
27 févr. 2004 à 16:55
Bon alors !!!

Quand tu lance une requête sql
$sql = MYSQL_QUERY("SELECT...");

Tu récupère dans la variable $sql des infos non exploitables.
Donc on utilise
$rs = MYSQL_FETCH_ARRAY($sql,MYSQL_ASSOC);

Cette fonction va mettre en forme les résultats sous forme d’un tableau mais juste pour une ligne
Donc pour récupérer la 2e ligne il faut à nouveau écrire
$rs = MYSQL_FETCH_ARRAY($sql,MYSQL_ASSOC);

Et pour scanner tous les résultats tu fais
While($rs = MYSQL_FETCH_ARRAY($sql,MYSQL_ASSOC))
{
...
}


et dans le while tu as ta fonction de traitement des données (affichage, …)

Par exemple, dans ton cas, pour afficher pour chaque ligne le nom des rituels, tu fais :

$sql = MYSQL_QUERY("SELECT view,section,rituel,titre,auteur,date,type,niveau,ingredients,risques,notes FROM article_valid")

while($rs = MYSQL_FETCH_ARRAY($sql,MYSQL_ASSOC))
{
print $sql[‘rituel’]. « 
 »
}


ps : si tu veux récupérer tout ce qu’il y a dan la table article_valid alors utilise
$sql = MYSQL_QUERY("SELECT * from article_valid") or die ("Erreur Mysql :".MYSQL_ERROR());

Et comme tu as remarqué les fonctions MYSQL en général on les écrit en majuscules pour la lisibilité.

Encore une fois je sais pas si mon explication est très claire

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
27 févr. 2004 à 22:10
lol tu m'aide deja pas mal et tu te donne de la peine c gentil ! mais en fait j'ai une collone id avec un id special a chaque INSERT dans ma table. Et j'aimerai savoir comment je pourrai m'y prendre pour supprimé le 2em INSERT...

moi g penssé a faire une boucle while sur un mysql_fetch_array pi j'incremente une variable et quand cette variable est egale a 2 bé je chope l'id de l'article et je fé une requete du style DELETE FORME WHERE ID = l'id de l'article enfin je m'exprime mal mais je v essayer ca encore merci pour ton aide! @pluche
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
27 févr. 2004 à 22:19
la en fait j'aimerai selection le champ id de la 2em ligne de ma table . comment je pourrai m'^y prendre? si j'arrive a faire ca bé c tout bon apres normalement... lol :-p :)
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
27 févr. 2004 à 22:40
Je suis pas sur d'avoir compris ce que tu cherche a faire
mais vu l'explication je ferais:

$sql = mysql_query("SELECT * FROM article_valid");
$rs = mysql_fetch_array($sql,MYSQL_ASSOC);
$rs = mysql_fetch_array($sql,MYSQL_ASSOC);
mysql_query("DELETE FROM article_valid WHERE ID='".$rs["ID"]."'");
mais la ca suprime juste la 2e ligne et rin d'autre
je pense pas que c'est ca que tu veux si?

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
27 févr. 2004 à 22:43
lol g essaye ce code mais ca me met une erreur a la ligne 12 sois:
if ($choix 'Delete') && ($id2 $id)) {

le code entier c:

<?
include('connection_mysql.php');
mysql_select_db('article_valid');
$sql = mysql_query("SELECT view,section,rituel,titre,auteur,date,type,niveau,ingredients,risques,notes from article_valid") or die ("Erreur Mysql :".mysql_error());
$id2 = 0;
while($tb = mysql_fetch_array($sql,MYSQL_ASSOC)) {
$id2++;if (($choix 'Valider') && ($id2 $id)) {
//code a éxécuté mysql pour valider la selection (validation)
}if ($choix 'Delete') && ($id2 $id)) {
$var = "".$sql['id']."";
$sql = "DELETE FROM `article_valid` WHERE id="$sql";
}

}
?>

enfin ché meme pas si tu pige se que gsay de faire lol!

enfin va look la si tu pige pas trop. :)

http://www.diablus.com/articles_POWER/admin0/
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
27 févr. 2004 à 22:45
lol t rapide je lit ton post la ;)
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
27 févr. 2004 à 23:14
g changé mon code pour:

<?
include('connection_mysql.php');
mysql_select_db('article_valid');
$sql = mysql_query("SELECT view,section,rituel,titre,auteur,date,type,niveau,ingredients,risques,notes from article_valid") or die ("Erreur Mysql :".mysql_error());
$id2 = 0;
while($tb = mysql_fetch_array($sql,MYSQL_ASSOC)) {
$id2++;if (($choix 'Valider') && ($id2 $id)) {
//code a éxécuté mysql pour valider la selection (validation)
}if ($choix 'Delete') && ($id2 $id)) {
mysql_query("DELETE FROM article_valid WHERE ID='".$tb["id"]."'");
}

}

mais dans ton code:

mysql_query("DELETE FROM article_valid WHERE ID='".$tb["id"]."'");

la syntaxe de fin me parait zabir tu commence avec un ' et fu finit avec un "
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
27 févr. 2004 à 23:38
C'est normal que :
if ($choix 'Delete') && ($id2 $id)) 

ne marche pas,
il faut faire
if (($choix "Delete") && ($id2 $id)) 


sinon moi je ferais
pour la page d'affichage de tout les rituels

$sql = MYSQL_QUERY("SELECT * FROM article_valid");
while($tb = MYSQL_FETCH_ARRAY($sql,MYSQL_ASSOC)) 
{
print $tb["titre"];
 ...
 .../avec la mise en forme 
 ...
 print "
  <form name='form1' method='post' action='valid.php'>
   
   
   
  </form>
 ";
}


et dans valid.php:
if ($choix=="Delete")
{
MYSQL_QUERY("DELETE * FROM article_valid WHERE ID='$id'");
}
elseif ($choix=="Valider")
{
//validation
}

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
27 févr. 2004 à 23:44
Quand je fais des truc du style
mysql_query("DELETE FROM article_valid WHERE ID='".$tb["id"]."'");


C'est juste que ce qui est dan sle MYSQL_QUERRY doit étre une chaine donc pour insérer une varible dedans soit je fais (si la var est $tb)
"DELETE FROM article_valid WHERE ID='$tb'"

mais si la var c'est $tb["id"]
alors il risque de finir la chaine devant id car je referme les "
je fais donc :
"DELETE FROM article_valid WHERE ID=' ".$tb["id"]." ' "


---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
28 févr. 2004 à 13:19
Yep ! encore merci pour ton aide. Sinon ton idee est pas mal! c beaucoup plus simple en plus s! mais g un chti prob! lol

en mettant en index.php :

<?
include('connection_mysql.php');
mysql_select_db('article_valid');
$sql = mysql_query("SELECT view,section,rituel,titre,auteur,date,type,niveau,ingredients,risques,notes from article_valid") or die ("Erreur Mysql :".mysql_error());
while($rs = mysql_fetch_array($sql,MYSQL_ASSOC)) {
$rituel = "".$rs['rituel']."";
echo "
$id
Titre: ".$rs['titre']."

Difficulté: ".$rs['niveau']."

Ingrédients: ".$rs['ingredients']."

Risques: ".$rs['risques']."

Auteur: Auteur bidon



Le rituel: ".str_replace("\'","'","$rituel")."



<form name ="form1" method="post" action="valid.php">



</form>


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

";
}
?>

bé dans la source de ma page la value del'input id bé est vide ca me genere ca en html:



remarque le champ ip existe bien dans ma bdd!
>:)
>:)
>:)
>:)

:-p

merci d'avance!
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
28 févr. 2004 à 13:21
je precice aussi que le champ id est en autoincrement donc il y a bien un chiffre dans le champ id pour chaque rituel mais bon ca me parrait byzare prk ta syntaxe est juste!
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
28 févr. 2004 à 19:41
Alors 2 choses :
dans ta requette sql tu va pas cherche id donc ca risque pas de marcher
fais plutot
$sql = mysql_query("SELECT * from article_valid") or die ("Erreur Mysql :".mysql_error());

et vérifi que le nom du champ id est bien en minuscule dans ta base sinon $rs["id"] ne vas pas marcher.

ps: ca sert a quoi : ??? je connais pas ^_^*

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
29 févr. 2004 à 01:11
Strong c pour le gras lol! ^^* :D

mé euh tout beigne! ma fonction supprimé marche impec! mais la j'ai un ti prob moins chiant a resoudre.

<?
include('connection_mysql.php');
mysql_select_db('article_valid');
$sql = mysql_query("SELECT * from article_valid") or die ("Erreur Mysql :".mysql_error());
$id2 = 0;
while($rs = mysql_fetch_array($sql,MYSQL_ASSOC)) {
$id2++;if (($choix 'Valider') && ($id2 $id) && ($rs['section'] == 'Rituels Noir')) {
echo "ca va dans rituel noir";
}if (($choix 'Valider') && ($id2 $id) && ($rs['section'] == 'Rituels Blancs')) {
echo "ca va dans rituel blanc";
}if (($choix 'Delete') && ($id2 $id)) {
echo "tu as cliqué sur delete pour l'id: $id ";
$sql = "DELETE FROM article_valid WHERE ID='".$id."'";
echo "$sql";
mysql_query("$sql");
}

}
?>

j'ai 2 rituel le premier est Rituel noir 2em Rituel blanc
quand je clique sur valider du 1er rituel ca me met bien sur Rituel noir comme prévu mais quand je clique sur valider du 2em rituel ca me aussi rituel noir!

c du a la suite de 2 if consécutif? ou .. je c po en tout cas j'ai pas mit que 1 = :D:D:D:D
0
Rejoignez-nous