PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#2 MySQL, PostgreSQL, etc... » Affichage du résultat d'une requête SQL avec IF » 28-06-2015 21:49:37

Delphine
Réponses : 2

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.

#3 Re : MySQL, PostgreSQL, etc... » Utiliser des INT ou des VARCHAR dans une table associative ? » 09-06-2015 13:59:14

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.

#4 Re : Forum Général PHP » Moteur de recherche interne dans mon site web » 26-05-2015 06:36:32

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 :

if(isset($_REQUEST[""     ])) {$motCle= $_REQUEST["motCle"    ];}
else                                {$motCle= "";}

Il faut maintenant faire une requête SQL pour recupérer les données liées à notre motCle

  <?php
      $query      = "SELECT motCle, adresse ";
      $query     .= "FROM   table   ";
      $query     .= "WHERE  motCle LIKE '%$motCle%' ";
      $result = execute_query($query);
      display_table_result($result);
  ?>

Affichage du resultat

function display_result($result) {
  echo "<table border=1>\n";
  //HEADER ROW
  echo "<tr>\n";
 
  echo "  <th>  Mot Clé</th>\n";
  echo "  <th>  Adresses</th>\n";
 
  echo "</tr>\n";
  //DATA ROWS
  while($row = mysql_fetch_array($result)) {
    echo "<tr>\n";           
    echo "  <td>" . "<a href=\"" . $row[1] . "\">" . $row[0] . "</a>" . "</td>\n";
  }//end while
  echo "</table>\n";
}//end function

Je pense que çà devrait vous aider.

#5 Re : Forum Général PHP » Comment séparer les mots récupérés dans un input type text ? » 11-11-2014 00:58:43

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);
                }

?>

#6 Re : Forum Général PHP » Comment séparer les mots récupérés dans un input type text ? » 11-11-2014 00:58:43

Bonjour Maljuna Kris

je vais essayer avec les fonctions PHP explode() ou split().

Je vous tiens au courant
Merci et @+

#7 Forum Général PHP » Comment séparer les mots récupérés dans un input type text ? » 11-11-2014 00:58:43

Delphine
Réponses : 3

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.

#8 Re : Forum Général PHP » Requête SQL et div sous bootstrap » 30-10-2014 22:14:32

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>

#10 Re : HTML, xHTML CSS » probleme menu et div » 29-10-2014 03:34:40

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>

#11 Re : Forum Général PHP » Modification script vers php5.5 » 28-10-2014 08:57:03

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"            ]."&nbsp;</td>";
$html .= "    <td>"         .$donnees["Destinataire"    ]."&nbsp;</td>";
}

#12 Re : HTML, xHTML CSS » formulaire, une image à la place d'un bouton » 28-10-2014 04:54:55

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" />

#13 Re : HTML, xHTML CSS » Lien fonctionne qu'au deuxieme clic » 28-10-2014 21:20:28

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>

@+ smile

NB j'ai corrigé mon code.

#14 Re : Forum Général PHP » Requête SQL et div sous bootstrap » 30-10-2014 22:14:32

Bonjour Maljuna Kris


Je vais essayer de voir pourquoi  la connexion ne sais pas et je tiens au courant.

Merci de votre aide.

#15 Re : Forum Général PHP » Requête SQL et div sous bootstrap » 30-10-2014 22:14:32

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

#16 Forum Général PHP » Requête SQL et div sous bootstrap » 30-10-2014 22:14:32

Delphine
Réponses : 7

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.

#17 Re : Forum Général PHP » remplir une Base de données avec un formulaire tableau » 22-10-2014 00:26:53

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

Pied de page des forums

Propulsé par FluxBB