begin process at 2012 05 31 04:18:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

php checkbox mysql


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

php checkbox mysql

jeudi 2 février 2006 à 14:25:20 | php checkbox mysql

taint1

Bonjour à tous,
Je suis à la recherche d'aide pour la mise en place d'une checkbox. J'ai réussi a afficher les checkbox mais je ne trouve pas comment récupéré les valeurs en fonction des case cochées.
J'ai commencé le php il y a peu alors il est probable qu'il y ai de nombreuses coquilles dans mon programme.
J'espère que les informations ci dessous vont cvous permettre de comprendre ce que je recherche à faire.
Merci d'avance a toute personne essayant de m'aider.

Ma page activité+.php affiche cela:
informatique
reseaux
internet
telephonie
commercial
maintenance gros systemes
operateur radiocom
maintenance et gestion de materiel reseau ou telephonie de grande capacite
prestation de services

Mais je ne sait pas comment faire pour récupéré la valeur en face de la case coché quand j'effectue une recherche.
Si possible il faudrai que mon programme puisse traiter plusieurs case.

Activité+.php:
<?php
include('connexion.php');

$reponse = mysql_query("SELECT type FROM activite");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<form action="activite.php" method="post">
<input type="checkbox" name="case[]" />

<?php
echo $donnees['type'];
echo "<br />";
}
mysql_close();
?>

<p> <input type="submit" value="Rechercher" /> </p>
</form>

Activite.php:
<?php //debut instruction PHP
include('connexion.php'); //appel de la page php connexion permettant de se connecter et de selectionner la base de données

$rq="select F.numero_fiche, F.numero_entreprise, raison_sociale, code_postal, ville, annee, numero_cd, repertoire, titre_rapport, resume, type
from fiche F, entreprise E, activite A, lieu L
where F.numero_entreprise=E.numero_entreprise
and F.numero_fiche=L.numero_fiche
and L.numero_activite=A.numero_activite
and type like ".$_POST['case']."";

$reponse = mysql_query($rq); // Requête SQL
if (!$reponse) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}

$reponse = mysql_query($rq);
$donnees = mysql_fetch_array($reponse);


if($donnees){ //si une réponse est contenue dans des données, alors :
 while ($donnees)
 {
  echo ' <strong>Fiche Numero</strong> : ' . $donnees[0].'' ;
  echo ' <h2>Titre du rapport : ' . $donnees[8].'</h2></br> ';
  echo ' Raison sociale de l entreprise est : ' . $donnees[2].'</br> ' ;
  echo ' Ville : ' . $donnees[4].'</br> ' ;
  echo ' Code postal : ' . $donnees[3].'</br> ' ;
  echo ' Année du stage : ' . $donnees[5].'</br> ' ;
  echo ' Activité : ' . $donnees[10].'</br> ';
  echo ' Le rapport de stage se trouve sur le cd ' . $donnees[6].'';
  echo ' et son répertoire est ' . $donnees[7].'</br> ';
  echo ' Résumé :</br><em>' . $donnees[9].'</em> ';
  echo ' </br></br> <hr />';
  $donnees=mysql_fetch_row($reponse);
 }
}
else { //sinon, afficher le message suivant :
 echo '<strong>Aucun stage n\'a été effectué dans le département sélectionné !!!</strong></br></br>';
 echo 'Veuillez sélectionner un autre département !';
}
?>

Structure de la table `activite`

CREATE TABLE `activite` (

`numero_activite` int(2) NOT NULL auto_increment,

`type` varchar(200) NOT NULL default '',

PRIMARY KEY (`numero_activite`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;

--

-- Contenu de la table `activite`

--

INSERT INTO `activite` VALUES (1, 'informatique');

INSERT INTO `activite` VALUES (2, 'reseaux');

INSERT INTO `activite` VALUES (3, 'internet');

INSERT INTO `activite` VALUES (4, 'telephonie');

INSERT INTO `activite` VALUES (5, 'commercial');

INSERT INTO `activite` VALUES (6, 'maintenance gros systemes');

INSERT INTO `activite` VALUES (7, 'operateur radiocom');

INSERT INTO `activite` VALUES (8, 'maintenance et gestion de materiel reseau ou telephonie de grande capacite');

INSERT INTO `activite` VALUES (9, 'prestation de services');

jeudi 2 février 2006 à 15:09:30 | Re : php checkbox mysql

malalam

Administrateur CodeS-SourceS
Hello,

$_POST['case'] est un tableau. Donc echo $_POST['case'] ne renverra rien (ou plutôt si : array.

Tu dpois parcourir ce tableau pour récupérer les infos cochées.
Essaye un print_r ($_POST['case']); tu y verras plus clair :-)
jeudi 2 février 2006 à 15:20:54 | Re : php checkbox mysql

supergyver

Tout d'abord, dans ta première page, il faut que tu donnes un nom différent pour chaque checkbox. Par exemple case_1, case_2, etc.

<?php
include('connexion.php');

$reponse = mysql_query("SELECT numero_activite, type FROM activite");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<form action="activite.php" method="post">
<input type="checkbox" name="case_<? echo $donnees['numero_activite']; ?>" />

<?php
echo $donnees['type'];
echo "<br />";
}
mysql_close();
?>

<p> <input type="submit" value="Rechercher" /> </p>
</form>

Ensuite, une fois le formulaire validé, seuls les cases cochées font parties de l'URL et leur valeur est "on".
Ainsi, si tu as 3 checkbox "case_1", "case_2" et "case_3" et que seule "case_2" était cochée à la validation du formulaire, dans les paramètres de l'URL, il n'y aura que "case_2"

Donc, dans ta seconde page, il faut que tu utilises les identifiants des cases

foreach( $cle, $valeur) in $_POST{ // Pour chaque variable contenu dans $_POST
    if( substr( $cle, 0, 5) = "case_"){ // Si c'est une des checkbox
       list( $a, $b) = explode( "_", $cle); // dans $a, il y aura "case", dans $b, il y aura l'identifiant
       $rq="select F.numero_fiche, F.numero_entreprise, raison_sociale, code_postal,      ville, annee, numero_cd, repertoire, titre_rapport, resume, type
from fiche F, entreprise E, activite A, lieu L
where F.numero_entreprise=E.numero_entreprise
and F.numero_fiche=L.numero_fiche
and L.numero_activite=A.numero_activite
and type like ".$b."";
    /* ... suite de ton traitement ... */

    }
}

J'espère avoir été assez clair

jeudi 2 février 2006 à 15:29:45 | Re : php checkbox mysql

supergyver

J'avais fait de mémoire et je crois que j'ai une erreur dans l'utilisation du foreach...
Regarde plutôt le message http://www.phpcs.com/code.aspx?id=13349 qui devrait t'aider

jeudi 2 février 2006 à 15:48:38 | Re : php checkbox mysql

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Argh...le tableau était très bien case[], c'est la bonne méthode.

Et dans le cadre d'un affichage de données tirées d'une bdd, le plus simple est de mettre l'id de la ligne dans le tableau. Exemple :
<?php
$sQuery = mysql_query ('SELECT perso_id, perso_nom FROM personnages');
while ($aRow = mysql_fetch_assoc ($sQuery)) {
     echo '<input type="checkbox" name="case[]" value="',$aRow['perso_id'],'" />',$aRow['perso_nom'];
}

?>

et tu récupères tous tes id pour les cases cochées dans le tableau $_POST['case'].

Par exemple : $_POST['case'][0] = 2 // 1ère case cochée, perso_id 2,
$_POST['case'][1] = 8 // 2de case cochée, perso_id 8


Cette discussion est classée dans : donnees, mysql, numero, activite, echo


Répondre à ce message

Sujets en rapport avec ce message

erreur MySQL? [ par taint1 ] Bonjour à tous,J'ai une erreur dans mon programme et je n'aarive pas a comprendre pourquoi.include('connexion.php'); //appel de la page php connexion de la couleur dans un echo ? [ par biloutte33 ] bonjour,j'aimerais savoir comment mettre un echo en gras, en italique ou souligné ou avec de la couleur?comment placer la balise?car j'aimerais que mo Comparer valeur d'une base de données [ par wadpap13 ] Bonjour,Je souhaite faire un quizz. Pour cela il me faut comparer le bouton sur lequel le joueur va appuyer et comparer avec le resultat dans la base while($donnees = mysql_fetch_array($result)){ marche pas mais pk et il si mechant? mais parce que! [ par phenix3980 ] jai un probleme avec mon scriptla frame d'insertion echo "    <IFRAME align=\"center\" marginWidth=\"0\" marginHeight=\"0\" noresize scrolling=no src= probléme avec un passage dans un formulaire [ par clem63111 ] [code]                             $i=0 ; unexpected { [ par biloutte33 ] Bonjour tout le monde voici mon code : $reponse = mysql_query('SELECT * FROM `ibf_topics` Where Forum_id=49 OR Forum_id=50 ORDER BY start_date DES mysql_fetch_array [ par ateber ] Bonjour,Je suis une étudiante en informatique. J'ai crée un forum sur un site et qui fonction bien mais aujourd'hui sur local je n'arrive pas affichée recuperer une variable [ par Malamute7 ] voici le code qui affiche mes 20 enregistrement <?php // connection au serveur $cnx = mysql_connect ("localhost","root",""); // connection a la ba PHP - MYSQL [ par siref ] Bonjour, Voila je débute dans le php et mysql, je suis entraind de me créer un petit site web dans mon entreprise et je rencontre une erreur que j'ar Suppression sur une bd mysql à partir d'un bouton (php) !! [ par WrestlingMan ] Bonjour à tous !! J'espère que vous pourrez m'aider !! J'ai créer un petit formulaire, dans celui-ci on choisi une personne dans une liste déroulante.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales