8768 sujets

Développement web côté serveur, CMS

Bonjour,
La page html contient 5 champs qui ne sont pas tous obligatoirement renseignés.
Method post envoie le contenu des champs à une page php.
La requête ne doit extraire de la base de données que les lignes concernées par le ou les champs renseignés.
Je bloque face à la complexité de l'ensemble. Smiley bawling
Merci de votre aide. Smiley lol

  <tr>
        <td style="font-family: 'Conv_Muli-Italic'; font-size: 16px; text-align: center; font-weight: bold; color: #808080;"><form action = "ocr6.php" method = "POST">
          <p>&nbsp;</p
          <table width="100%">
            <tbody>
              <tr>
                <th scope="col">TYPE THE WORD OF YOUR CHOICE IN TEXT FIELDS. </th>
              </tr>
            </tbody>
          </table>
          <p>&nbsp;</p
          <table width="100%" align="center">
            <tbody>
              <tr>
                <th scope="col"><p>NAME</p>
                  <p>
                    <input name="nom" type="text"  />
                  </p></th>
                <th scope="col"><p>STATE</p>
                  <p>
                    <input name="nom2" type="text" />
                  </p></th>
                <th scope="col"><p>CATEGORY</p>
                  <p>
                    <input name="nom3" type="text" />
                  </p></th>
                <th scope="col"><p>DETAIL</p>
                  <p>
                    <input name="nom4" type="text" />
                  </p></th>
                <th scope="col"><p>ORIGINE</p>
                  <p>
                    <input name="nom5" type="text" />
                  </p></th>
              </tr>


<?php
$mysqli = new mysqli("localhost", "....", "mot de passe", "mabase");

if ($mysqli->connect_errno) {
  die('<p>Connexion impossible : '.$mysqli->connect_error.'</p>');
}
$nom = $_POST['nom'];
$nom2 = $_POST['nom2'];         
$nom3 = $_POST['nom3'];
$nom4 = $_POST['nom4'];                 
$nom5 = $_POST['nom5'];
    
$stmt = $mysqli->prepare("SELECT FROM fiveC2 WHERE name LIKE ? OR state LIKE ? OR category LIKE ? OR detail LIKE ? OR origine LIKE ? LIMIT 0, 3000");
$stmt->bind_param("sssss", '%$nom%', '%$nom2%', '%$nom3%', '%$nom4%', '%$nom5%');
$stmt->execute();
$result = $stmt->get_result();

if (!$result) {
  die('<p>ERREUR Requête invalide : '.$mysqli->error.'</p>');
}

while ($row = $result->fetch_assoc()) {
  $recherche = $row['recherche'] ;
  echo '<p>'.$recherche.'</p>'."\r\n" ;
}

$result->free() ;

$mysqli->close() ;
?>	</p>
    </blockquote>
</ul>
		          <p><strong> - FIN DE LA REQUETE - </strong></p>
			  </div>
		  </div>
		</div>
	</div>
</body>
</html>
Modérateur
Et l'eau,

Des paragraphes dans des <th>.... Smiley hum

C'est une piste (donc à déboguer si nécessaire. Ce sera à faire puisque tes noms de champs ne correspondent pas). Je l'ai fait de tête et le php commence à être loin....

<?php
    if(!empty($_POST)){
        $sql = 'SELECT * FROM fiveC2 WHERE ';
        $params = [];
        foreach($_POST as $k => $v){
            $sql .= $k.' LIKE :'.$k;
            $params[':'.$k] = "%".$v."%";
        }
        $query = $db->prepare($sql);
        $result = $query->execute($params);
        // etc.
    }
?>


De toute manière, je vois que tu ne connais pas vraiment le html et ton code php + sql est moyen (j'ai vu 2 énormes erreurs (une en sql l'autre en php)). Ce que je te conseille :
1. apprendre les bases (html, css)
2. tu passes à la suite en étudiant et approfondissant chaque sujet.

tant que tu n'auras pas franchi ces étapes, je peux t'assurer que ce sera le mur !
Modifié par niuxe (24 Jun 2021 - 23:10)