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

Eléphant du PHP | 111 Messages

02 sept. 2013, 10:03

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: :!:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 sept. 2013, 11:19

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 ;)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 111 Messages

02 sept. 2013, 12:12

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 sept. 2013, 15:25

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. ;)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 111 Messages

04 sept. 2013, 18:16

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 :)

ViPHP
xTG
ViPHP | 7331 Messages

04 sept. 2013, 18:44

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. ;)

Mammouth du PHP | 790 Messages

04 sept. 2013, 18:57

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();
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphant du PHP | 111 Messages

04 sept. 2013, 19:02

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

Mammouth du PHP | 790 Messages

04 sept. 2013, 19:05

tu dois passer par la méthode GET et transmettre cet id par l'url a la page résultats...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphant du PHP | 111 Messages

04 sept. 2013, 19:08

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 ;)

Eléphant du PHP | 111 Messages

04 sept. 2013, 19:16

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']";

Mammouth du PHP | 790 Messages

04 sept. 2013, 19:19

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
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphant du PHP | 111 Messages

04 sept. 2013, 19:21

Sa marche, Merci beaucoup