Afficher ou masquer un bouton selon le champ du dessus

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 mars 2011, 23:26

que donne un var_dump($req); ?
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 15 Messages

18 mars 2011, 06:15

Bonjour,

Désolé je n'ai pas pu repasser avant cause inondations dans le sud.

Encore une fois je suis largué, comment utiliser le dump ??????

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 mars 2011, 10:05

Salut,

Tu met juste la ligne suivant le mysql_query
var_dump($req);
ca va t'afficher ce que contient la variable (type et valeur)

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 15 Messages

18 mars 2011, 14:19

Bonjour,

Je viens de tester, le bouton refuse toujours de disparaître et l'erreur affichée a légèrement changé :

resource(5) of type (mysql result)
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mnt/sdd/f/securite/securisations.php on line 149

J'ai actuellement :

<?php
$base = mysql_connect ("", "", "");
mysql_select_db ('secu1', $base);
$requete = "SELECT NOM1 FROM secu1 WHERE NOM1=''";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql..mysql_error());
var_dump($req);
$NOM1 == "NOM1";
if (mysql_num_rows($NOM1)==0)
{
print "<form name='boutons'>.......

Eléphanteau du PHP | 15 Messages

20 mars 2011, 11:54

Bonjour,
A force de bidouiller et de triturer les codes dans tout les sens, j'ai un peu avancé, mais je me retrouve coincé.
J'ai maintenant deux situations !

Situation 1 : L'enregistrement des valeurs envoyées se font bien via la page "sécu1" dédiée mais le bouton refuse de disparaître si une valeur est présente !
De plus j'obtiens toujours le même message d'erreur cité plus haut !

Code : Tout sélectionner

<?php $base = mysql_connect ("", "", ""); mysql_select_db ('secu1', $base); $requete = "SELECT NOM1 FROM secu1 WHERE NOM1=''"; $req = mysql_query($sql) or die('Erreur : '.mysql_error());var_dump($req); $NOM1 == "NOM1"; if (mysql_num_rows($NOM1)==0) { print "<form name='boutons'> <tr> <td>&nbsp;</td> <td><center> <input type='button' name='plan' title='Test' value='Test' onclick=\"location.href='securite/secu1.php'\" /></center> </td> <td>&nbsp;</td> </tr>"; } else { } ?>
Situation 2 : J'ai enfin réussi à faire disparaitre ce fichu bouton si une valeur est déjà présente, en revanche sans rien modifier à la page d'enregistrement des données "secu1" l'enregistrement refuse de s'effectuer dans la BdD.
En passant par l'administration de ma BdD j'insère manuellement une valeur, et là le bouton disparait bien.

Code : Tout sélectionner

<?php $base = mysql_connect ('', '', ''); $sql = 'SELECT NOM1 FROM secu1'; $req = mysql_query($sql) or die('Erreur : '.mysql_error()); $data = mysql_fetch_array($req); if ( empty($data)) { echo "<form name='boutons'>"; echo "<tr>"; echo "<td>&nbsp;</td>"; echo "<td><center>"; echo "<input type='button' name='plan' title='Inscription' value='Inscription' onclick=\"location.href='securite/secu1.php'\" /></center>"; echo "</td>"; echo "<td>&nbsp;</td>"; echo "</tr>"; echo "</form>" ; } else ?>
Reste plus qu'à mixer les deux pour avoir les deux fonctions mais là encore une fois je sèche .........

HELP ME :cry:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 mars 2011, 11:57

1er code
if (mysql_num_rows($NOM1)==0) <= ben NON $NOM1 viens de la db c'est pas toi qui le fixe, donc vire la ligne du dessus et et utilise mysql_num_rows sur $req (docn sur la ressource mysql et pas sur un chaine) !

=> if (mysql_num_rows($req)==0) !

ensuite pour l'insertion ben y a pas le code donc heu je sais pas !


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 15 Messages

21 mars 2011, 12:50

Bonjour,
Désolé mais j'obtiens toujours la même erreur.

Pour la totalité des éléments :

J'ai ma page principale où doit figurer le bouton, et qui contiens donc le code suivant :

Code : Tout sélectionner

<?php $base = mysql_connect ('', '', ''); $sql = 'SELECT NOM1 FROM secu1'; $req = mysql_query($sql) or die('Erreur : '.mysql_error()); $data = mysql_fetch_array($req); mysql_free_result ($req); mysql_close (); if ( empty($data)) { echo "<form name='boutons'>"; echo "<tr>"; echo "<td>&nbsp;</td>"; echo "<td><center>"; echo "<input type='button' name='plan' title='Inscription' value='Inscription' onclick=\"location.href='securite/secu1.php'\" /></center>"; echo "</td>"; echo "<td>&nbsp;</td>"; echo "</tr>"; echo "</form>" ; } ?>
Donc avec la fonction que je souhaite obtenir, si les champs sont vides le bouton "s'inscrire" doit être visible et autoriser l'accès à la page de saisie.

J'ai donc ensuite ma page de saisie "secu1.php":

Code : Tout sélectionner

<form name="boutons" action="sec1.php" method="POST"> <table width="70%" align="center" border="0" cellpadding="0" cellspacing="0" bgcolor="#C8CBDB"> <tr> <td align="center" colspan="2"> <font align="center" face="Arial" size="3" color="#000000"><br><br>Nom : <input type="text" name="NOM1"> <br><br> </font> </td> </tr> <tr> <td align="center" colspan="2"> <font align="center" face="Arial" size="3" color="#000000"><br><br>Prénom : <input type="text" name="PRENOM1"> <br><br> </font> </td> </tr> <tr> <td align="center" colspan="2"> <font align="center" face="Arial" size="3" color="#000000"><br><br>Téléphone : <input type="text" name="TEL1"> <br><br><br><br> </font> </td> </tr> <tr align="center"> <td align="center"> <font align="center" face="Arial" size="3" color="#000000">Votre qualification : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <select name="QUALIF1" size="1"> <option selected value="0">-- Choix -- </option> <option value="PSC1">PSC - 1</option> <option value="PSE1">PSE - 1</option> <option value="PSE2">PSE - 2</option> <option value="BNSSA">BNSSA</option> </select> </td> </tr> <tr> <td align="center" colspan="2"> <br><br><br> <input type="submit" value="Enregistrer"><br><br> </td> </tr> </table> </form>
Et celle ci renvoi vers la page qui effectue la requête "sec1.php" :

Code : Tout sélectionner

<?php $cnx = mysql_connect( "", "", "" ) ; $db = mysql_select_db( "secu1" ) ; $NOM1 = $_POST["NOM1"] ; $PRENOM1 = $_POST["PRENOM1"] ; $TEL1 = $_POST["TEL1"] ; $QUALIF1 = $_POST["QUALIF1"] ; $sql = "UPDATE secu1 SET NOM1=('$NOM1'), PRENOM1=('$PRENOM1'), TEL1=('$TEL1'), QUALIF1=('$QUALIF1')" ; $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; if($requete) { echo("L'insertion a été correctement effectuée") ; } else { echo("L'insertion à échouée") ; } ?>

En l'état actuel des choses si j'insère manuellement une valeur dans le champ "NOM1" (via l'interface de ma BdD) la valeur est bien affichée, le bouton disparaît bien, donc jusque là on avance dans le bon sens, mais la problème est que suite au submit les valeurs ne sont pas insérées dans la BdD malgré le message "L'insertion a été correctement effectuée" !!!!!!!!!!!!!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 mars 2011, 14:56

euh tu fait pas une insertion la hein c'est une modification de toute la table, à chaque fois !

une insertion c'est l'instruction INSERT de mysql update c'est pour mise à jour / modification d'un ou plusieurs tuples



@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 15 Messages

22 mars 2011, 10:35

Bonjour,

Quelle terrible erreur de débutant (ce que je suis !!) !!!!!!!

Bien, alors là on avance, on peut même dire que nous touchons au but.

L'enregistrement des valeurs se fait bien dans la BdD et elles sont par la suite bien affichées, le bouton "s'inscrire" est visible et cliquable tant que le champ "NOM" est vide, puis il disparaît dés qu'une inscription est faite et donc que le champ "NOM" est rempli, empêchant toute nouvelle inscription.

C'est exactement ce que je recherchais youpi.

Mais, parce qu'il y a toujours un mais, j'ai tout de même un hic, un gros hic.

Dans cette page principale il y a 10 cases, pour l'inscription de 10 membres, dans chacune il y a NOM, PRENOM etc et chaque case a son fameux bouton magique qui disparaît.

Or, et c'est là que ça coince, n'importe quelle case que je remplisse, par exemple la 5, les données s'insèrent bien et sont bien affichées dans la bonne case, mais cela me fait disparaître les 10 boutons !!!!!!

Le but c'est que chaque bouton ne disparaisse que quand sa propre case est remplie, si je rempli la case 1 le bouton 1 doit disparaître mais les 9 autres doivent rester visibles pour les membres suivants !

J'ai essayé de jongler pour différencier les boutons : name=boutons1 / $data1 mais rien n'y fait, tous les boutons disparaissent !!!


Voilà ce que j'ai en fin de page et pour 10 boutons :

Code : Tout sélectionner

<?php $sql = 'SELECT NOM1 FROM secu1'; $req = mysql_query($sql) or die('Erreur : '.mysql_error()); $data1 = mysql_fetch_array($req); mysql_free_result ($req); mysql_close (); if ( empty($data1)) { echo "<form name='boutons1'>"; echo "<center>"; echo "<input type='button' name='plan' title='Inscription' value='Inscription' onclick=\"location.href='securite/secu11.php'\" /></center>"; echo "</form>" ; } ?> <?php $sql = 'SELECT NOM2 FROM secu1'; $req = mysql_query($sql) or die('Erreur : '.mysql_error()); $data2 = mysql_fetch_array($req); mysql_free_result ($req); mysql_close (); if ( empty($data2)) { echo "<form name='boutons2'>"; echo "<center>"; echo "<input type='button' name='plan' title='Inscription' value='Inscription' onclick=\"location.href='securite/secu12.php'\" /></center>"; echo "</form>" ; } ?> <?php $sql = 'SELECT NOM3 FROM secu1'; $req = mysql_query($sql) or die('Erreur : '.mysql_error()); $data3 = mysql_fetch_array($req); mysql_free_result ($req); mysql_close (); if ( empty($data3)) { echo "<form name='boutons3'>"; echo "<center>"; echo "<input type='button' name='plan' title='Inscription' value='Inscription' onclick=\"location.href='securite/secu13.php'\" /></center>"; echo "</form>" ; } ?>

En tout cas merci pour ta précieuse aide qui m'a permis de bien avancer mais aussi de progresser dans le php et le sql

Eléphanteau du PHP | 15 Messages

23 mars 2011, 11:11

Bonjour,

Bon finalement je commence à me demander si j'avance ou pas dans mon schmilblik ....

En l'état des choses, donc avec les codes ci dessus, voilà que j'ai maintenant deux problèmes.

Le premier comme expliqué ci dessus fait que dés qu'une case est remplie les 10 boutons disparaissent, donc la page n'est pas fonctionnelle.

La seconde, est c'est pour cela que j'étais parti au début sur un update table c'est que le fait de faire un insert into cela crée une nouvelle ligne dans la table.
En faisant un insert into à chaque requête, par exemple si je suis dans la case 3, j'insère les valeurs de la case 3 (NOM3, PRENOM3, TEL3, QUALIF3) mais de ce fait la nouvelle ligne insérée ne contient pas de valeur dans les cases 1 et 2, donc les valeurs des cases 1 et 2 ne sont plus affichées malgré qu'elles soient toujours présentes dans la BdD mais à des lignes inférieures.
Et pour couronner le tout si je change juste INSERT INTO par UPDATE dans ma page sec1 l'insertion dans la table ne se fait plus !!!

Je croyais avoir une superbe idée à la base mais je suis à deux doigts de tout envoyer ch*** :twisted: :evil:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

23 mars 2011, 23:27

bon puisqu'il faut tout macher
$base = mysql_connect ("", "", "");
mysql_select_db ('secu1', $base);
$requete = "SELECT NOM1 FROM secu1 WHERE NOM1=''"; 
$req = mysql_query($sql) or die('Erreur SQL !<br >'.$sql.'<br >'.mysql_error()); 
if (mysql_num_rows($req)==0);
{
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 15 Messages

25 mars 2011, 08:47

Bonjour,

Malgré le fait que j'ai bien précisé à plusieurs reprises que j'étais débutant, je comprends vu le ton de ta réponse que cela te gonfle de m'aider.

Ce n'est pas grave, on va tout laisser tomber, j'ai été bête de penser qu'une fonction aussi simple pourrait se mettre en place en seulement quelques clics.

Donc je ne vais pas t'embêter plus longtemps, d'ailleurs le code que tu me donne ci dessus ne fonctionne pas, je laisse tomber mon idée, je ferais les inscriptions par téléphone ce sera bien plus simple.

En tout cas je te remercie pour le temps que tu auras consacré à mon problème, merci de t'être penché dessus.

Amicalement.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

25 mars 2011, 13:59

En fait le truc c'est qu'a chaque message j'ai l'impression que la donnne change. Je qui certain que tu sache ce que tu veut faire mais ce n'est pas mon cas ;)

Qui plus et je pense qu'a la base ton amplis est mal structuré car tu devrais avoir une table de participant, une table d'evennement et une table qui joint les deux premières et ainsi tu simplifie ton dev et donc la compréhension de celui ci par les autres ;)

Si j'ai bien compris ton dernier message il y aura toujours un tuple dans la table avant même une inscription ?
Et c'est la que vient la confusion tu parle d'insertion ( D'où mes remarques sur insert / update) alors que tu veux faire une mise a jour d'un tuple qui existe pour chaque nouvelle inscription (qui pour moi serait une insertion ;) ).

Je sais que tu n'a pas envie de tous recoder mais au final tu y gagnerais en simplicité.
Pourquoi ?
- tu aura deja une liste des gens qui peuvent participer, a la limite laisse une possibilité pour ajouter quelqu'un. Ca evite les doublons de nom dans la table (erreur d'ortographe etc)
- tu peut avoir un code évolutif en deux coup de cuillère a pot si demain c'est 5, 8, 15 personnes qui doivent étreins rit commet fait tu ? Ta table ne sera plus adapter il faudra la refaire et au final tout recoder ;)
- tu pourra donc gérer des événements avec des caractéristiques differentes sans recoder ;)

Voila ^^

@+
Il en faut peu pour être heureux ......