Page 1 sur 1

Afficher le texte sur rechercher.php?id=[id]

Posté : 02 sept. 2013, 10:03
par ISoon
Bonjour,

Je créer un moteur de recherche avec se code :
<?php
 
if(isset($_POST['submit']))
{
$requete = trim(stripcslashes(htmlspecialchars($_POST['requete'])));
 
mysql_connect('','','');
mysql_select_db('') or die('erreur de connexion à la DB');
 
$query = mysql_query("SELECT id,titre,description,texte FROM contenu WHERE cle
REGEXP '[[:<:]]".mysql_real_escape_string($requete)."[[:>:]]' OR description
REGEXP '[[:<:]]".mysql_real_escape_string($requete)."[[:>:]]' OR texte
REGEXP '[[:<:]]".mysql_real_escape_string($requete)."[[:>:]]' ORDER by id ASC")
or die(mysql_error());
 
$nb_resultats = mysql_num_rows($query);
 
if($nb_resultats != 0)
 
{
echo'Il existe <b>'.$nb_resultats.'</b>  ';
if($nb_resultats > 1)
{
    echo'R&eacute;sulats ';
}
else
{
    echo'R&eacute;sulat ';
}
echo 'pour votre recherche "<b>'.$requete.'</b>" trouvée : <br/>';
 
$i = "1";
 
while($donnees = mysql_fetch_array($query))
{
echo'<div class="cadre"><br/><br/><big><big>'.$i.'  <a title="'.$donnees['titre'].'" href="recherche.php?id='.$donnees['id'].'">'.$donnees['titre'].'</a></big></big><br/><p>'.$donnees['description'].'</p></div>';
$i++;
}
 
}
 
else {
echo 'Nous avons trouvée 0 résultats pour votre recherche "'.$requete.'", vous pouvez <a href="index.php">retournez à l index</a> ou ajouter votre <a href="insert_url.php">lien</a>';
}
 
 
}
 
 
 
?>
 
<html>
<head><title>Résultat de la recherche</title>
 
</html>
La recherche se passe bien, je mets un des mots clés que j'ai mis
Image

et je clique sur le "Titre".

Image

Donc comment faire pour afficher :
<?php '.$donnees['texte'].' ?>
dans le recherche?id=[ID].

Merci de votre aide. :D :arrow: :!:

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 02 sept. 2013, 11:19
par moogli
Salut,

Il te faut faire une requête select sur ta table avec un simple where
Select * from contenu where id = xxxx
Où xxx est la valeur issue de l'url (donc le tableau $_GET).

Pour info l'extension mysql est déprécié depuis php 5.4 (donc vouée à disparaître). Pour te préparer à cela tu peux utiliser l'extension mysqli. La seule grosse différence c'est que tu doit passer l'identifiant de connexion dans les fonction et le i dans le nom des fonctions ;)


@+

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 02 sept. 2013, 12:12
par ISoon
Salut,

Il te faut faire une requête select sur ta table avec un simple where
Select * from contenu where id = xxxx
Où xxx est la valeur issue de l'url (donc le tableau $_GET).

Pour info l'extension mysql est déprécié depuis php 5.4 (donc vouée à disparaître). Pour te préparer à cela tu peux utiliser l'extension mysqli. La seule grosse différence c'est que tu doit passer l'identifiant de connexion dans les fonction et le i dans le nom des fonctions ;)


@+
Merci de votre réponse, mais je ne sais pas ou mettre se code

Cordialement

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 02 sept. 2013, 15:25
par moogli
Ben sur la page qui doit afficher les détails ....
D'ailleurs c'est globalement le seul code super utile sur cette page vue que ce qui t'y intéresse c'est ce qu'il y a dans la table. ;)


@+

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 04 sept. 2013, 18:16
par ISoon
J'ai créer un fichier résulat.php et j'ai mis :

<?php

    $cnx = mysql_connect( "", "", "" ) ;

    $db = mysql_select_db( "" ) ;
 
    //requête SQL:
    $sql = "SELECT * 
	FROM contenu WHERE id = '$id' " 
 
    //affichage des données:
    while( $result = mysql_fetch_object(mysql_query( $sql, $cnx)))
    {
       echo(
           "<div align=\"center\">"
           .$result->id." ".$result->titre
           ." </div>\n"
       ) ;
    }
  ?>
Mais il y a une erreur :
Parse error: syntax error, unexpected T_WHILE in /home/forumati/public_html/moteur/resultat.php on line 14
Merci beaucoup :)

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 04 sept. 2013, 18:44
par xTG
Il te manque un point virgule à la fin de la requête pour signifier la fin d'instruction PHP.
Et tu auras aussi une erreur la ligne suivante car une parenthèse de trop sur le while. ;)

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 04 sept. 2013, 18:57
par juliette
En fait, il a mis le contenu de echo entre parenthèse et le $id est mal concaténé...
inspire toi de ce code, il fonctionne mais ne retourne pas d'objet, a toi de faire les modifs...
// Je déclare un id pour obtenir le retour
$id = "1";





// Connexion
mysql_connect("localhost", "root", "") or die(mysql_error());

// BDD
mysql_select_db("tutos") or die(mysql_error());


// Requette SQl
$strSQL = "SELECT * FROM articles WHERE id_article = '".$id."'";

// Envoyer la requete
$resultat = mysql_query($strSQL);

// Boucle sur le retour pour les résultats
while ($ligne = mysql_fetch_array($resultat)) {

    // Affichage
    echo $ligne['titre'] . "<br />";
}

// Fermetur connexion
mysql_close();

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 04 sept. 2013, 19:02
par ISoon
En fait, il a mis le contenu de echo entre parenthèse et le $id est mal concaténé...
inspire toi de ce code, il fonctionne mais ne retourne pas d'objet, a toi de faire les modifs...
// Je déclare un id pour obtenir le retour
$id = "1";





// Connexion
mysql_connect("localhost", "root", "") or die(mysql_error());

// BDD
mysql_select_db("tutos") or die(mysql_error());


// Requette SQl
$strSQL = "SELECT * FROM articles WHERE id_article = '".$id."'";

// Envoyer la requete
$resultat = mysql_query($strSQL);

// Boucle sur le retour pour les résultats
while ($ligne = mysql_fetch_array($resultat)) {

    // Affichage
    echo $ligne['titre'] . "<br />";
}

// Fermetur connexion
mysql_close();
Merci sa marche très bien mais comment afficher l'id qui est en haut de la page sur le
$id = "";
Merci beaucoup

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 04 sept. 2013, 19:05
par juliette
tu dois passer par la méthode GET et transmettre cet id par l'url a la page résultats...

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 04 sept. 2013, 19:08
par ISoon
tu dois passer par la méthode GET et transmettre cet id par l'url a la page résultats...
Ok je mettrais en résolu des que j'aurai réussi ;)

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 04 sept. 2013, 19:16
par ISoon
tu dois passer par la méthode GET et transmettre cet id par l'url a la page résultats...

Se code est-il bon ? :
$id = "echo $_GET['id']";

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 04 sept. 2013, 19:19
par juliette
NON, tu met un echo hors tu ne charche pas a l'afficher mais a déclarer une variable...
comme ca:
$id = $_GET['id'];
mais je ne suis pas sur de id dans GET... Fait voir le lien qui contient le param envoyer a la page résultat

Re: Afficher le texte sur rechercher.php?id=[id]

Posté : 04 sept. 2013, 19:21
par ISoon
Sa marche, Merci beaucoup