Problème recherche video

Zoubs -  
nicelife90 Messages postés 676 Statut Membre -
Bonjour, voila un petit script qui recherche puis affiche les videos en resultat, le problème est qu'il me dit "undefined index : video" et je ne sais plus trop quoi faire, aidez moi svp, et si vous avez des idées pour m'aider a améliorer mon script de recherche ne vous genez pas :)

<!DOCTYPE html>
<html>
<header>
<meta charset = "utf-8"/>
</header>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch (exception $e)
{
die('Erreur : ' . $e->getMessage());
}

if(isset($_POST['requete']) && $_POST['requete'] != NULL)
{
mysql_connect('localhost','root','');
mysql_select_db('test');

$requete = htmlspecialchars($_POST['requete']);
$vid = mysql_query("SELECT * FROM test_video WHERE video LIKE '%$requete%' ORDER BY id DESC") or die (mysql_error());
$nb_resultats = mysql_num_rows($vid);
if($nb_resultats != 0)
{

?>
<h3>Résultats de votre recherche.</h3>
<p>Nous avons trouvé <?php echo $nb_resultats;
if($nb_resultats > 1) { echo ' résultats'; } else { echo ' résultat'; }
?>
dans notre base de données. Voici les videos que nous avons trouvées :<br/>
<br/>
<?php

while ($donnees = $vid -> mysql_fetch_array($vid))
{

echo '<video src = "uploads\\'.$donnees['video'].'" controls>'.$donnees['video'].' </video></br></br>';
}

?>
<?php

?><br/>
<br/>
<a href="Recherche.php">Faire une nouvelle recherche</a></p>
<?php
}
else
{
?>
<h3>Pas de résultats</h3>
<p>Nous n'avons trouvé aucun résultat pour votre requête "<? echo $_POST['requete']; ?>". <a href="Recherche.php">Réessayez</a> avec autre chose.</p>
<?php
}
mysql_close(); // on ferme mysql, on n'en a plus besoin
}
else
{
?>
<p>Vous allez faire une recherche dans notre base de données concernant vidéos. Tapez un nom pour réaliser une recherche.</p>
<form action="result_rech.php" method="Post">
<input type="text" name="requete" size="10">
<input type="submit" value="Rechercher">
</form>
<?php
}

?>
</html>


1 réponse

  1. nicelife90 Messages postés 676 Statut Membre 151
     
    Salut,

    Tu peux essayer ceci.

    <?php
    /*
    | -------------------------------------------
    |       SESSION
    | -------------------------------------------
    */
    if (!isset($_SESSION)) session_start();
    
    
    /*
    | -------------------------------------------
    |       MySQL Infos
    | -------------------------------------------
    */
    $bdd_host   = "localhost";
    $bdd_username  = "trinity";
    $bdd_pass   = "trinity";
    $bdd_port  = "3306";
    $bdd_name   = "ccm";
    
    
    /*
    | -------------------------------------------
    |       MySQL Connection
    | -------------------------------------------
    */
    $mysqli = new mysqli($bdd_host, $bdd_username, $bdd_pass, $bdd_name, $bdd_port);
    if ($mysqli->connect_errno) {
        echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }
    $mysqli->query("SET NAMES UTF8");
    $mysqli->set_charset('utf8');
    
    ?>
    
    
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Document sans nom</title>
    </head>
    
    <body>
    <?php
     
     
    if (isset($_POST['requete']) && $_POST['requete'] != NULL) {
    
     $requete = htmlspecialchars($_POST['requete']);
     $vid = $mysqli->query("SELECT * FROM 'test_video' WHERE 'video' LIKE '%".$requete."%' ORDER BY 'id' DESC");
     $nb_resultats = $mysqli->num_rows($vid); 
     
     if ($nb_resultats > 0){ 
      echo '<h3>Résultats de votre recherche.</h3>';
      echo '<p>Nous avons trouvé' . $nb_resultats . ($nb_resultats > 1) ? ' résultats'  : ' résultat';
      echo 'dans notre base de données. Voici les videos que nous avons trouvées :<br/><br/>';
      
      
      while ($donnees = $vid->fetch_assoc($vid)) {  
       echo '<video src = "uploads\\'.$donnees['video'].'" controls>'.$donnees['video'].' </video></br></br>';
      } 
      ?>
           
      <br/>
      <br/>
      <a href="Recherche.php">Faire une nouvelle recherche</a></p>
      <?php
     } 
    
     else
     {
      ?>
      <h3>Pas de résultats</h3>
      <p>Nous n'avons trouvé aucun résultat pour votre requête "<? echo $_POST['requete']; ?>". <a href="Recherche.php">Réessayez</a> avec autre chose.</p>
      <?php
     }
    }
    
    /*
     * La recherche n'a pas été lancé
     */
    else { ?>
     <p>Utiliser la barre de recherche pour effectuer une recherche dans notre base de données de vidéos.</p>
     <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
            <input type="text" name="requete" size="40">
            <input type="submit" value="Rechercher">
     </form>
     <?php
    } ?>
    
    
    </body>
    </html>
    


    Si tu obtiens la même erreur vérifie ta base de donnée ici video fais référence au champ video de la table test_video de la base de donnée ccm ici dans mon example.

    Ajuste le script avec les info de connexion de ta base de donné.
    Bonne chance à toi et bonne fin de journée!
    N!C£-L!F£!!!
    0
    1. Zoubs
       
      Salut, merci de ta réponse, j'ai essayé ton script et ça me donne comme erreur : Fatal error: Call to undefined method mysqli::num_rows()
      0
    2. nicelife90 Messages postés 676 Statut Membre 151
       
      oui je suis désoler je ne l'avais pas tester :

      J'ai corriger et tester celui ci :

      <?php
      /*
      | -------------------------------------------
      | 			   SESSION
      | -------------------------------------------
      */
      if (!isset($_SESSION)) session_start();
      
      
      /*
      | -------------------------------------------
      | 			   MySQL Infos
      | -------------------------------------------
      */
      $bdd_host 		= "localhost";
      $bdd_username 	= "trinity";
      $bdd_pass 		= "trinity";
      $bdd_port		= "3306";
      $bdd_name 		= "ccm";
      
      
      /*
      | -------------------------------------------
      | 			   MySQL Connection
      | -------------------------------------------
      */
      $mysqli = new mysqli($bdd_host, $bdd_username, $bdd_pass, $bdd_name, $bdd_port);
      if ($mysqli->connect_errno) {
          echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
      }
      $mysqli->query("SET NAMES UTF8");
      $mysqli->set_charset('utf8');
      
      ?>
      
      
      <!doctype html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>Document sans nom</title>
      </head>
      
      <body>
      <?php
      	
      	
      if (isset($_POST['requete']) && $_POST['requete'] != NULL) {
      
      	$requete = htmlspecialchars($_POST['requete']);
      	$vid = $mysqli->query("SELECT * FROM 'test_video' WHERE 'video' LIKE '%".$requete."%' ORDER BY 'id' DESC");
      	$nb_resultats = $vid->num_rows; 
      	
      	if ($nb_resultats > 0){ 
      		echo '<h3>Résultats de votre recherche.</h3>';
      		echo '<p>Nous avons trouvé' . $nb_resultats . ($nb_resultats > 1) ? ' résultats'  : ' résultat';
      		echo 'dans notre base de données. Voici les videos que nous avons trouvées :<br/><br/>';
      		
      		
      		while ($donnees = $vid->fetch_assoc()) {		
      			echo '<video src = "uploads\\'.$donnees['video'].'" controls>'.$donnees['video'].' </video></br></br>';
      		} 
      		?>
             
      		<br/>
      		<br/>
      		<a href="<?php echo $_SERVER['PHP_SELF']; ?>">Faire une nouvelle recherche</a></p>
      		<?php
      	} 
      
      	else
      	{
      		?>
      		<h3>Pas de résultats</h3>
      		<p>Nous n'avons trouvé aucun résultat pour votre requête "<? echo $_POST['requete']; ?>". <a href="<?php echo $_SERVER['PHP_SELF']; ?>">Réessayez</a> avec autre chose.</p>
      		<?php
      	}
      }
      
      /*
       * La recherche n'a pas été lancé
       */
      else { ?>
      	<p>Utiliser la barre de recherche pour effectuer une recherche dans notre base de données de vidéos.</p>
      	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
              <input type="text" name="requete" size="40">
              <input type="submit" value="Rechercher">
      	</form>
      	<?php
      } ?>
      
      
      </body>
      </html>
      
      
      0
    3. Zoubs
       
      Salut, je m'excuse du retard, je suis un peu débordé ces jours ci ^^"

      il m'affiche "Trying to get property of non-object" comme erreur, et je pense que le script de base est bon, juste que la boucle ou l'affichage est défaillant, es-que ces lignes sont correctes ?

      while ($donnees = $vid -> mysql_fetch_array($vid))
      {

      echo '<video src = "uploads\\'.$donnees['video'].'" controls>'.$donnees['video'].' </video></br></br>';
      }
      0
    4. nicelife90 Messages postés 676 Statut Membre 151
       
      ici ce n'est pas bon,

      while ($donnees = $vid -> mysql_fetch_array($vid))
      


      ça devrais être

      while ($donnees = $vid->fetch_array())
      
      0
    5. nicelife90 Messages postés 676 Statut Membre 151
       
      Le deuxième script que je t'ai envoyé le 13 avril 2014 à 05:10 est tester et fonctionnel inspire toi de cette syntaxe.
      0