PHP|Débutant :: Forums

Advertisement

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

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

#1 Forum Général PHP » Barre de moteur de recherche » 20-02-2015 03:42:16

neo88
Réponses : 1

Bonjour tout le monde,

J'aimerai crée sur ma page un moteur de recherche, j'ai donc commencé et "sécurisé" en mettant un message si il n'y a pas de caractères saisis ou moins de 3 mais cela ne fonctionne pas quand je test rien ne ce passe.

Voici mon code :

<form method="POST" action="search.php">
<strong>Votre recherche</strong>
<input type="text" name="search"><br/><br/>
<input type="submit" value="chercher" name="submit"
</form>

<?php
if(isset($_POST['submit']))
{
$search = mysqli_real_escape_string(htmlentities(trim($_POST['search'])));
  if(empty($search))
  {
  $error[]="Veuillez saisir une recherche";
  }else if(strlen($search)<2)
  {
  $error[]="Veuillez saisir une recherche qui dépasse les 2 caractères";
  }


 
   
foreach($error as $errors) { echo $errors."<br/>"; }

}

?>


Merci de vos réponses

#2 Re : Forum Général PHP » Trie par ordre croissant » 15-02-2015 23:18:53

Merci pour ta réponse,

Enfaite j'aimerais que l'utilisateur puisse choisir lui même le trie et changer à sa guise, j'ai trouvé comme code celui ci mais il me met des erreurs pour les lignes en gras pouvez-vous m'aider svp :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php


// Connexion à la base de donnée
$base = mysqli_connect ('localhost', 'root', '')
       or die("Impossible de se connecter : " . mysqli_error());
mysqli_select_db ($base,'p&v bike') ;


// Le nom de notre table
$tablename = 'produits';


// Tri sur colonne
$tri_autorises = array('Idpr','Designationpr','Prixpr');

$order_by = in_array(isset($_GET['order']),$tri_autorises) ? $_GET['order'] : 'Idpr';

// Sens du tri
$order_dir = isset($_GET['inverse']) ? 'DESC' : 'ASC';


// Préparation de la requête

$sqli = "
    SELECT Designationpr, Prixpr, Idpr
    FROM produits
    ORDER BY {$order_by} {$order_dir}
";
$result = mysqli_query($sqli);


// Notre fonction qui affiche les liens
function sort_link($text, $order=false)
{
    global $order_by, $order_dir;

    if(!$order)
        $order = $text;

    $link = '<a href="?order=' . $order;
    if($order_by==$order && $order_dir=='ASC')
        $link .= '&inverse=true';
    $link .= '"';
    if($order_by==$order && $order_dir=='ASC')
        $link .= ' class="order_asc"';
    elseif($order_by==$order && $order_dir=='DESC')
        $link .= ' class="order_desc"';
    $link .= '>' . $text . '</a>';

    return $link;
}


// Affichage
?>
<style type="text/css">
a.order_asc,
a.order_desc:hover {
    padding-right:15px;
    background:transparent url(s_asc.png) right no-repeat;
}
a.order_desc,
a.order_asc:hover {
    padding-right:15px;
    background:transparent url(s_desc.png) right no-repeat;
}
</style>

<table>
    <tr>
        <th><?php echo sort_link('Idpr', 'idpr') ?></th>
        <th><?php echo sort_link('Designationpr', 'designationpr') ?></th>
        <th><?php echo sort_link('Prixpr', 'prixpr') ?></th>
       
    </tr>
<?php while( $row=mysqli_fetch_assoc($result) ) : ?>
    <tr>
        <td><?php echo $row['Idpr'] ?></td>
        <td><?php echo $row['Designationpr'] ?></td>
        <td><?php echo $row['Prixpr'] ?></td>
       
    </tr>
<?php endwhile ?>
</table>

#3 Forum Général PHP » Trie par ordre croissant » 15-02-2015 23:18:53

neo88
Réponses : 2

Bonjour tout le monde, je débute en php et j'aurai une petite question :

J'ai un tableau de produits en php : produits.php qui vient d'une table dans PHPmyadmin.

Pour l'instant ça va le tableau s'affiche bien mais j'aimerai faire des "tris" dans ce tableau comme par exemple tiré par prix croissant comme sur les sites de ventes.

J'ai cherché et je n'est pas trouvé d'information.

Merci de votre aide.

Pour info voila mon code produits.php

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Liste des produits</title>
</head>

<body>
<?php
echo '<h2>Liste des produits présentées en tableau<br /><br /></h2>';
$base = mysqli_connect ('localhost', 'root', '')
       or die("Impossible de se connecter : " . mysqli_error());
mysqli_select_db ($base,'p&v bike') ;
$sql = "SELECT Designationpr, Prixpr, Idpr FROM produits";
$req = mysqli_query($base,$sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysqli_error($base));

// Affichage de l'entête du tableau
echo "<table  border=\"0\" cellpadding=\"1\">";
echo "<tr>";
for ($champ=0; $champ < mysqli_field_count($base); $champ++)
   {
      $nom_du_champ =  mysqli_fetch_field_direct($req, $champ);
      echo "<td width=\"150\" align=\"center\" bgcolor=\"#999999\">$nom_du_champ->name</td>";
   }
echo "</tr>";


// affichage des voitures
while ($data = mysqli_fetch_array($req))
    {
        echo "<tr>"; // nouvelle ligne du tableau
        echo "<td align=\"center\">".utf8_encode($data['Designationpr'])."</td>";
        echo "<td align=\"center\">".utf8_encode($data['Prixpr'])."</td>";
        echo "<td align=\"center\">".utf8_encode($data['Idpr'])."</td>";
       
        echo "</tr>"; // fin de la ligne du tableau
    }
   
// terminer la table
echo "</table>";


// Libèration de la mémoire utilisée pour cette requête dans sql
//$data de PHP lui est toujours accessible !
mysqli_free_result ($req);

// Fermeture de sql
mysqli_close ($base);
?>
</body>
</html>

Pied de page des forums

Propulsé par FluxBB