php / Mysql / case à cocher

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 : php / Mysql / case à cocher

Merci encore, j'ai réussi avec ton code

par arsouille » 04 nov. 2005, 22:41

Mille merci, à charge de revanche si je peux

merci de ton aide

par arsouille » 04 nov. 2005, 19:40

merci de ton aide.
Je test ce WE

par pitt » 04 nov. 2005, 10:39

Je me suis donné la peine de lire ton code alors
quand tu fais ta requete tu auras un identifiant tu peux ecrire
<td align=\"center\"><input type=\"checkbox\" multiple name=\"case[]\" value=\"$num\"></td>

et aussi je n'ai pas bien compris si tu devais aussi passer la condition de recherche dans ton autre fichier mais tu pourrais faire ca
if ($choix_table == naissance) { 
// Connexion à la base archives44 en faisant appel au fichier connexion_base 
require 'connexion_base.php'; 

// Recherche des noms dans la table naissance44 
$resultat_naissance = mysql_query("SELECT * from naissance44 where nom='$recherche_nom'"); 

echo "<input type=\"hidden\" name=\"condition\" value=\"naissance\">;
//a adapter à toutes tes conditions
//puis construire tes lignes de tableau


Remarque: il parait bizzare que tu ais besoin de faire des retours chariot entre tes lignes de tableau n'as tu pas oublié les balises <table> et </table>

Dans ton deuxieme fichier
$condition=$_POST['condition'];
$case=$_POST['case'];

foreach ($case as $cle => $val){
//faire ta requete avec comme id $val puis construire tes lignes de tableau
}



Normalement c'est bon

par Truc » 04 nov. 2005, 00:34

Désolé pas motivé pour lire ce code qui devrai se trouver entre balises
 (bouton disponible lors de la création du message) pour le rendre plus lisible avec une coloration syntaxique.

Si un modo veuille bien se donner la peine  (Il a posté en invité le malheureux ) :wink:

php / Mysql / case à cocher

par arsouille » 03 nov. 2005, 23:40

Bonjour,

je m'essaie au php pour créer un site web dynamique sur la généalogie.
je rencontre un soucis avec les cases à cocher.
Dans le code ci-dessous, j'effectue une requéte dans une base local, j'affiche quelques informations, ainsi qu'une case à cocher.
L'idée, afficher encore plus d'informations en provenance de la base pour les lignes cochées.

Exemple : vous effectuez une recherche sur votre nom de famille. J'affiche en retour 5 réponses. Vous souhaitez avoir plus d'infos sur deux lignes.

Le code ci-dessous fonctionne corectement.
J'ai créer dans le premier "if" une colonne test qui me retourne bien le numéro de la ligne dans ma base via la variable $num.
Par contre, je ne sais pas allez plus loin pour appeler les nouvelles informations.

Dois-je effectuer à nouveau la requete. Mais comment dire uniquement sur les lignes cocher.
J'ai lu à différent endroits que le foreach serrait la bonne commande, mais je ne sais pas par quel bout le prendre

Si quelqu'un veut bien m'aider, merci



<form NAME=\"mode_gratuit\" METHOD="post" ACTION="index_recherche_mode_intermediaire.php">
<table ALIGN="center" BORDER="1" cellpadding=5 border bordercolor="green">

<?php
// 3 Conditions if pour le choix des cases "naissance / mariage / deces" dans centre_recherche/php
if ($choix_table == naissance) {
// Connexion à la base archives44 en faisant appel au fichier connexion_base
require 'connexion_base.php';

// Recherche des noms dans la table naissance44
$resultat_naissance = mysql_query("SELECT * from naissance44 where nom='$recherche_nom'");

// Fermeture de la connexion à la base portail_internet
mysql_close();

// première ligne en-tête du tableau
echo '<tr>';
echo '<td bgcolor="#669999" align="center"><b><u>Nom</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Prénom</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Autres Prénoms</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Année</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Plus d' infos</u></b></td>';
echo '</tr>'."\n";

//Récupération et affichage des résultats de la table des Naissance .
while($affichage = mysql_fetch_row($resultat_naissance)){
$num = ucfirst($affichage[0]);
$nom = ucfirst($affichage[6]); // le chiffre 9 correspond au numéro de la colonne dans la table etat_civil, attention, le premier n° est le 0
$prenom1 = ucfirst($affichage[7]);
$prenom2 = ucwords($affichage[8]);
$date_naissance = ucwords($affichage[10]);

// transition date us => fr
$annee = substr($date_naissance,0,4);
$mois = substr($date_naissance,5,2);
$jour = substr($date_naissance,8,2);
$date = "$jour-$mois-$annee";
//ucfirst force la première lettre en majuscule, ucwords force la premiere lettre en majuscule de chaque mot de la chaine

echo "<tr>
<td><font color=\"blue\">$nom</font></td>
<td><font color=\"blue\">$prenom1</font></td>
<td><font color=\"blue\">$prenom2</font></td>
<td><font color=\"blue\">$date</font></td>
<td align=\"center\"><input type=\"checkbox\" name=\"case\" value=\"$num\"></td>
<td><font color=\"blue\">$num</font></td>
</tr>";
echo "<br>"; // permet d'effectuer un retour chariot entre les lignes du résultat
}}

elseif ($choix_table == mariage) {
// Connexion à la base archives44 en faisant appel au fichier connexion_base
require 'connexion_base.php';

// Recherche des noms dans la table naissance44
$resultat_mariage = mysql_query("SELECT * from mariage44 where nom='$recherche_nom'");

// Fermeture de la connexion à la base portail_internet
mysql_close();

// première ligne en-tête du tableau
echo '<tr>';
echo '<td bgcolor="#669999" align="center"><b><u>Nom</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Prénom</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Autres Prénoms</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Année</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Plus d' infos</u></b></td>';
echo '</tr>'."\n";

//Récupération et affichage des résultats de la table des Naissance .
while($affichage = mysql_fetch_row($resultat_mariage)){
$nom = ucfirst($affichage[1]); // le chiffre 9 correspond au numéro de la colonne dans la table etat_civil, attention, le premier n° est le 0
$prenom1 = ucfirst($affichage[2]);
$prenom2 = ucwords($affichage[8]);
$date_naissance = ucwords($affichage[10]);

// transition date us => fr
$annee = substr($date_naissance,0,4);
$mois = substr($date_naissance,5,2);
$jour = substr($date_naissance,8,2);
$date = "$jour-$mois-$annee";
//ucfirst force la première lettre en majuscule, ucwords force la premiere lettre en majuscule de chaque mot de la chaine

echo "<tr>
<td><font color=\"blue\">$nom</font></td>
<td><font color=\"blue\">$prenom1</font></td>
<td><font color=\"blue\"></font></td>
<td><font color=\"blue\"></font></td>
<td align=\"center\"><input type=\"checkbox\" name=\"case\"></td>
</tr>";
echo "<br>"; // permet d'effectuer un retour chariot entre les lignes du résultat
}}

elseif ($choix_table == deces) {
// Connexion à la base archives44 en faisant appel au fichier connexion_base
require 'connexion_base.php';

// Recherche des noms dans la table naissance44
$resultat_deces = mysql_query("SELECT * from deces44 where nom='$recherche_nom'");

// Fermeture de la connexion à la base portail_internet
mysql_close();

// première ligne en-tête du tableau
echo '<tr>';
echo '<td bgcolor="#669999" align="center"><b><u>Nom</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Prénom</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Autres Prénoms</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Année</u></b></td>';
echo '<td bgcolor="#669999" align="center"><b><u>Plus d' infos</u></b></td>';
echo '</tr>'."\n";

//Récupération et affichage des résultats de la table des Naissance .
while($affichage = mysql_fetch_row($resultat_deces)){
$nom = ucfirst($affichage[6]); // le chiffre 9 correspond au numéro de la colonne dans la table etat_civil, attention, le premier n° est le 0
$prenom1 = ucfirst($affichage[7]);
$prenom2 = ucwords($affichage[8]);
$date_naissance = ucwords($affichage[10]);

// transition date us => fr
$annee = substr($date_naissance,0,4);
$mois = substr($date_naissance,5,2);
$jour = substr($date_naissance,8,2);
$date = "$jour-$mois-$annee";
//ucfirst force la première lettre en majuscule, ucwords force la premiere lettre en majuscule de chaque mot de la chaine

echo "<tr>
<td><font color=\"blue\">$nom</font></td>
<td><font color=\"blue\">$prenom1</font></td>
<td><font color=\"blue\">$prenom2</font></td>
<td><font color=\"blue\">$date</font></td>
<td align=\"center\"><input type=\"checkbox\" name=\"case\"></td>
</tr>";
echo "<br>"; // permet d'effectuer un retour chariot entre les lignes du résultat
}}
?>
</table>
<br><br>
<P align="center"><input TYPE="submit" VALUE="Plus d' infos">
</form>