[Php] Créer un moteur de recherche interne sur son site

Bon, j’y vois plus clair. En fait, il est impossible d’ouvrir en double-cliquant sur la page index.php, cependant on peut l’ouvrir en se rendant à l’adresse du répertoire où est hébergé le site. :slight_smile:

Je modifie la table que m’a aimablement créée quazardous. Je commence à piger l’utilité d’une telle méthode. Moi qui suis autant designer que réfractaire à la programmation, je crois bien qu’après être (malgré tout) tombé fan du html, je vais craqué pour le php !! :-)) Thanxalot guyz !

Chaque fois que je crée un enregistrement j’obtiens ce message d’erreur, dois-je en tenir compte (tout semble bien se passer malgré cet avertissement) ? Que faire ?

Ca c’est une erreur : en gros, imagines un ensemble (en maths) dans lequel tu fous deux fois le même élément : c’est pas possible. Ben là mySQL te dis juste que l’ajout n’a pas été possible parce que tu as crée un doublon.

Ouais, ben çà, je l’avais à peu près compris. lol Je voulais surtout savoir s’il y avait une incidence. Toi qui est plus expérimenté que moi tu pourras sûrement me le dire. J’ai rentré dans les champs respectivement : [quote=«  »]
id : tarifs, titre_entete : Tarifs, titre : Tarifs.
[/quote]

Notre bon (et néanmoins expérimenté) quazardous m’avait créé cela : [quote=«  »]
id : accueil, titre_entete : Accueil, titre : Accueil.
[/quote]

Ais-je mal fait de m’en inspirer ? Ou alors le doublon se trouverait-il ailleurs ?

L’incidence? Ben la donnée dupliquée n’est pas ajoutée, c’est vu comme une erreur

j 'ai pas de reponse t sur que navibas est bien le champ de la table ?

en tout cas c du beau boulot a+

kinky> par contre si la duplication est voulu (en gros, tu n’as pas envie de vérifier d’abord que les clefs sont déjà là, etc) tu peux faire un INSERT IGNORE.

ben c juste que quand tu affiches la page

c le champ navibas de l’enregistrment qui a l’id prestations qui est affiché !!! donc c sur que ça affiche rien vu le screenshot les champs sont vides…

a mon avis ça sert a rien de mettre navibas dans la base si la navigation ne change pas pour chaque page …

enfin je crois a+

Excellent ! Ca y est, désormais je peux dire que j’ai parfaitement compris le principe. Il va falloir « creuser » un peu maintenant. lol

Dans mysql j’ai rempli les champs « navibas » correspondant aux id que je souhaite renseigner avec le code html de ce qui doit être affiché. En fait, copier le code dans toute la colonne navibas. « navib » est inutile.

Oui c’est inutile, mais c’était surtout pour piger le fonctionnement. :slight_smile:

A l’utilisation du moteur de recherche, je rencontre le problème suivant. Tout va bien quand la recherche aboutie, cependant, je souhaiterai -dans le cas contraire- annoncer au visiteur : « Votre recherche n’a donnée aucun résultat ». J’ai essayé de rajouter un champs, sans succès. Je pense qu’il faut ajouter une bidouille dans le code php de ma page, non ? Quelle est-elle si c’est le cas ?

ben dans la boucle qui affiche les resultats tu rajoute une variable qui compte les resultats et qui s’incremente ($n++;)
avant la vboucle tu l’initialise à 0 ($n=0;) et apres la boucle si elle est toujours a 0 c qu’il n’y a pas de resultats
( <?php if($n==0) { ?> pas de resultat <?php } ?> )

Hummm ! J’ai l’impression d’être de plein pied dedans ! lol Si tu veux bien me dire ce que t’en pense…

Euh, zut c’est pas plutôt ça la boucle qui affiche les résultats ? [quote=«  »]

<? echo $respage['titre']; ?>

[/quote]

une boucle c une instruction de boucle (while, for…) avec une instruction derriere ou un groupe d’instruction delimité par { et }

donc cherche le while() et tout ce qu il y a entre { et } se repete y compris le code html…

donc la a priori c ton $n=0 qui est dans la boucle…

ps : mysql_free_result($results); n’est pas dans la boucle
ps 2 : les { } serve aussi a delimiter les if etc donc il faut bien compter les { et les } pour savoir a quel niveau tu es (ça marche comme les balises)

{ et } servent donc à marquer une instruction ? Ils vont toujours par paire (« comme les balises ») ? Je ne crois pas si je m’en tiens au code que tu m’as filé : il semble qu’ils ne fonctionnent pas par deux. Seulement le symbole { après les instructions.
Et pourquoi là j’en ai pas ? C’est pourtant bien un if à délimiter, non ?

Dois-je rajouter { après chaque if ?

Voilà sans doute la boucle dont tu parles. Pourquoi dis-tu cela ? [quote=«  »]
tout ce qu il y a entre { et } se repete
[/quote]
Je ne vois rien de tel sur ma page, aucun : { code }.

Bon while répètele les instructions, mais pourquoi n’y a-t-il pas { à l’ouverture ?

syntaxe du while :

  • while ( test_logique ) instruction_ou_bloc_d_instruction

instruction_ou_bloc_d_instruction :

  • instruction
  • { list_instructions }

exemple


$i=0;
while($i<10)
{
?>
[*][b]option <? echo $i; ?>[/b]
<?php
   $i++;
}

donc la on repete de la ligne 3 a la 8

les {} ne sont necessaire seulement si la partie a repeter comporte plusieur instructions (donc souvent)

ex



if($n>0) echo "Youpi"; //affiché seulement si $n>0
echo "Youpla"; //toujours affiché

if($n>0)
{
   echo "Youpi"; //affiché seulement si $n>0
   echo "Youpla"; //affiché seulement si $n>0
}