[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
http://batinett.free.fr/index.php?page=prestations

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
}