restriction sur affichage

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 : restriction sur affichage

par renatane » 06 juin 2005, 13:08

Résolu!

En fait, j'ai oter ma requete principale du if, et dans cette requete.
Dans cette requete je faisait appel a $rouge et $jaune, des variables qui sont remplie dans mon if.
Donc, j'ai placé un else ou je donne la valeur "Tous" a mes variables,
else
{$rouge="Tous";
$jaune="Tous";
}
et comme ca, ca fonctionne bien.

Merci pour votre aide votre patience et vos conseils.

par renatane » 06 juin 2005, 13:03

avant et aprés mon if, les 2 variables ne contiennent rien quand j'ouvre la page.
Quand je fait des select, mes variables ne contiennent rien avant mais contiennett des trucs aprés.
c'est ce qui est voulu!

en fait, quand j'ouvre la page, il faudrai que les otpions soit "Tous", ca l'est dans mes menus (selected) mais dans le php ca ne l'est pas car je doit cliquer sur OK pour avoir mon affichage.

par mere-teresa » 06 juin 2005, 12:53

Parsème ton code de echo $tyup; aux endroits clés...
Genre
<?php echo "avant le if tyup contient : ".$tyup; ?>
avant le if et de la mm façon pendant,après, etc..

par renatane » 06 juin 2005, 12:49

$tyup tout comme $tyu contiennent les requlatats d'autres requetes.
Je remplis ces variables dans mon if . Je prend mes $_POST, je fait des requetes dessus et je transmet les resultats a ces 2 variables.

Quand je mes ma requete principale dans mon if j'ai cette erreur là:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/html/egroupware/workf/appli/archives.php on line 122

la ligne 122 c'est celle là:
while ($a_result = mysql_fetch_array($reqmpo, MYSQL_ASSOC))
cette ligne se situe aprés le if.


Et dés que je fait une selection , le warning disparait.

par mere-teresa » 06 juin 2005, 12:42

SELECT * FROM phpgw_workf_versions WHERE 1 = 1 AND id_service = '' AND id_instance = ''

Ma requete se forme de la sorte:
$reqm = "SELECT * FROM phpgw_workf_versions WHERE 1 = 1";
if ($rouge!="Tous")  $reqm .= " AND id_service = '".$tyu."'";
if ($jaune!="Tous") $reqm .= " AND id_instance = '".$tyup."'";
$reqmpo = mysql_query($reqm);
[/php]

Ma requete n'est pas a l'interieur de ce if. Est-ce que le problème peut venir de là?
quand je la place dans le if, j'ai des erreurs.
Quelles erreurs as-tu dans le if() ?
Et que contient $tyup ? A quel moment remplis-tu cette variable ?

par renatane » 06 juin 2005, 12:03

J'ai executer mes requetes et elle vont trés bien.

Par contre, lorsuqe j'affiche la requete crée lorsque la page s'ouvre seule (non apelée par elle même) j'ai ca:

SELECT * FROM phpgw_workf_versions WHERE 1 = 1 AND id_service = '' AND id_instance = ''

Ma requete se forme de la sorte:
$reqm = "SELECT * FROM phpgw_workf_versions WHERE 1 = 1";
if ($rouge!="Tous")  $reqm .= " AND id_service = '".$tyu."'";
if ($jaune!="Tous") $reqm .= " AND id_instance = '".$tyup."'";
$reqmpo = mysql_query($reqm);
Auparavant, je fait le controle pour savoir si ma page est apelée ou si elle s'apelle:
if (isset ($_POST['nom_service'],$_POST['date']))
{....
}
Ma requete n'est pas a l'interieur de ce if. Est-ce que le problème peut venir de là?
quand je la place dans le if, j'ai des erreurs.

par Cyrano » 03 juin 2005, 17:22

je redis ce que j'ai déjà mentionné plus tôt: fais afficher tes requêtes et tentes de les exécuter directement dans phpMyAdmin: tu sauras s'il y a un résultat que le problème est dans la récupération des données. Sinon, c'est qu'il y a un problème avec la requête: soit une erreur et tu auras un message, soit de mauvais critères et une requête correcte, mais pas d'informations correspondantes.

par renatane » 03 juin 2005, 16:58

génial!
now, je me calmerai qd j'aurai un pb parce que en suivant ton conseil, j'ai résolu un problème.

garder la tete froide et se poser clairement ce qui ne va pas.
fiouuu!

merci

Mais bon, y'a encore un bug et là j voit pas. Quand j'ouvre ma page, mon tableau est vide. Quand je fait des selections, ca va, mais au debut, mon tableau est vide.
Et si je selectionne l'otpion "Tous" ben ca marche aussi. Je comprend pas.

par Cyrano » 03 juin 2005, 16:25

Donc le problème remonte là: fais la même opération: affichage de la requête $rqla et test direct dans phpMyAdmin. C'est comme ça que tu vas débugguer, en remontant d'une erreur à l'autre et tu redescend doucement au fil des corrections.

par renatane » 03 juin 2005, 16:14

Merci de ta patience.

alors alors,

j'ai fait un echo de ma requete.
le voici:
SELECT * FROM phpgw_workf_versions WHERE 1 = 1 AND id_service = '

Donc je remarque que ma variable n'est pas passée .

Mais il y a un autre problème parce que ma page je l'ai ouverte seule, je l'ai pas apelée avec le bouton OK donc, normalement, dans ma requete je ne devrait pas avoir de "AND id_service...."

et quand je l'appelle du bouton OK, j'ai ce warning qui apparait:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/html/egroupware/workf/appli/archives.php on line 38
et la ligne 38, c'est celle là:
$resultla = mysql_query($rqla);
$uty=mysql_fetch_array($resultla, MYSQL_ASSOC);//38
$tyu=$uty['id_service'];

par Cyrano » 03 juin 2005, 16:07

Bon, ok, tu vas y aller par étape, tu n'as pas besoin nécessairement de nous mettre des tartines de code, ça ne sert pas forcément.

Quand tu as un problème parce que des données attendues d'une requête n'apparaîssent pas, il faut savoir pourquoi et s'arrêter avant d'aller plus loin.

Première chose, fais afficher la requête obtenue avec un echo() pour essayer de l'exécuter directement dans phpMyAdmin.

Reviens avec le retour. Mais de grâce, arrête avec le code pour le moment, on ira plus loin quand CE problème sera résolu.

par renatane » 03 juin 2005, 16:03

c pas du code pour rien, (a mon avis), là vous savez ce qui marche.
(on m'a di que c t compliqué et pas trés lisible, que mes variables n'etaient pas claires et qu'on s'y perdait, donc j'essaye d'expliquer plus clairement en donnant les codes avec leur "fonctionnalités")
now arrive la partie ou ca marche pas et que je ne sais pas corriger.

voici ce que j'ai changer (ajouté entre ces 2 parties de code données juste au desus); et ca ne marche plus. A l'affichage j'ai mon bouton select, mon bouton de validation du formulaire, et mon tableau , mais VIDE. et quand je choisit une option du select, ben ca change rien.

ici j'ai ajouté mon bouton OK pour valider le form

Code : Tout sélectionner

<INPUT TYPE='submit' name ='OK' VALUE='OK'> </form>
et ici, je fais des test pour voir si il y a eu des restrictions ou pas via le select
<?php
if (isset ($_POST['nom_service']))
{
$rouge=$_POST['nom_service'];

$rqla = "SELECT DISTINCT id_service FROM phpgw_workf_versions where nom_service=".$rouge;
$resultla = mysql_query($rqla);
$uty=mysql_fetch_array($resultla, MYSQL_ASSOC);
$tyu=$uty['id_service'];
}
et ici, je travail su ma requete.
$reqm = "SELECT * FROM phpgw_workf_versions WHERE 1 = 1";
if ($rouge!="Tous")  $reqm .= " AND id_service = '".$tyu."'";

par Cyrano » 03 juin 2005, 15:49

Moderation !
Hé wow stop ranatane, arrête de balancer du code pour rien, tu nous perds et on sait plus ce que tu veux à la fin...

par renatane » 03 juin 2005, 15:45

now, en debut de code, j'ai ajouté mon 1er select de tri sur les services(service est un champ de ma table.
voici son code:
<form name='tri' action='archives.php' method='post'>    
Service :
<select name='nom_service'><br>
<option value=Tous selected>Tous
<?php
include ("connexion.php");
connection ();
$rq = "SELECT DISTINCT nom_service FROM phpgw_workf_services ORDER BY nom_service";
$result = mysql_query($rq)
or die ("Exécution de la requête service impossible".mysql_error());
//DISTINCT permet d'afficher qu'une fois les données
//on liste tous les services de la table service.
while ($liste=mysql_fetch_array($result))
{extract($liste);  
echo "<option value=" .$nom_service.">".$nom_service."</option>\n";}
?>
</select>
Dans ce select, j'ai le choix "Tous" et les choix de ma table.


j'essaye de tout clarifié (pour vous comme pour moi parce que c vrai que c t le bordel)

par Cyrano » 03 juin 2005, 15:32

Tant mieux, mais si cette partie fonctionne, ce n'est pas celle-ci qu'il faut nous montrer, c'est l'autre, celle qui bafouille. Relis mon précédent message.