Problème recherche video

Fermé
Zoubs - 11 avril 2014 à 13:29
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 - 14 avril 2014 à 20:23
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>


A voir également:

1 réponse

nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
Modifié par nicelife90 le 11/04/2014 à 21:24
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
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
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
13 avril 2014 à 05:10
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
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
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
14 avril 2014 à 20:22
ici ce n'est pas bon,

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


ça devrais être

while ($donnees = $vid->fetch_array())
0
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
14 avril 2014 à 20:23
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