moonwar Posté 28 Août 2005 Posté 28 Août 2005 Salutation, J'ai installé un meme script trois (03) fois dans mon site. Donc, en tout j'ai 03 meme moteurs de recherches et 03 meme bases de données. 1- Recherche locale 2- Annuaire 3- Musique J'aimerais regrouper les 03 moteurs de recherches dans un meme et unique moteur grace à des boutons de type radio. Comment faire pour appeller chaque base de donnée via un bouton radio? Merci d'avance pour vos réponse. Bien cordialement.
MS-DOS_1991 Posté 28 Août 2005 Posté 28 Août 2005 (modifié) Salut pourquoi pas comme ça tout simplement ?: <form action="page.php" method="post"><p>Recherche Locale:<input type="radio" name="radio" value="recherche_locale" /></p><p>Annuaire:<input type="radio" name="radio" value="annuaire" /></p><p>Musique: <input type="radio" name="radio" value="musique" /></p><p><input type="submit" name="soumission" value="Soumettre" /></form> et $MySQL['host'] = 'localhost';$MySQL['user'] = 'root';$MySQL['pass'] = '';$MySQL['connection'] = _AT_mysql_connect($MySQL['host'], $MySQL['user'], $MySQL['pass']) or die(mysql_error()); // connection au serveurswitch($_POST['radio']) { case 'recherche_locale': { $MySQL['base'] = 'rechrch'; // base pour recherche locale } case 'annuaire': { $MySQL['base'] = 'annu'; // base pour annuaire } case 'musique': { $MySQL['base'] = musik'; // base pour musique }}$MySQL['selection'] = _AT_mysql_select_db($MySQL['base'], $MySQL['connection']) or die(mysql_error()); // Selection finale ... pas testé, dis-moi si cela marche Modifié 28 Août 2005 par MS-DOS_1991
moonwar Posté 29 Août 2005 Auteur Posté 29 Août 2005 Re et merci MS-DOS_1991 ... c'est pas que je n'ai pas testé ... mais ... Un forum est fait pour avoir de l'aide et non pour se faire faire son boulot So ... je me suis battu avec durant toute la nuit ... et ça donne ça Access denied for user 'root'@'honshu.inside.globat.com' (using password: NO) Le manuel MuSQL dit "si vous obtenez une erreur qui contient Using password: NO , cela signifie que vous avez essayé de vous connecter sans mot de passe." Pourtant, j'ai introduit mon "pass" et j'ai mis le meme pass pour tout les bases .. mais le message revient tjrs Au fait, vous avez oublié un ' dans: case 'musique': { $MySQL['base'] = musik'; // base pour musique} Merci encore pour votre aide. Bien cordialement; NB: globat.com c'est mon hebergeur... evident
Anonymus Posté 29 Août 2005 Posté 29 Août 2005 Edites les variables juste avant la commande mysql_connect. Tu verras si elles sont bien initialisées. Fais attention notamment aux fautes d'orthographe (ben oui, ca arrive), Fais attention aux espaces ici ou là (avant ou après la variable, Fais attention à bien pointer vers le bon serveur sql. En général, c'est localhost, mais parfois ce n'est pas lui ! Bref, postes le morceau que tu as mis, on y verra plus clair. Changes bien les login/pass par ### par exemple, mais ne touches pas au reste.
moonwar Posté 30 Août 2005 Auteur Posté 30 Août 2005 Là ... je crois que je suis completement perdu ... je vous donne le shema complet des liens. Page INDEX : ...<?php include("http://www.****.com/modules/frames_header_menu.php");?><?php include("http://www.****.com/modules/frames_header_sherch.php");?><table border="0" width="780" bottommargin="0" leftmargin="0" rightmargin="0" marginheight="0" marginwidth="0" topmargin="0" cellspacing="0" cellpadding="0" align="center" background="/banner.gif"> <tr>.... suite etc etc Page frames_header_sherch.php: (Formulaire HTML) <?php//affichage du formulaire pour le moteur de recherche$mots = isset($_REQUEST['mots']) ? $_REQUEST['mots'] : '';if (empty($mots)){ $value = ""; $erase = " onfocus=\"if (!erased_annuaire)this.value = ''; erased_annuaire = true;\"";}else{ $value = stripslashes(htmlspecialchars($mots)); $erase = "";}//formulaire pour afficher le moteur de recherche?><center><table width="780" border="0" cellspacing="0" cellpadding="0" align="center" background="/images/plan_cherche.gif"> <tr height="55" valign="middle"> <td width="760"><center><form action="/search.php" method="post"><input type="hidden" name="action" value="seek"><font class="BIG">Recherche</font> <input type="text" name="mots" size=25 maxlength=200 value="<?php echo $value; ?>"<?php echo $erase; ?> class="recherche"> <input type="image" border="0" name="envoyer" src="/images/chercher.gif" width="80" height="20" alt="Valider la recherche" align="middle"><br><span class=""><input type="radio" name="radio" value="recherche_locale" checked>Locale <input type="radio" name="radio" value="musique">Musique <input type="radio" name="radio" value="annuaire">Annuaire Résultats par page :<select name="nb_results2show" class=""><option value=10>10</option><option value=20>20</option><option value=50>50</option></select> <input type="radio" value="AND" name="booleen" checked>Tous les mots<input type="radio" value="OR" name="booleen">Au moins un</span></center></td><td width="20"></form></td></tr></table></center> Page search.php: (page d'action du FORM du formulaire) <?php//moteur de rechercheinclude("data_bd.php"); //variables de la base de donnéeinclude("functions.php"); //fonctions du script $mots = isset($_REQUEST['mots']) ? $_REQUEST['mots'] : '';$mots = trim($mots);$page = isset($_GET['page']) ? (int)$_GET['page'] : 0;if($page < 0) exit;.... suite etc etc Page data_bd.php: (variables des bases de données) <?php/********* ADMINISTRATION **************///nom des tables pour la BD, les changer en cas d'installation multiples dans une même BD !$T_admins = "admins_annuaire"; //table des administrateurs$T_categories = "categories_annuaire"; //table des categoires$T_commentaires = "commentaires_sites_annuaire"; //table des commentaires$T_infos = "infos_annuaire"; //table pour le infos (anciennement admin_annuaire)$T_sessions = "sessions_annuaire"; //table pour les sessions des administrateurs$T_sites = "sites_annuaire"; //table pour les sites et liens$T_sites_in_wait = "sites_in_wait_annuaire"; //table pour les sites et liens en attentes/***************************************///données pour la connexion à la base de données$db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL$db_name = "cherche"; //nom de la base de données$db_user_login = "cherche"; //nom d'utilisateur pour la BD$db_user_pass = "########"; //mot de passe pour la BD$db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL$db_name = "musique"; //nom de la base de données$db_user_login = "musique"; //nom d'utilisateur pour la BD$db_user_pass = "########"; //mot de passe pour la BD$db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL$db_name = "annuaire"; //nom de la base de données$db_user_login = "annuaire"; //nom d'utilisateur pour la BD$db_user_pass = "########"; //mot de passe pour la BD$MySQL['host'] = 'localhost';$MySQL['user'] = 'root';$MySQL['pass'] = '########';$MySQL['connection'] = _AT_mysql_connect($MySQL['honshu.inside.globat.com'], $MySQL['cherche'], $MySQL['#######']) or die(mysql_error()); // connection au serveurswitch($_POST['radio']) {case 'recherche_locale': { $MySQL['base'] = 'cherche'; // base pour recherche locale}case 'annuaire': { $MySQL['base'] = 'annuaire'; // base pour annuaire}case 'musique': { $MySQL['base'] = 'musique'; // base pour musique}}$MySQL['selection'] = _AT_mysql_select_db($MySQL['base'], $MySQL['connection']) or die(mysql_error()); // Selection finale?> Page functions.php: (Partie BD de la page des fonctions generales du script) /********* FONCTIONS POUR LA BD **************/function connection_BD(){ global $db_server, $db_user_login, $db_user_pass, $db_name; //connexion au serveur $linkid = _AT_mysql_connect($db_server,$db_user_login,$db_user_pass) or die ("Erreur lors de la connection au serveur MySQL !"); //selection de la BD @mysql_select_db($db_name,$linkid) or die("Impossible de sélectionner la base de données\n<br>\nVoici l'erreur renvoyée par le serveur MySQL :\n<br>\n".mysql_error()); return $linkid;}function send_sql($sql,$message)//envoi la requete $sql a la base et affiche un message si il y a eu un probleme sinon on rend le resultat{ if(!$res = _AT_mysql_query($sql)) { $message_erreur = "<font color=\"#ff0000\">\n"; $message_erreur .= "Impossible d'effectuer la requête pour $message\n"; $message_erreur .= "<br><br>\n";// $message_erreur .= "Voici la requête : \n<br>\n";// $message_erreur .= "$sql\n";// $message_erreur .= "<br><br>\n"; $message_erreur .= "Voici le message d'erreur renvoyé par la base de données :\n<br>\n"; die("$message_erreur".mysql_errno()." : ".mysql_error()."</font>\n"); } return $res;}/**********************************/ Désolé pour les erreurs GRAVES car je suis completement .... Merci d'avance pour votre aide. Bien cordialement.
rportal Posté 30 Août 2005 Posté 30 Août 2005 vu ton code de data_db.php et tes fonctions pour lancer les requetes SQL, les variables de connexions sont: $db_server,$db_name,$db_user_login et $db_user_pass et non pas $MySQL... Fais donc ton switch pour initiliser ces variables... je pense que l'erreur qu'il te retourne vient de cette ligne: $MySQL['connection'] = _AT_mysql_connect($MySQL['honshu.inside.globat.com'], $MySQL['cherche'], $MySQL['#######']) or die(mysql_error()); // connection au serveur qui est un peu farfelu . En effet tu essayes de te connecter à rien (valeur de $MySQL['honshu.inside.globat.com'] est '') avec l'utilisateur rien (valeur de $MySQL['cherche'] est '') en utilisant un mot de passe vide (valeur de $MySQL['#######'] est ''). à priori tu confonds valeur et clé d'un tableau. En php quand tu utlises [] apres une variable, c'est pour referencer un tableau ($variable['cle']='valeur') revoit un peu l'initialisation de tes variables de connexions.
moonwar Posté 31 Août 2005 Auteur Posté 31 Août 2005 Je commance a comprendre le systeme de fonctionnement du SQL merci l'equipe ... Voila, j'ai renommé les variables: Voir en haut pour connaitre la fonction des fichiers data_bd.php et fonctions.php Fichier data_bd.php <?php//nom des tables pour la BD, si vous voulez les changer... par exemple en cas d'installation multiples dans une même BD !$T_admins = "admins_annuaire"; //table des administrateurs$T_categories = "categories_annuaire"; //table des categoires$T_commentaires = "commentaires_sites_annuaire"; //table des commentaires$T_infos = "infos_annuaire"; //table pour le infos (anciennement admin_annuaire)$T_sessions = "sessions_annuaire"; //table pour les sessions des administrateurs$T_sites = "sites_annuaire"; //table pour les sites et liens$T_sites_in_wait = "sites_in_wait_annuaire"; //table pour les sites et liens en attentes//données pour la connexion à la base de données$db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL$db_name = "cherche"; //nom de la base de données$db_user_login = "cherche"; //nom d'utilisateur pour la BD$db_user_pass = "######"; //mot de passe pour la BD$db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL$db_name = "musique"; //nom de la base de données$db_user_login = "musique"; //nom d'utilisateur pour la BD$db_user_pass = "######"; //mot de passe pour la BD$db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL$db_name = "annuaire"; //nom de la base de données$db_user_login = "annuaire"; //nom d'utilisateur pour la BD$db_user_pass = "######"; //mot de passe pour la BD?> La partie BD du fichier fonctions.php : /******** FONCTIONS POUR LA BD ***********/function connection_BD(){ global $db_server, $db_user_login, $db_user_pass, $db_name; //connexion au serveur $linkid = _AT_mysql_connect($db_server,$db_user_login,$db_user_pass) or die ("Erreur lors de la connection au serveur MySQL !"); //selection de la BD @mysql_select_db($db_name,$linkid) or die("Impossible de sélectionner la base de données\n<br>\nVoici l'erreur renvoyée par le serveur MySQL :\n<br>\n".mysql_error()); return $linkid;}/***** DEBUT DU SWITCH *****/$db_server['host'] = 'localhost';$db_name['user'] = 'root';$db_user_login['pass'] = '';$db_user_pass['connection'] = _AT_mysql_connect($db_server,$db_user_login,$db_user_pass) or die("Erreur lors de la connection au serveur MySQL !"); // connection au serveurswitch($_POST['radio']) {case 'recherche_locale': { $db_name['base'] = 'cherche'; // base pour recherche locale}case 'annuaire': { $db_name['base'] = 'annuaire'; // base pour annuaire}case 'musique': { $db_name['base'] = 'musique'; // base pour musique}}$$db_name['selection'] = _AT_mysql_select_db($$db_name['base'], $db_user_pass['connection'] ) or die("Impossible de sélectionner la base de données\n<br>\nVoici l'erreur renvoyée par le serveur MySQL :\n<br>\n".mysql_error()); // Selection finale/***** FIN DU SWITCH *****/function send_sql($sql,$message)//envoi la requete $sql a la base et affiche un message si il y a eu un probleme sinon on rend le resultat{ if(!$res = _AT_mysql_query($sql)) { $message_erreur = "<font color=\"#ff0000\">\n"; $message_erreur .= "Impossible d'effectuer la requête pour $message\n"; $message_erreur .= "<br><br>\n";// $message_erreur .= "Voici la requête : \n<br>\n";// $message_erreur .= "$sql\n";// $message_erreur .= "<br><br>\n"; $message_erreur .= "Voici le message d'erreur renvoyé par la base de données :\n<br>\n"; die("$message_erreur".mysql_errno()." : ".mysql_error()."</font>\n"); } return $res;}/******************/ Merci pour vos précisions parce que ça marche tjrs pas . Voici le Lien (j'ai desactivé le switch car ça donne comme message : "Erreur lors de la connection au serveur MySQL !" ) Merci d'avance; Bien cordialement
MS-DOS_1991 Posté 31 Août 2005 Posté 31 Août 2005 (modifié) Re //données pour la connexion à la base de données$db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL $db_name = "cherche"; //nom de la base de données $db_user_login = "cherche"; //nom d'utilisateur pour la BD $db_user_pass = "######"; //mot de passe pour la BD $db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL $db_name = "musique"; //nom de la base de données $db_user_login = "musique"; //nom d'utilisateur pour la BD $db_user_pass = "######"; //mot de passe pour la BD $db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL $db_name = "annuaire"; //nom de la base de données $db_user_login = "annuaire"; //nom d'utilisateur pour la BD $db_user_pass = "######"; //mot de passe pour la BD $db_name va tour a tour prendre les valeurs cherche puis musique puis annuaire La variable utilisée plus bas dans ton script sera donc forcément 'annuaire' Meme chose pour les autres variables $$db_name['selection'] = _AT_mysql_select_db($$db_name['base'], $db_user_pass['connection']) Met plutôt cela (sans les doubles dollars) $db_name['selection'] = _AT_mysql_select_db($db_name['base'], $db_user_pass['connection']); ... et réactive le switch Modifié 31 Août 2005 par MS-DOS_1991
moonwar Posté 1 Septembre 2005 Auteur Posté 1 Septembre 2005 (modifié) Rien à faire ... Si ça marche pas via "jeu entre les bases de données" peut etre le faire par les fichiers search.php car j'ai mis pour chaque script un fichier search.php: Recherche dans "Local" ==> Racine "/" Recherche dans "Annuaire" ==> Rep "/annuaire/" Recherche dans "Musique" ==> Rep "/musique" Page search.php: (page d'action du FORM du formulaire) <?php//moteur de rechercheinclude("data_bd.php"); //variables de la base de donnéeinclude("functions.php"); //fonctions du script Et pour chaque lien un fichier data_bd.php et functions.php donc : fichier ../data_bd.php //données pour la connexion à la base de données cherche$db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL$db_name = "cherche"; //nom de la base de données$db_user_login = "cherche"; //nom d'utilisateur pour la BD$db_user_pass = "######"; //mot de passe pour la BD fichier ../musique/data_bd.php //données pour la connexion à la base de données musique$db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL$db_name = "musique"; //nom de la base de données$db_user_login = "musique"; //nom d'utilisateur pour la BD$db_user_pass = "######"; //mot de passe pour la BD fichier ../annuaire/data_bd.php //données pour la connexion à la base de données annuaire$db_server = "honshu.inside.globat.com"; //adresse du serveur MySQL$db_name = "annuaire"; //nom de la base de données$db_user_login = "annuaire"; //nom d'utilisateur pour la BD$db_user_pass = "######"; //mot de passe pour la BD Donc, en gros ... faire des boutons radio pour l'action du "FORM" des formulaire ... c'est possible?. Merci pour l'equipe.. Modifié 1 Septembre 2005 par moonwar
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant