Vous n'êtes pas identifié(e).
Pages : 1
Bonjour tof73
je vais essayer votre réponse.
Merci
Bonjour à tous,
Je travaille sur une table "Commentaires" composée des champs suivants :
id_commentaire, date_commentaire, id_user, commentaire
Je voudrais savoir si c'est possible d'afficher le contenu de la table en mettant dans la colonne commentaire un lien qui diffère selon si la colonne dans la base de donnéee est vide ou remplie.
Si quelqu'un pouvait m'aider, çà serait sympa.
Merci d'avance pour votre aide.
Bonjour pascalpa,
Vous pouvez créer la table Assoc
Dans cette table il faudrait mettre
id_Assoc
id_terme
id_syn
Dans cette table, il est possible de mettre plusieurs synonymes pour chaque thermes.
Bonjour Reweb
Pour réaliser ce que vous voulez, je procéderait de cette manière :
Créer une base de données par exemple sous mysql
Dans cette base de données il faut une table dans laquelle il y a les colonnes
id_motCle un int autoincrement,
motCle un text
adresse un text (nom de la page
Dans le include, il y a le formulaire avec le champ motCle
Le formulaire renvoie vers la page recherche.php
Attention de bien recupérer le champ motCle en faisant ceci :
Il faut maintenant faire une requête SQL pour recupérer les données liées à notre motCle
Affichage du resultat
Je pense que çà devrait vous aider.
Bonjour
j'ai réussi à faire ce que je voulais.
Je mets ci-dessous la solution
<?php
//ici je récupère les variables envoyées par un formulaire
// utilisation de trim pour enlever les espaces inutiles qui risqueraient de poser problèmes
$idcategorie = trim($_GET["idcategorie"]);
$motcle = trim($_GET["motcle"]);
// aucun mot clé => affichage de tous les résultats
if ($motcle == "") {
$sqlCount = " SELECT count(id_probleme)
FROM problemes
WHERE id_categorie = $idcategorie ";
$sqlDetail = " SELECT id_probleme, id_categorie, nom, solution
FROM problemes
WHERE id_categorie = $idcategorie";
//je recupère les différents mots entrer dans la variable motcle
} else { // mot clé saisi => recherche
$arrMotcle = explode(" ",$motcle);
$strMotCle = ""; $separateur = "";
foreach ($arrMotcle as $itemMotcle) {
$strMotCle = $strMotCle . $separateur . " nom LIKE \"%".$itemMotcle."%\" OR solution LIKE \"%".$itemMotcle."%\" ";
$separateur = " OR ";
}
// .utf8_decode pour prendre en compte les accents du motcle
$sqlDetail = " SELECT id_probleme, id_categorie, nom, solution
FROM problemes
WHERE id_categorie = $idcategorie
AND (".utf8_decode($strMotCle).") ";
//die($sqlDetail);
}
?>
Bonjour Maljuna Kris
je vais essayer avec les fonctions PHP explode() ou split().
Je vous tiens au courant
Merci et @+
Bonjour à tous & toutes
Je travaille sur un formulaire avec Bootstrap.
Avc le formulaire les utilisateurs peuvent tapper un ou plusieurs mot-clé.
//voilà mon formulaire
<div class="container">
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" name="motCle" class="form-control" placeholder="Rechercher">
</div>
<button type="submit" class="btn btn-default">Envoyer</button>
</form>
</div>
Admettons que l'utlisateur rentre "soucis logiciel"
Pour ma requête je voudrait faire une requête du genre
SELECT id, nom, solution
FROM problemes
WHERE (nom LIKE '%soucis%' or solution LIKE '%soucis%')
AND (nom LIKE '%logiciel%' or solution LIKE '%logiciel%')
Je pense que je dois recupéere les différents mots séparemment mais je ne sais pas comment m'y prendre.
Pouvez-vous m'aider s'il vous plaît ?
Merci d'avance.
Bonjour
Après avoir fais plein de tests j'ai réussi à faire ce que je voulais.
<section id="faq" class="faq-logiciel1l">
<div class="section-header">
<div class="container">
<h2><i class="fa fa-question-circle"></i> Frequent Asked Questions CaisseXL </h2>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="panel-group" id="accordion">
<?php
// c'est à partie d'ici que je devais faire la requête sql et remplir les div
try {
$sql = " SELECT id_probleme, id_categorie, nom, solution FROM problemes WHERE id_categorie = 401";
$results = $dbHandler->Query($sql);
//entrée dans la boucle
foreach ($results as $row) {
echo" <div class='panel panel-default'> "."\n";
echo" <div class='panel-heading'>"."\n";
echo" <h4 class='panel-title'>"."\n";
//pour chaque problème (et donc ici chaque div collapse) il doit y avoir une adresse unique, ici je récupéré au fait id du problème
echo" <a class='accordion-toggle' data-toggle='collapse' href='#collapse_" . $row['id_probleme'] . "'>"."\n";
//ici affichage du problème
// je mets utf8_encode pour pouvoir afficher les accents et apostrophe sans que çà pose des problèmes d'affichage
echo " " . utf8_encode($row['nom']) . "<br/>"."\n";
echo" </a>"."\n";
echo" </h4>"."\n";
echo" </div>"."\n";
//ici je doit récupérer l'id du problème
//si je ne le met pas, toutes les réponses auront le même id et quand on clique sur un problème c'est toujours la première réponse que s'affiche
echo" <div id='collapse_" . $row['id_probleme'] . "' class='panel-collapse collapse'>"."\n";
echo" <div class='panel-body'>"."\n";
//affichage de la réponse
// idem que pour les problèmes
echo " solution : " . utf8_encode($row['solution']) . "<br/>"."\n";
echo" </div>"."\n";
echo" </div>"."\n";
echo" </div>"."\n";
}
} catch(Exception $e) {
die("erreur");
}// fin de la boucle
?>
</div><!-- <div class="panel-group" id="accordion"> -->
</div><!-- <div class="col-lg-12"> -->
</div><!-- <div class="row">-->
</div><!-- <div class="container"> -->
</section>
Bonjour
J'ai trouvé la solution.
Merci votre aide
Bonjour,
je pense que vous avez certainement réussi.
Mais au cas ou ce n'est pas le cas, je vous donne un exemple de menu vertical déroulant
<html>
<head>
<style>
#menu-accordeon {
padding:0;
margin:0;
list-style:none;
text-align: center;
width: 180px;
}
#menu-accordeon ul {
padding:0;
margin:0;
list-style:none;
text-align: center;
}
#menu-accordeon li {
background-color:#729EBF;
background-image:-webkit-linear-gradient(top, #729EBF 0%, #333A40 100%);
background-image: linear-gradient(to bottom, #729EBF 0%, #333A40 100%);
border-radius: 6px;
margin-bottom:2px;
box-shadow: 3px 3px 3px #999;
border:solid 1px #333A40
}
#menu-accordeon li li {
max-height:0;
overflow: hidden;
transition: all .5s;
border-radius:0;
background: #444;
box-shadow: none;
border:none;
margin:0
}
#menu-accordeon a {
display:block;
text-decoration: none;
color: #fff;
padding: 8px 0;
font-family: verdana;
font-size:1.2em
}
#menu-accordeon ul li a, #menu-accordeon li:hover li a {
font-size:1em
}
#menu-accordeon li:hover {
background: #729EBF
}
#menu-accordeon li li:hover {
background: #999;
}
#menu-accordeon ul li:last-child {
border-radius: 0 0 6px 6px;
border:none;
}
#menu-accordeon li:hover li {
max-height: 15em;
}
</style>
</head>
<body>
<ul id="menu-accordeon">
<li><a href="#">Lien menu 1</a>
<ul>
<li><a href="#">lien sous menu 1</a></li>
<li><a href="#">lien sous menu 1</a></li>
<li><a href="#">lien sous menu 1</a></li>
<li><a href="#">lien sous menu 1</a></li>
</ul>
</li>
<li><a href="#">Lien menu 2</a>
<ul>
<li><a href="#">Lien sous menu 2</a></li>
<li><a href="#">Lien sous menu 2</a></li>
<li><a href="#">Lien sous menu 2</a></li>
<li><a href="#">Lien sous menu 2</a></li>
</ul>
</li>
<li><a href="#">Lien menu 3</a>
<ul>
<li><a href="#">Lien sous menu 3</a></li>
<li><a href="#">Lien sous menu 3</a></li>
<li><a href="#">Lien sous menu 3</a></li>
<li><a href="#">Lien sous menu 3</a></li>
</ul>
</li>
</ul>
</body>
</html>
Bonjour
essayez en remplaçant votre code
try
{
$bdd = new PDO('mysql:host=localhost;dbname=phpbb', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
par
<?php
// connexion à la base de données
try {
$bdd = new PDO("$host;dbname=$base", $nom_utilisateur, $password);
} catch(Exception $e) {
exit('Impossible de se connecter à la base de données.');
}
// exécution de la connexion à la base de données
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
?>
Pour l'affichage du resultat je ferai dans ce genre
<?php
//les titres des colonnes
echo "<br/>";
echo "<center>";
echo "<table >";
echo " <tr>";
echo " <th><b>Text</b></th>";
echo " <th><b>Destinataire</b></th>";
echo" </tr>";
//la requete
$requete = "SELECT login AS 'Destinataire' ,
text AS 'Text'
FROM messages;
$html = "";
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
$html .= " <td>" .$donnees["Text" ]." </td>";
$html .= " <td>" .$donnees["Destinataire" ]." </td>";
}
Bonjour,
je ne suis certaine mais je crois que çà devrait aller
<input type="submit" name="ok" style="background:url(ok.jpg) no-repeat;" value="ok" />
Bonjour codeur21
Généralement quand on utilise # dans la balise <a> cela signifie que ce lien redirigie vers un lien dans la même page
je ne suis pas certaine mais essayez comme çà:
au lieu de mettre :
<a href="#" id="advancedSearchLink">{'menuSearchEngine_advanced_search'|lang}</a>
essayer avec
<a href="#C1"> Formulaire </a><br/>
<a href="#C2"> Formulaire2 </a><br/>
A l'emplacement de ce lien il faudrait mettrre
<h2><a name="C1">Formulaire </a></h2>
@+
NB j'ai corrigé mon code.
Bonjour Maljuna Kris
Je vais essayer de voir pourquoi la connexion ne sais pas et je tiens au courant.
Merci de votre aide.
Salut à tous
Je viens de voir que le code que j'utilise pour la connexion à la base de données pose problème.
Il n'y a pas de messages d'erreur, mais rien du tout de s'affiche.
try {
$bdd = new PDO("$BDD_ADRESSE;dbname=$BDD_DBNAME", $BDD_LOGIN, $BDD_PASSWORD);
} catch(Exception $e) {
exit('Impossible de se connecter à la base de données.');
}
Le problème du coup c'est qu je ne vois pas trop comment faire.
Sinon, pour répondre à votre question, si j'utilise des div collapse c'est parce je dois travailler sur Bootstrap et qu'il y a une centaine de questions.
Avec des div, ils ne verront les réponses que la réponses sur laquelle ils cliqueront.
Si je n'arrive vraiment pas à faire avec les div, j'utiliserai un tableau.
Je retourner à mon travail.
Merci et à plus tard
Bonjour à tous et toutes.
Je suis débutante en développement sur Bootstrap.
Je voudrais réaliser une FAQ.
Je me demande si c'est possible de faire une requête SQL et de mettre les résultats dans des div collapse.
Pour l'instant je remplissait les dic à la main mais comme je dois gérer de plus en plus de logiciels, c'est la galère de le faire manuellement.
Je vous donne le code que j'ai défait fait et tester.
Apparemment, la connexion à la base de données et Ok. Le problème est que l'écran est que les données se s'affichent pas.
Je vous mets ci-dessous le code bootstrap de la page php
Code php
<?php
$BDD_ADRESSE = "mysql:host=127.0.0.1";
$BDD_DBNAME = "faq";
$BDD_LOGIN = "root";
$BDD_PASSWORD = "";
try {
$bdd = new PDO("$BDD_ADRESSE;dbname=$BDD_DBNAME", $BDD_LOGIN, $BDD_PASSWORD);
} catch(Exception $e) {
exit('Impossible de se connecter à la base de données.');
}
$requete = "SELECT probleme, solution FROM problemes";
// exécution de la requête
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
?>
<section id="faq">
<div class="container">
<?php
$i = 1;
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
?>
<div class="row">
<div class="col-lg-12">
<div class="panel-group" id="accordion">
<!-- Question -->
<?php echo htmlentities($donnees['probleme'], ENT_QUOTES, 'UTF-8'); ?>
<div class="panel panel-default">
<div class="panel-heading"><h4 class="panel-title"><a class="accordion-toggle" data-toggle="collapse" href="#collapseOne">Question <?php echo $i; ?></a></h4></div>
<!-- div de la Reponses -->
<div id="collapseOne" class="panel-collapse collapse">
<div class="panel-body">
<?php echo htmlentities($donnees['solution'], ENT_QUOTES, 'UTF-8'); ?>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
$i++;
}
?>
</div><!-- <div class="container"> -->
</section>
Ici le code de ma table et quelques lignes
CREATE TABLE IF NOT EXISTS `problemes` (
`id_probleme` int(11) NOT NULL AUTO_INCREMENT,
`id_logiciel` int(11) NOT NULL,
`probleme` text NOT NULL,
`solution` text NOT NULL,
PRIMARY KEY (`id_probleme`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `problemes`
--
INSERT INTO `problemes` (`id_probleme`, `id_logiciel`, `probleme`, `solution`) VALUES
(1, 1, 'Problème impression de pdf', 'Vérifier qu''Adobe soit installé'),
(2, 2, 'Je n''arrive pas à demarrer easyphp quand skype est déjà allumé', 'Il faut démarré easyphp puis skype');
Je continue de chercher la solution.
Je vous remercie d'avance pour votre aide.
Bonjour
Je vous donne un exemple de formulaire et de requête SQL INSERT INTO.
Exemple de formulaire en php
<?php
echo "<form method='post'action='clients_rajout_resultat_page.php'> \n";
echo "<table class=\"green\"> \n";
echo "<tr><td> Nom du client </td><td><input type='text' name='nom_client'> </td></tr> \n";
echo "<tr><td> Adresse </td><td><input type='text' name='adresse_client'> </td></tr> \n";
echo "<tr><td> Commune </td><td><input type='text' name='commune_client'> </td></tr> \n";
echo "<tr><td> Adresse mail </td><td><input type='text' name='mail_client'> </td></tr> \n";
echo "<tr><td> Coordonnées téléphoniques </td><td><input type='text' name='num_tel_client'> </td></tr> \n";
echo "<tr><td> Observations </td><td><input type='text' name='observation_clients'> </td></tr> \n";
echo "<tr><td> </td><td><input type='submit'></td></tr> \n";
echo "</table> \n";
echo "</form> \n";
?>
Les informations saisies au clavier sont envoyées à la page : clients_rajout_resultat_page.php
Sur cette page il faut pouvoir récupéere les données.
<?php
//code pour la connexion à la base de donnees
$BDD_ADRESSE = "mysql:host=127.0.0.1";
$BDD_DBNAME = "maBaseDeDonnees";
$BDD_LOGIN = "root";
$BDD_PASSWORD = "";
try {
$bdd = new PDO("$BDD_ADRESSE;dbname=$BDD_DBNAME", $BDD_LOGIN, $BDD_PASSWORD);
} catch(Exception $e) {
exit('Impossible de se connecter à la base de données.');
}
// exécution de la requête
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
//recuperation des donnees
if(isset($_REQUEST["nom_client" ])) {$nom_client = $_REQUEST["nom_client" ];}
else {$nom_client = "";}
if(isset($_REQUEST["adresse_client" ])) {$adresse_client = $_REQUEST["adresse_client" ];}
else {$adresse_client = "";}
if(isset($_REQUEST["commune_client" ])) {$commune_client = $_REQUEST["commune_client" ];}
else {$commune_client = "";}
if(isset($_REQUEST["mail_client" ])) {$mail_client = $_REQUEST["mail_client" ];}
else {$mail_client = "";}
if(isset($_REQUEST["num_tel_client" ])) {$num_tel_client = $_REQUEST["num_tel_client" ];}
else {$num_tel_client = "";}
if(isset($_REQUEST["observation_clients"])) {$observation_clients = $_REQUEST["observation_clients" ];}
else {$observation_clients = "";}
?>
Pour enregistrer les informations dans la base de données il faut mettre la requête SQL
<?php
$query = "INSERT INTO clients (id_client, nom_client, adresse_client, commune_client, mail_client, num_tel_client, observation_clients)
VALUES (NULL , '$nom_client', '$adresse_client', '$commune_client', '$mail_client', '$num_tel_client', '$observation_clients') ;";
execute_query($query);
?>
Je pense que çà devrait marcher
A mon tour de vous demande de l'aide.
J'ai également une question à poser mais je ne sais pas comment il faut faire.
Pouvez-vous, s'il vous plaît m'indiquer ce que je dois faire.
Merci
Pages : 1