A voir également:
- Aider moi svp moteur de recherche
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Google moteur de recherche page d'accueil - Guide
- Safari moteur de recherche - Télécharger - Navigateurs
- Copernic moteur de recherche - Télécharger - Navigateurs
- Installer qwant moteur de recherche - Télécharger - Navigateurs
3 réponses
diablo13800
Messages postés
2890
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
16 février 2024
1 857
30 mars 2016 à 18:01
30 mars 2016 à 18:01
Bonjour,
Essayer avec Ceci plutôt comme requête:
En mettant $requete dans les quote , PHP ne remplace pas la valeur par la valeur correspondante ( j'imagine que c'est ca)
Essayer avec Ceci plutôt comme requête:
$query=mysql_query("SELECT nom FROM animes WHERE nom like '%".$requete."%' ORDER BY id DESC") or die(mysql_error());
En mettant $requete dans les quote , PHP ne remplace pas la valeur par la valeur correspondante ( j'imagine que c'est ca)
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
Modifié par jordane45 le 30/03/2016 à 18:23
Modifié par jordane45 le 30/03/2016 à 18:23
Bonjour,
1 - PS: Attention ... tu utilises l'ancienne extension Mysql (considérée comme obsolète ! )
Je t'invite fortement à passer à mysqli ou ( perso je préfère...) la PDO.
Je t'invite à lire ceci :
- https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete
- https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
2 - Penses à récupérer proprement tes variables AVANT de les utiliser.
Pour se faire.. tu peux utiliser l'écriture ternaire et les focntions ISSET ou !EMPTY.
3 - Tu as oublié de fermer/ouvrir des balises PHP un peu partout dans ton code....
Bref.. voici ton code remis en forme et corrigé : (sans le passage à mysqli ou pdo.. ça je te laisse voir )
Commence par sortir le code de connexion de ta BDD en le mettant dans un fichier à part.
Puis dans ta page
Cordialement,
Jordane
1 - PS: Attention ... tu utilises l'ancienne extension Mysql (considérée comme obsolète ! )
Je t'invite fortement à passer à mysqli ou ( perso je préfère...) la PDO.
Je t'invite à lire ceci :
- https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete
- https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
2 - Penses à récupérer proprement tes variables AVANT de les utiliser.
Pour se faire.. tu peux utiliser l'écriture ternaire et les focntions ISSET ou !EMPTY.
3 - Tu as oublié de fermer/ouvrir des balises PHP un peu partout dans ton code....
Bref.. voici ton code remis en forme et corrigé : (sans le passage à mysqli ou pdo.. ça je te laisse voir )
Commence par sortir le code de connexion de ta BDD en le mettant dans un fichier à part.
<?php //fihcier de connexion à la bdd : "cnxBDD.php" (que tu pourras changer en PDO ou mysqli) $host="localhost"; $user="root"; $pass=""; $db="dark_side"; mysql_connect($host,$user) or die ("erreur de connexion"); mysql_select_db($db) or die ("base de donnee introuvable"); ?>
Puis dans ta page
<?php //Connexion à la bdd require_once "cnxBDD.php"; //récupération "propre" des variables $requete = !empty($_POST['s']) ? htmlspecialchars($_POST['s']) : NULL; $search = isset($_POST['search']) ? $_POST['search'] : NULL; if($requete && $search){ $sql = "SELECT nom FROM animes WHERE nom LIKE '%$requete%' ORDER BY id DESC"; $query=mysql_query($sql) or die(mysql_error()); $nb_resultats= mysql_num_rows($query); if ($nb_resultats != 0){ echo "<h3> resutats de votre recherche.</h3>"; echo "<p>Nous avons trouver ".$nb_resultats; if ($nb_resultats > 1) {echo'resutats';} else {echo'resultat';} echo " DANS NOTRE BASE DE DONNEE VOICI LES NOMS QUE NOUS AVONS TROUVEES: </br></br> "; while ($donnees=mysql_fetch_array ($query)){ echo "<a href='recherche.php?id=".$donnees['id']."'>".$donnees[nom]."</a></br>"; } echo "<br><br>"; echo "<a href ='recherche.php'> FAIRE UNE NOUVELLE RECHERCHE </a></p>"; } else { echo "<h3> Pas de resultats</h3>"; echo "<p> Nous n'avons trouver aucun resultat pour votre requete ".$requete."<a href='recherche.php'> Reesayez </a> avec autre chose.</p>"; } mysql_close(); } ?>
Cordialement,
Jordane
Bonsoir merci beaucoup je viens de terminé de lire la documentation sur les FAQ dont vous avez donner les liens .j'ai aussi tester le code corriger mais cela ne marche pas aucune des requêtes ne marche peu importe ce que je entre comme recherche ça affiche seulement la page de recherche vide y'a rien svp aider moi
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
30 mars 2016 à 21:03
30 mars 2016 à 21:03
As tu testé ta requête directement dans ta bdd .?
erzascarlett
>
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
30 mars 2016 à 21:07
30 mars 2016 à 21:07
Oui ça marche dans la base de donnée mais par contre au niveau du script c'est mort
J'ai essayer avec PDO POUR LA CONNEXION ET j'ai cliquer sur OK ça marche toujours pas j'ai aussi installé easyphp et désactiver wamp pour essayer mais c'est la même chose
J'ai essayer avec PDO POUR LA CONNEXION ET j'ai cliquer sur OK ça marche toujours pas j'ai aussi installé easyphp et désactiver wamp pour essayer mais c'est la même chose
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
>
erzascarlett
30 mars 2016 à 21:15
30 mars 2016 à 21:15
Montre ton code (en PDO)
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
>
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
30 mars 2016 à 21:16
30 mars 2016 à 21:16
Montre nous également ton formulaire html
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
Modifié par jordane45 le 30/03/2016 à 21:25
Modifié par jordane45 le 30/03/2016 à 21:25
Tiens ... essayes ça en PDO :
Puis dans ta page
Cordialement,
Jordane
<?php //fihcier de connexion à la bdd : "cnxBDD.php" (que tu pourras changer en PDO ou mysqli) $host = "localhost"; $dbname = "dark_side"; $user = "root"; $pwd = ""; try { $bdd = new PDO("mysql:host=$host;dbname=$dbname", $user, $pwd); } catch (PDOException $e) { echo "<br>".$e."<br>"; printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e)); exit('Impossible de se connecter à la base de données.'); } ?>
Puis dans ta page
<?php //Connexion à la bdd require_once "cnxBDD.php"; //-------------------------------------------------// //------------ LE TEMPS DES TESTS -----------------// echo "<br> Variables POST :<pre>"; print_r($_POST); echo "<br>------------------</pre>"; //-------------------------------------------------// //récupération "propre" des variables $requete = !empty($_POST['s']) ? $_POST['s'] : NULL; if($requete){ //on prépare la requête et les variables $sql = "SELECT nom FROM animes WHERE nom LIKE :requete ORDER BY id DESC"; $a_datas = array(':requete' =>'%'.$requete.'%'); //execution de la requete try{ $prepare = $bdd->prepare($sql); $prepare->execute($a_datas); //on stocke le résultat dans un array $result = $prepare->fetchAll(); $nb_resultats = count($result); }catch(Exception $e){ //en cas de souci dans la requete echo "<br>Erreur ! ".$e->getMessage(); echo "<br> Requete :".$sql; } if ($nb_resultats>0){ echo "<h3> resutats de votre recherche.</h3>"; echo "<p>Nous avons trouver ".$nb_resultats; if ($nb_resultats > 1) {echo'resutats';} else {echo'resultat';} echo " DANS NOTRE BASE DE DONNEE VOICI LES NOMS QUE NOUS AVONS TROUVEES: </br></br> "; foreach($result as $donnees){ echo "<a href='recherche.php?id=".$donnees['id']."'>".$donnees['nom']."</a></br>"; } echo "<br><br>"; echo "<a href ='recherche.php'> FAIRE UNE NOUVELLE RECHERCHE </a></p>"; } else { echo "<h3> Pas de resultats</h3>"; echo "<p> Nous n'avons trouver aucun resultat pour votre requete ".$requete."<a href='recherche.php'> Reesayez </a> avec autre chose.</p>"; } } ?>
Cordialement,
Jordane
voici le formulaire
le code php que vous venez d'envoyer marche a la seule exception que lorsqu'il fait la recheche la seule action executer est qu'il ne touve pas le mot dans la base de donne pourtant quand je lance la meme requete dans la base de donnee le resultat affiche ce que j'ai demander
<fieldset><legend>DARK SIDE</legend> <div id="valentine"> <table align=center cellpadding= 5% cellspacing=5% > <tr><td> <a href ="index.php">ACCUEIL</td> <td><a href ="animes.php"> MORE</td> <td><a href="http://www.lovemyanime.net"> SCANS </td> <td><a href ="formulaire.php"> FORUM </td> <td> </br><form action="recherche.php" method="POST"> <span>SEARCH <input type="text" name="s" id="s" ></span> <input type="submit" value="ok" name="search" id="search"</form> </td></tr></table> </div> </fieldset>
le code php que vous venez d'envoyer marche a la seule exception que lorsqu'il fait la recheche la seule action executer est qu'il ne touve pas le mot dans la base de donne pourtant quand je lance la meme requete dans la base de donnee le resultat affiche ce que j'ai demander
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
>
erzascarlett
30 mars 2016 à 22:43
30 mars 2016 à 22:43
1 - **** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.2 - Peux tu essayer ceci :
Et coller ici ce que ça donne ?
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.2 - Peux tu essayer ceci :
//on prépare la requête et les variables $sql = "SELECT nom FROM animes WHERE nom LIKE '%$requete%' ORDER BY id DESC"; //execution de la requete try{ $prepare = $bdd->prepare($sql); $prepare->execute(); //on stocke le résultat dans un array $result = $prepare->fetchAll(); $nb_resultats = count($result); //le temps des tests : echo "<br>requête: <br>".$sql; echo "<br>resultat :<br>"; print_r($result); echo "<br> nb : ".$nb_resultats; }catch(Exception $e){ //en cas de souci dans la requete echo "<br>Erreur ! ".$e->getMessage(); echo "<br> Requete :".$sql; }
Et coller ici ce que ça donne ?
erzascarlett
>
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
30 mars 2016 à 23:46
30 mars 2016 à 23:46
Merci le résultat est correcte j'ai mis en commentaire les elements qui affichaient uniquement les tableaux.merci beaucoup
Svp comment pourrais je m'y prendre pour mettre un lien derrière chaque résultats
Au niveau de
Foreach ($result as $donnees) {
Écho "<a bref ='$donnees.php'>". $donnees['nom']."</a></p>
Ça affiche erreur
Array to string conversion
Svp comment pourrais je m'y prendre pour mettre un lien derrière chaque résultats
Au niveau de
Foreach ($result as $donnees) {
Écho "<a bref ='$donnees.php'>". $donnees['nom']."</a></p>
Ça affiche erreur
Array to string conversion
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
>
erzascarlett
30 mars 2016 à 23:57
30 mars 2016 à 23:57
OU SONT LES BALISES DE CODE ????
Merci de lire et d'appliquer ceci à l'avenir :Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Concernant ton souci de lien... c'est le $ en trop qui pose problème
Foreach ($result as $donnees) { echo "<a bref ='donnees.php'>". $donnees['nom']."</a></p> ",
A moins que tu ne veuilles pointer vers un fichier composé du "nom" remonté par ta requête ...
Dans ce cas :
Foreach ($result as $donnees) { echo "<a bref ='".$donnees['nom'].".php'>". $donnees['nom']."</a></p> ",
NB : echo ..ça s'écrit sans accent !
merci beaucoup c'etais la deuxieme option c'est bien passer encore mille merci
mon probleme se situais au niveau de la recuperation des donnees
je vais mettre aux PDO apres avoir chercher les documents dessus
pouriez vous examinez ce code de mon formulaire svp
voici le formulaire
mon probleme se situais au niveau de la recuperation des donnees
je vais mettre aux PDO apres avoir chercher les documents dessus
pouriez vous examinez ce code de mon formulaire svp
voici le formulaire
<?php include ("cnxBDD.php"); ?>
<!DOCTYPE html>
<html>
<head>
<meta charset ="utf -8" />
<link rel="stylesheet" type="text/css" href="lilicss.css">
<title> planet beatrice</title>
</head>
<body>
<?php include ("menu.inc.php");?>
<?php
$destinataire = '***@***';
$copie = 'oui';
$form_action = 'formulaire.php';
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
function Rec($text)
{
$text = htmlspecialchars(trim($text), ENT_QUOTES);
if (1 === get_magic_quotes_gpc())
{
$text = stripslashes($text);
}
$text = nl2br($text);
return $text;
};
function IsEmail($email)
{
$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
return (($value === 0) || ($value === false)) ? false : true;
}
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
$email = (IsEmail($email)) ? $email : '';
$err_formulaire = false;
if (isset($_POST['envoi']))
{
if (($nom != '') && ($email != '') && ($message != ''))
{
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
'Reply-To:'.$email. "\r\n" .
'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
'Content-Disposition: inline'. "\r\n" .
'Content-Transfer-Encoding: 7bit'." \r\n" .
'X-Mailer:PHP/'.phpversion();
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);
if (mail($cible, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>';
}
else
{
echo '<p>'.$message_non_envoye.'</p>';
};
}
else
{
echo '<p>'.$message_formulaire_invalide.'</p>';
$err_formulaire = true;
};
};
if (($err_formulaire) || (!isset($_POST['envoi'])))
{
echo '
<form id="contact" method="post" action="'.$form_action.'">
<fieldset><legend>Personal</legend>
<label for="nom">Nom :</label><input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />
<label for="email">Email :</label><input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />
</fieldset>
<fieldset><legend>Message</legend>
<label for="message">Message :</label><textarea id="message" name="message" tabindex="3" cols="165" rows="40">'.stripslashes($message).'</textarea>
<label><span> </span><input type="submit" value="submit" name="envoyer"></label>
</fieldset>
</form>
</body>
</html>';
};
?>
30 mars 2016 à 18:25
Non car la chaine de caractère est, quand à elle, encapsulée dans des double-quotes. Donc aucun souci dès lors qu'il s'agit d'une variable 'simple' et pas un array.
Fonctionnera sans souci.
Alors que pour un array tu dois, en effet, faire de la concaténation:
30 mars 2016 à 19:27
J'utilise la version wampserver 2.0