Str_replace

Résolu
Bonjour à tous et bon dimanche,

Je bloque sur la fonction str_replace...

Je vous explique, j'ai une redirection htaccess, je récupère dans l'url la variable "ville" qui va me servir à taper dans ma bdd.

Sauf que dans l'url, "ville" peut posséder des tirets et dans ma bdd, "ville" n'a pas de tirets.

Vous avez une idée comment faire ?

Le code original :


<?php
$path="assets/img/villages/";
require_once 'httpRequest/connection.php';
$sql = "SELECT * FROM etablissement where type = 'hotel' AND ville = '".$_GET['ville']."' AND visible='1'";
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){
?>
<body id="home" class="homepage">
<section id="content">
<div class="container">
<div class="content">
<div class="container-fluid">

<div class="col-sm-12">
<h1 class = "column-title"><?php echo 'Hôtels à '.ucfirst($_GET['ville']); ?></h1>
<div class="col-sm-8">
<?php
while($row = mysqli_fetch_array($result)){
?>


Merci pour votre temps.

3 réponses

  1. Contributeur
    bonjour, qu'as-tu essayé de faire avec la fonction qui te bloque? peux-tu montrer des exemples, et expliquer pourquoi tu n'es pas satisfait?
    0
    1. voici :


      <?php
      $path="assets/img/villages/";
      require_once 'httpRequest/connection.php';
      $sql = "SELECT * FROM etablissement where type = 'hotel' AND ville = '".$_GET['ville']."' AND visible='1'";
      $ville = str_replace('-', '', $ville);
      if($result = mysqli_query($link, $sql)){
      if(mysqli_num_rows($result) > 0){
      ?>
      <body id="home" class="homepage">
      <section id="content">
      <div class="container">
      <div class="content">
      <div class="container-fluid">

      <div class="col-sm-12">
      <h1 class = "column-title"><?php echo 'Hôtels à '.ucfirst($_GET['ville']); ?></h1>
      <div class="col-sm-8">
      <?php
      while($row = mysqli_fetch_array($result)){
      ?>
      0
      1. Contributeur
        par exemple:
        $villesanstiret = str_replace('-', '', $_GET['ville']) ;
        $sql = "SELECT * FROM etablissement where type = 'hotel' AND ville = '" . $villesanstiret . "' AND visible= '1' " ;
        0
      2. @yg_beToujours pas.....

        il remplace pas les tirets


        <?php
        $path="assets/img/villages/";
        require_once 'httpRequest/connection.php';
        $villesanstiret = str_replace('-', '', $_GET['ville']) ;
        $sql = "SELECT * FROM etablissement where type = 'hotel' AND ville = '" . $villesanstiret . "' AND visible= '1' " ;
        if($result = mysqli_query($link, $sql)){
        if(mysqli_num_rows($result) > 0){
        ?>
        <body id="home" class="homepage">
        <section id="content">
        <div class="container">
        <div class="content">
        <div class="container-fluid">

        <div class="col-sm-12">
        <h1 class = "column-title"><?php echo 'Hôtels à '.ucfirst($_GET['ville']); ?></h1>
        <div class="col-sm-8">
        <?php
        while($row = mysqli_fetch_array($result)){
        ?>
        0
      3. Contributeur
        @fredodo13comment sais-tu qu'il ne supprime pas les tirets? il ne trouve aucun hôtel?
        ajoute
        echo $sql;
        juste avant
        if($result = mysqli_query($link, $sql))
        0
    2. ET MERCI !!!

      j'ai vu la requette, il manquant tout simplement un espace dans la fonction str ;)

      pour les prochains, voici le code :


      <?php
      $path="assets/img/villages/";
      require_once 'httpRequest/connection.php';
      $villesanstiret = str_replace('-', ' ', $_GET['ville']) ;
      $sql = "SELECT * FROM etablissement where type = 'hotel' AND ville = '" . $villesanstiret . "' AND visible= '1' " ;
      if($result = mysqli_query($link, $sql)){
      if(mysqli_num_rows($result) > 0){
      ?>


      MERCI YB_BE ! BON DIMANCHE A TOI !!!!
      0