[RESOLU] ne pas afficher des champs vides

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 : [RESOLU] ne pas afficher des champs vides

Re: [RESOLU] ne pas afficher des champs vides

par arsouille » 07 août 2015, 23:27

Merci, l'intégration du code fonctionne parfaitement

Re: ne pas afficher des champs vides

par Ascla » 04 août 2015, 15:21

En même temps la variable a changé de nom. Dans les précédent posts, tu parlais de $data_N[""], maintenant c'est $data[""].
Du coup essaye ceci :
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// compte le nombre de lignes trouvées
$nbr = mysql_num_rows($req);

// Si c'est l'option Radio Naissance qui est sélectionné
if ( ($nbr > 0) && ($type_acte == actes_naissance) )
{
echo '<u><b> Acte de naissance : (' .$nbr .')' .'</u></b> <br /><br />';

// on va scanner toutes les lignes une par une
while ($data = mysql_fetch_array($req))

//Si la variable "$data['commune']" n'est pas vide
if ($data['commune'] != "") 
{
echo '- Naissance en '.$data['annee']. ' dans la commune de ' .$data['commune'].', département du ' .$data['departement'].'<br />';
echo 'de '.$data['1_prenom_enfant']. ' ' .$data['2_prenom_enfant']. ' ' .$data['nom_enfant'].', du sexe ' .$data['sexe'].'<br />';
echo 'enfant de '.$data['1_prenom_pere']. ' ' .$data['2_prenom_pere']. ' ' .$data['nom_pere']. ' et '.$data['1_prenom_mere']. ' ' .$data['2_prenom_mere']. ' ' .$data['nom_mere'].'<br /><br />';
}

//Si la variable est vide
else 
{
echo '- Naissance en '.$data['annee']. ', département du ' .$data['departement'].'<br />';
echo 'de '.$data['1_prenom_enfant']. ' ' .$data['2_prenom_enfant']. ' ' .$data['nom_enfant'].', du sexe ' .$data['sexe'].'<br />';
echo 'enfant de '.$data['1_prenom_pere']. ' ' .$data['2_prenom_pere']. ' ' .$data['nom_pere']. ' et '.$data['1_prenom_mere']. ' ' .$data['2_prenom_mere']. ' ' .$data['nom_mere'].'<br /><br />';
}
mysql_free_result ($req);
mysql_close ();
}

Re: ne pas afficher des champs vides

par arsouille » 03 août 2015, 23:11

Après test, je dois mal positionner la condition car elle fonctionne trop bien :).
Trop bien au point ou elle me supprime systèmatiquement l'information "commune" de l'ensemble des lignes renvoyées par la boucle "While".
Mon objectif est d'afficher pour chaque ligne trouvée dans la base une liste d'informations, mais si certaines ne sont pas présentes (commune par exemple), l'affichage des informations pour cette ligne uniquement sera différente.
Si quelqu'un peu m'aider dans la réflexion, merci d'avance
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// compte le nombre de lignes trouvées
$nbr = mysql_num_rows($req);

// Si c'est l'option Radio Naissance qui est sélectionné
if ( ($nbr > 0) && ($type_acte == actes_naissance) )
{
echo '<u><b> Acte de naissance : (' .$nbr .')' .'</u></b> <br /><br />';

// on va scanner toutes les lignes une par une
while ($data = mysql_fetch_array($req))

//Si la variable "$data_N['commune']" n'est pas vide
if ($data_N['commune'] != "")
{
echo '- Naissance en '.$data['annee']. ' dans la commune de ' .$data['commune'].', département du ' .$data['departement'].'<br />';
echo 'de '.$data['1_prenom_enfant']. ' ' .$data['2_prenom_enfant']. ' ' .$data['nom_enfant'].', du sexe ' .$data['sexe'].'<br />';
echo 'enfant de '.$data['1_prenom_pere']. ' ' .$data['2_prenom_pere']. ' ' .$data['nom_pere']. ' et '.$data['1_prenom_mere']. ' ' .$data['2_prenom_mere']. ' ' .$data['nom_mere'].'<br /><br />';
}

//Si la variable est vide
else
{
echo '- Naissance en '.$data['annee']. ', département du ' .$data['departement'].'<br />';
echo 'de '.$data['1_prenom_enfant']. ' ' .$data['2_prenom_enfant']. ' ' .$data['nom_enfant'].', du sexe ' .$data['sexe'].'<br />';
echo 'enfant de '.$data['1_prenom_pere']. ' ' .$data['2_prenom_pere']. ' ' .$data['nom_pere']. ' et '.$data['1_prenom_mere']. ' ' .$data['2_prenom_mere']. ' ' .$data['nom_mere'].'<br /><br />';
}
mysql_free_result ($req);
mysql_close ();
}

Re: ne pas afficher des champs vides

par arsouille » 03 août 2015, 19:06

Merci pour vos retour, je vais tenter.
J'ai bien noté Ascia votre bas de page sur les 50%....
J'ai fais une belle sauvegarde de mon site :)

Re: ne pas afficher des champs vides

par Ascla » 03 août 2015, 16:43

if ($data_N['commune'] != "") { //Si la variable "$data_N['commune']" n'est pas vide
    echo '- Naissance en '.$data_N['annee']. ' dans la commune de ' .$data_N['commune'].', département du ' .$data_N['departement'].'<br />';
} else { //Si la variable est vide
    echo '- Naissance en '.$data_N['annee']. ' , département du ' .$data_N['departement'].'<br />';
}

Re: ne pas afficher des champs vides

par tof73 » 03 août 2015, 16:25

ne pas afficher des champs vides

par arsouille » 03 août 2015, 16:22

Bonjour à tous,

Néophite, je suis toujours un peu ennuyé pour mettre à jour mes codes que j'avais assemblé avec peine.
Il s'agit d'un site de généalogie personnel qui me permet de structurer mes recherches.
Je possède un ensemble de champs de formulaire ou je saisie ma recherche
$type_acte = $_POST['type_acte'];
$chance = $_POST['chance'];
$nom_acte = $_POST['nom_acte'];
$prenom_acte = $_POST['prenom_acte'];
$anneedebut_acte = $_POST['anneedebut_acte'];
$anneefin_acte = $_POST['anneefin_acte'];
if ($anneefin_acte < $anneedebut_acte) {$anneefin_acte = $anneedebut_acte + 1;}
$ville_acte = $_POST['ville_acte'];
$departementacte = substr($_POST['departementacte'],0 , 2);
Et en fonction de mes options, j'exécute ce type de code

// ***********************************************************************
// 2 - si le Checkbox Chance est coché et le nom et le prénom sont remplis
// ***********************************************************************

if(!empty($chance) && (!empty($nom_acte)) && (!empty($prenom_acte)))
{
// lancement de la requête sur la table des naissances
$sql_N = "SELECT * FROM actes_naissance WHERE nom_enfant LIKE '$nom_acte' AND 1_prenom_enfant LIKE '$prenom_acte' ORDER BY annee";

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req_N = mysql_query($sql_N) or die('Erreur SQL !<br />'.$sql_N.'<br />'.mysql_error());
// compte le nombre de lignes trouvées
$nbr_N = mysql_num_rows($req_N);

// Si le résultat est supérieur à 0
if ($nbr_N > 0)
{
echo '<u><b> Acte de naissance : (' .$nbr_N .')' .'</u></b> <br /><br />';

// on va scanner toutes les lignes une par une
while ($data_N = mysql_fetch_array($req_N))
{
echo '- Naissance en '.$data_N['annee']. ' dans la commune de ' .$data_N['commune'].', département du ' .$data_N['departement'].'<br />';
echo 'de '.$data_N['1_prenom_enfant']. ' ' .$data_N['2_prenom_enfant']. ' ' .$data_N['nom_enfant'].', du sexe ' .$data_N['sexe'].'<br />';
echo 'enfant de '.$data_N['1_prenom_pere']. ' ' .$data_N['2_prenom_pere']. ' ' .$data_N['nom_pere']. ' et '.$data_N['1_prenom_mere']. ' ' .$data_N['2_prenom_mere']. ' ' .$data_N['nom_mere'].'<br /><br />';
}

mysql_free_result ($req_N);
mysql_close ();
}

// s'il n'y a pas de résultat à la recherche
if ($nbr_N == 0)
{
echo '<u><b> Acte de naissance : (' .$nbr_N .')' .'</u></b> <br /><br />';
echo "<font color='red'>Désolé, aucun résultat correspondant à la recherche dans la base des naissances</font>"."<br /><br />";
}
Ma commande
while ($data_N = mysql_fetch_array($req_N))
va scanner toutes les lignes de ma base, et je vais ensuite par la commande
echo
afficher les informations avec un peu de commentaire.

Ma question est la suivante, je souhaiterai afficher une information que si le champ de la base de donné contient bien quelque chose.
Par exemple, dans la ligne
echo '- Naissance en '.$data_N['annee']. ' dans la commune de ' .$data_N['commune'].', département du ' .$data_N['departement'].'<br />';
, si je ne dispose pas de l'information commune, je souhaiterai n'afficher que
echo '- Naissance en '.$data_N['annee']. ' , département du ' .$data_N['departement'].'<br />';
J'espère mon explication assez précise.
Si quelqu'un peu m'aider, merci

Bien à vous