Agrandir, reduire, fermer...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Agrandir, reduire, fermer...

par zeus » 11 juil. 2007, 23:57

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

par DOFUS » 11 juil. 2007, 23:38

MERCI BEAUCOUP !! Spécialement à Sékiltoyai... Le résultat n'en est plus que magnifique le dernier petit problème à été résolu !!

Je t'envoi le résultat par MP !!!

par Sékiltoyai » 11 juil. 2007, 23:34

Utilise un if vu que tu ne sélectionnes qu'un enregistrement...

par dofus » 11 juil. 2007, 22:53

Bonsoir, j'ai eu une petite aide à grace au site phpdebutant.org que je fréquentait assé souvent...

je pensse cette fois que se code va fonctionner :
$test = mysql_query("SELECT etat FROM fenetre WHERE name = '$now' AND id = '$id'") or die ('Erreur de selection ERREUR 100 '.mysql_error());

while($data = mysql_fetch_assoc($test)) 
    { 
$cadsh = $data['etat'];
    } 

if($cadsh == "b1")
{

par dofus » 11 juil. 2007, 19:30

Je sais bien qu'il ne faut pas faire des rappel... Mais qi quelqu'un à une idée ce serai bien...

Merci...

par dofus » 11 juil. 2007, 18:22

Grace à ça je vias pouvoir finir mon script, j'avais utilisé un code une fois mais beaucoup trop long pour faire cette même opération (avec while)...

par dofus » 11 juil. 2007, 18:01

Oui je devrait utilisé REPLACE, mais je vais d'abord me renseigné sur php manuel de son fonctionnement intern...

merci

Pour la dernière page si je peut formuler ma question plus simplement :

Comment retrouné la valeur d'un champs dans une variable ??

par dofus » 11 juil. 2007, 17:56

A présent je travail sur la dernière page de la session MAIS le cas est légerment différent...

Cette fois-ci je veut toujours retouner la valeur d'UN seul champs (ce qui ne change pas) mais cette fois je veut que la valeur retourné soit la valeur d'une variable...

Comment utilisé mysql_fetch_array ??
$test = mysql_query("SELECT etat FROM fenetre WHERE name = '$now' AND id = '$id'") or die ('Erreur de selection ERREUR 100 '.mysql_error());

<<----\\ mysql_fetch_array // ---->>

if($test == "b1")
{
}
elseif($test == "b2")
{
}
elseif($test == "b3")
{
}
Merci...

par Sékiltoyai » 11 juil. 2007, 17:17

C'est dommage tout de même que tu fasses 2 requètes alors que tu ne pourrais n'en faire qu'une avec un REPLACE...

par dofus » 11 juil. 2007, 17:12

Merci...

Il manquait juste le point d'exclamation devan t mais sinon sa marche trés bien j'ai fait tout les teste dessus (tout les cas) il fonctionne trés bien ce code !!
<?php

$db = mysql_connect('', 'root', '')  or die ('Erreur de connexion ERREUR 100 '.mysql_error());
mysql_select_db('db202917875',$db) or die ('Erreur de selection ERREUR 200 '.mysql_error());

$now = "0001";
$eow = "b3";
$id = "dofus";

$test = mysql_query("SELECT id FROM fenetre WHERE name = '$now' AND id = '$id'") or die ('Erreur de selection ERREUR 300 '.mysql_error());

if(!mysql_fetch_array($test))
{
mysql_query("INSERT INTO fenetre (name,etat,id) VALUES ('$now','$eow','$id')") or die ('Erreur de selection ERREUR 300 '.mysql_error());
}
else
{
mysql_query("UPDATE fenetre SET etat = '$eow' WHERE name = '$now' AND id = '$id'") or die ('Erreur de selection ERREUR 500 '.mysql_error());
}

mysql_close();

header('location:../index.php')

?>

par Sékiltoyai » 11 juil. 2007, 16:56

Mais je ne suis pas sur que la façon don j'ai utilisé mysql_fetch_array ne fonctionne...

Fallait-il un while ?
D'habitude, il faut utiliser une boucle puisqu'il y a souvent plusieurs ligne à récupérer, mais ici c'est inutile, tu veux juste savoir s'il y a un enregistrement, donc ca suffit :
if(mysql_fetch_array($test))
{
mysql_query(...)
}
else
{
mysql_query(...)
}

par dofus » 11 juil. 2007, 16:37

Merci bien j'essai s'incérement de suivre, de prendre de la graine...
Bon d'aprés ta réponse trés bien formulé...J'ai repris mon code...

Mais je ne suis pas sur que la façon don j'ai utilisé mysql_fetch_array ne fonctionne...

Fallait-il un while ?
<?php

$db = mysql_connect('', 'root', '')  or die ('Erreur de connexion ERREUR 100 '.mysql_error());
mysql_select_db('db202917875',$db) or die ('Erreur de selection ERREUR 200 '.mysql_error());

$now = "0001";
$eow = "b2";
$id = "dofus";

$test = mysql_query("SELECT id FROM fenetre WHERE name = '$now' AND id = '$id'") or die ('Erreur de selection ERREUR 300 '.mysql_error());
while($testb = mysql_fetch_array($test)) 
{ 
$testa = $testb[0]; 
}

if($testa == "")
{
mysql_query("INSERT INTO fenetre (name,etat,id) VALUES ('$now','$eow','$id')") or die ('Erreur de selection ERREUR 300 '.mysql_error());
}
else
{
mysql_query("UPDATE fenetre SET etat = '$eow' WHERE name = '$now' AND id = '$id'") or die ('Erreur de selection ERREUR 500 '.mysql_error());
}

mysql_close();

header('location:../index.php')

?>
Merci...

par Sékiltoyai » 11 juil. 2007, 16:21

Je t'assures que ce que tu veux faire ici dans ce code est absolument équivalent à ma requète (avec une clé primaire bien définie).
Ensuite, tu fais de très grosses erreurs.
$test = mysql_query("SELECT id FROM fenetre WHERE name = '$now' AND id = '$id'") or die ('Erreur de selection ERREUR 300 '.mysql_error());

if($test == "")
{ 
Comme je t'ai déjà dit, mysql_query() retourne un identifiant de resource pour les requètes SELECT, ca n'a absolument aucun sens de comparer cette valeur de retour à une chaine vide "". Cet identifiant, il sert juste pour les autres fonctions de la bibliothèque mysql ( mysql_fetch_array(), mysql_free_result() ).
Pour savoir si on a eu un résultat, on utilise mysql_fetch_array() qui retourne un tableau s'il reste un enregistrement à retourner, et false sinon.
mysql_query("UPDATE fenetre SET id = '$id' AND name = '$now' AND etat = '$eow' WHERE name = '$now' AND id = '$id'")
C'est trois quarts de la requète sont inutiles tu cherches les enregistrments qui ont l'id $id et le nom $now, et tu fixes id à $id et nom à $now, donc tu ne changes absolument rien ici. Le seul truc qui est utile dans la clause SET, c'est de fixer etat à $eow.
Enfin, normalement tu devrais avoir eu une erreur, parce que dans les clauses SET, on utilise des virgules et non des AND.


Bref, j'essaye de t'aider, je te donne des solutions, mais si tu refuses mon aide, tu peux le dire tout de suite, j'ai plein d'autres trucs intéressants à faire. Bref, pour régler ton problème avec mon code parce que tu n'a pas été précis, si tu ne veux pas que mon code te crée un nouvel enregistrement à chaque fois, il faut que tu crées une clé primaire sur id et nom (je pense que phpmyadmin sait faire ca, si tu n'y arrives pas, reviens me voir, j'irais chercher la requiète.

par dofus » 11 juil. 2007, 15:52

Me revoilà...

Je vie d'essay un autre code asser courts qui ne fonctionne pas non plus,il n'affiche pas d'erreur non plus...
<?php

$db = mysql_connect('', 'root', '')  or die ('Erreur de connexion ERREUR 100 '.mysql_error());
mysql_select_db('db202917875',$db) or die ('Erreur de selection ERREUR 200 '.mysql_error());

$now = "0001";
$eow = "b2";
$id = "dofus";

$test = mysql_query("SELECT id FROM fenetre WHERE name = '$now' AND id = '$id'") or die ('Erreur de selection ERREUR 300 '.mysql_error());

if($test == "")
{
mysql_query("INSERT INTO fenetre (name,etat,id) VALUES ('$now','$eow','$id')") or die (mysql_error()) or die ('Erreur de selection ERREUR 400 '.mysql_error()); 
}
else
{
mysql_query("UPDATE fenetre SET id = '$id' AND name = '$now' AND etat = '$eow' WHERE name = '$now' AND id = '$id'") or die ('Erreur de selection ERREUR 500 '.mysql_error());
}

mysql_close();

header('location:../index.php')

?>

par Sékiltoyai » 11 juil. 2007, 00:53

S'il a déjà créé un enregistrement, tu mets un champ à jour, quelle est la nature de cette mise à jour ?
Et là je t'ai juste donné la requète qui met les données à jour, pour sélectionner les données, il te faut un SELECT.