Souci de requete [PHP]

Fermé
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 22 nov. 2008 à 00:48
 toto - 24 nov. 2008 à 17:21
Bonjour,

Je n'arrive pas a afficher le résultat d'une requête pour le petit moteur de recherche que je suis en train de réaliser.
J'ai construis trois pages pour la recherche (à défaut de pouvoir afficher les équivalents dans la première, celle contenant le formulaire).
Pardon d'avance pour la longueur des codes mais je suis incapable d'abréger ! C'est mon défaut.

1- celle contenant les liens (première ligne) celle-ci fonctionne très bien grâce à l'aide précieuse de php ici même; Encore un grand merci à lui !
2- celle contenant le formulaire de recherche
3- celle étant sensée afficher les équivalents basques d'un prénom français (il peut y en avoir plusieurs).
4- enfin, le détail avec le prénom français, son équivalent basque et l'origine du prénom basque.
Voilà, mon but.
En tapant Adèle (on devrait pouvoir taper adele, Adele mais...) on a forcément quelque chose or voici ce qu'il me dit: http://txiki.free.fr/index.php?page=Prenoms_Trouves&lang=Fr

La page des liens: 1ere ligne pour lister les prénoms, 2eme pour le formulaire de recherche:
http://txiki.free.fr/index.php?page=Intro_Prenoms&lang=Fr
Maintenant les codes:
Formulaire:
<!-- ========== recherche des prénoms ======== -->

<h1 align="center"> Rechercher l'&eacute;quivalent basque <br />
d'un pr&eacute;nom f&eacute;minin français </h1>

<?

require 'fonctions.php'; // infos de connexion à la table ($host,$user,$pass)

//==============
// connection à la DB
//==============
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table
//je t'ai mis des echo pour voir ce qu'on reçoit et modifié les noms du bouton Submit et du champ (voir formualire en bas de page
if(isset($_POST['recherche']) && $_POST['prenom_rech'] !="") // on vérifie d'abord l'existence du post et on vérifie aussi si la requete n'est pas vide.
{

// on créé une variable $requete pour faciliter l'écriture de la requete sql, 
// mais aussi pour empêcher ceux qui utiliseraient du Php ou du JS, avec la fonction htmlspecialchars().

$prenom_rech = htmlspecialchars($_POST['prenom_rech']);
// TEST
echo "Prenom recherche :".$prenom_rech;

$query = mysql_query("SELECT * FROM prenomsfeminins WHERE FrenchName LIKE '%".$prenom_rech."%' ORDER BY id ASC") or die (mysql_error());
$nb_resultats = mysql_num_rows($query); // on compte les résultats pour vérifier par après
//TEST 
echo "Nombre resultats trouves :".$nb_resultats;

if($nb_resultats > 0) // si le nombre de résultats est supérieur à 0, on continue  (alors mets le test correspondant) >
{
// maintenant, on va afficher les résultats et la page qui donne les résultats et le nombre de résultats
?>
<table width='60%' border="1" align='center' cellpadding="6" cellspacing="0">
  <tr><td>
<h3> R&eacute;sultats de la recherche: <em class="vert">(Pr&eacute;noms f&eacute;minins) </em></h3>
<p class="red"><? echo $nb_resultats; // on affiche le nombre de résultats
if($nb_resultats > 1) { echo '&nbsp;résultats trouvés'; } else { echo '&nbsp;résultat trouvé'; } // on vérifie le nombre de résultats pour orthographier correctement.
?>
	</p>
<?
//j'ai mis $row au lieu de $query   (ligne au lieu de requete, car la boucle while lit ligne par ligne le résultat de la requette)
while($row = mysql_fetch_array($query)) // on fait un while pour afficher le prénom trouvé, ainsi que l'id qui permettra de faire le lien vers la page du détail
{
?>
<a href="index.php?Prenoms_Trouves&lang=Fr?id=<? echo $row['id']; ?>"><? echo $row['Prenom']; ?></a><br/>
<!-- page du détail prénom -->
<?
} // fin de la boucle
?>
<br/>
<p align="center">
<input type="submit" name="Submit" value="Nouvelle recherche" /></p>
</td></tr></table>
<?
} // fini d'afficher les résultats ! Maintenant, il faut afficher l'éventuelle erreur en cas d'échec de recherche et le formulaire.
else
{ 
?>
<table class="prenoms" align="center" cellpadding="6" cellspacing="0">
  <tr>
    <td>
<h3>D&eacute;sol&eacute; !</h3>
    <p align="center" class="red"> Aucun &eacute;quivalent basque pour <strong class="vert"><? echo $_POST['requete']; ?></strong> n'a &eacute;t&eacute; trouv&eacute;. </p>
 <p align="center"><input type="submit" name="Submit" value="Essayez" /> avec un autre pr&eacute;nom </p></td>
  </tr>
</table>
<?
} // fini d'afficher l'erreur ^^
mysql_close(); // on ferme mysql, on n'en a plus besoin
}
else
{ 
// et voilà le formulaire, en HTML de nouveau !
?>
<p align="center"> Vous allez effectuer une recherche des pr&eacute;noms basques.<br />
	Tapez un <strong>pr&eacute;nom </strong> puis lancez la recherche.<br />
	Les r&eacute;sultats s'afficheront sous forme de lien. <br />
	En cliquant sur l'un d'eux, vous obtiendrez son &eacute;quivalent basque et sonorigine d&eacute;taill&eacute;e.</p>
<p align="center"><strong class="vert"> Bonne recherche ! </strong></p>

<table width="50%"  border="0" align="center" cellpadding="0" cellspacing="0"><tr><td>
    <form action="index.php?page=Prenoms_Trouves&lang=Fr" method="post">
      <p align="center">
	  <input type="text" name="prenom_rech" size="40" />&nbsp;
	  <input type="submit" name="recherche" value="OK" />
      </p> 
    </form>
	</td></tr></table>
<?
}
// et voilà, c'est fini !
?>
<!-- Début de ligne libre, à compléter éventuellement -->
<!-- Fin de ligne libre, à compléter éventuellement -->
<!-- Fin de la boite frame -->

Prénoms trouvés (équivalents):
<!-- =================  Prénoms trouvés   ========== -->
<h1> Prénoms basques équivalents trouvés </h1>

<?  
// ============================================================
// On recupere la variable "id" correspondant au prénom choisi
// ============================================================
// On récupère l'id par le GET 
$id = $_GET["id"]; // on récupère la requete par la variable $_GET

require 'fonctions.php'; // Infos pour la connexion à la base

//======================
// connection à la DB
//======================
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table

// $path_parts = pathinfo($_SERVER['PHP_SELF']);  // on cherche le nom de la page.

// $page = $path_parts["basename"];

//=====================================================================================
// requête SQL qui ne prend que le nombre d'enregistrement necessaire à l'affichage.
//=====================================================================================
$select = 'select * FROM prenomsfeminins ORDER BY FrenchName ASC';
$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );

//=============================================    
// si on a récupéré un resultat on l'affiche.
//=============================================
if($total) {
  echo "<table width='60%' border='0' cellspacing='0' cellpadding='4' align='center'>\n";

    while($row = mysql_fetch_array($result)) {
  echo "<tr>";
  echo "<td>"; 
  echo "<a href='Detail_Prenom.php?id=".$row["id"]."'> Prenoms_Trouvés </a>"; // <br> pour 1 saut moins important entre les 3 liens
  echo "</td>";
  echo "<td>&nbsp;" .$row["FrenchName"]."</td>"; // affiche le prénom français
  echo "</td>";
  echo "</tr>\n";
  echo "<tr>";
  echo "<td>"; 
  echo "<td>&nbsp;" .$row["Prenom"]."</td>"; // affiche le prénom basque
  echo "</td>";
  echo "</tr>\n";
 }
  echo "</table>";
    // fin du tableau.
}
else echo "Il n'y a pas d'équivalent basque pour ce prénom français";
// on libère le résultat
mysql_free_result($result);

mysql_close();
?>
	</body>
</html>

Enfin, la page détaillée:
<!-- ============ recherche des prénoms ====== -->
<h1> Equivalent basque </h1>

<?

// ============================================================
// On recupere la variable "id" correspondant au prénom choisi
// ============================================================
//ce script est appelé par un click sur le lien n'est ce pas, alors l'id est passé par l'URL donc en GET 
$id = $_GET["id"]; // on récupère la requete par la variable $_GET

require 'fonctions.php';

//======================
// connection à la DB
//======================
$link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table

//==============================================
// requête SQL qui affiche l'équivalent basque correspondant au lien cliqué 
//==============================================

$select = "SELECT * FROM prenomsfeminins WHERE id='$id'"; // On selectionne seulement la ligne qui correspond au prénom choisi 
$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );
$row= mysql_fetch_row($result);  // mysql_fetch_row génère un tableau correspondant a la ligne selectionnée de la BDD
// Les informations sont accessibles par $row["FrenchName"], $row["prenom"], $row[Origine]...

// ===================================================
// Affichage de la fiche dans un tablea&u dynamique 
// ===================================================
	echo "<table width='60%' align='center'>\n";
    echo "<tr><td class='francais' align='center'><strong>".$row["FrenchName"]."</strong></td></tr>\n"; // affiche l'équivalent français du prénom s'il existe.
	echo "<tr></tr>\n";
	echo "<tr><td class='basque' align='center'><strong>".$row["Prenom"]."</strong></td></tr>\n"; // affiche le prénom
	echo "<tr></tr>\n";
    echo "<tr><td class='origine' align='left'>".$row["Origine"]."</td></tr>\n"; // affiche l'origine du prénom.
	echo "</table>\n";
    // fin du tableau.
mysql_close();
?> 
        <p>&nbsp;</p>
  </body>
</html>


Merci d'avance pour celui qui aura la patience de me lire jusqu'au bout !

NOTE: Les pages Prenoms_Trouves Fr.php et Detail_Prenom Fr.php doivent servir à d'autres recherches, si possible.

Vous pouvez voir tout ça sur: http://txiki.free.fr

Le bonheur est la seule chose que l'on peut donner sans l'avoir.

14 réponses

Bonjour

Ton affichage des prénoms trouvés c'est ... comment te dire... incompréhensible.
Tu commences par récupérer un $_GET["id"]. Je me demande bien d'où il vient et à quoi il sert.
Par contre, tu ne récupères pas le prénom qui avait été saisi !!!
Tu fais une requête qui récupère toute ta base de données (et pas seulement le prénom qui t'intéresse, car il n'y a pas de clause WHERE)
Avant d'afficher, tu testes une variable $total, qui vient d'on ne sait quelle planète.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
22 nov. 2008 à 14:38
Salut toto et merci,
J'ai merdé lamentablement car je me suis basé sur un vieux code et j'avais oublié que le résultat s'affichait sur la même page qui contient le formulaire. C'est réglé.

Mais j'ai encore deux petits soucis:
1- Je voudrais mettre la balise <strong> et </strong> entourant la variable $Prenom_rech et je n'y arrive pas. Je ne sais pas à quel endroit exactement je dois les mettre. Voir le code ci-dessous:
<p><?php echo "R&eacute;sultats de la recherche pour&nbsp;".$prenom_rech; ?>: <em class="vert">(Pr&eacute;noms masculins) </em></p>

Il m'affiche le point qui précède et le point virgule qui suit.

2- Pour les prénoms trouvés, ils sont bien sous forme de lien mais la cible reste introuvable, je ne sais pas où je dois indiquer la page Detail_Prenom.php quand on clique sur un des prénoms trouvés.

J'aurais peut-être d'autres questions mais je cherche de mon coté, je dois pouvoir trouver des solutions tout seul.

Merci encore d'avance !

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
Pour les prénoms trouvés, ils sont bien sous forme de lien Oui, mais il manque l'id. Ton code ezssaye de mettre un champ qui s'appelle "id", Alors que le nom de ce champ dans la base n'est probablement pas id.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
22 nov. 2008 à 15:52
Salut toto,

Voici une partie du code du résultat:
<!-- On affiche les prénoms trouvés -->
<p><?php echo "R&eacute;sultats de la recherche pour&nbsp;".$prenom_rech; ?>: <em class="vert">(Pr&eacute;noms masculins) </em></p>

<p class="red"><? echo $nb_resultats; // on affiche le nombre de résultats
if($nb_resultats > 1) { echo '&nbsp;résultats trouvés'; } else { echo '&nbsp;résultat trouvé'; } // si supérieur à 1, pluriel, sinon au singulier.
?>
	</p>
<?php
// la boucle while lit ligne par ligne le résultat de la requete
while($row = mysql_fetch_array($query)) // on fait un while pour afficher le prénom trouvé, ainsi que l'id qui permettra de faire le lien vers la page du détail
{
?>
<a href="index.php?Equivalent_BasqueM&lang=Fr?id=<? echo $row['id']; ?>"><? echo $row['Prenom']; ?></a><br/>

<?php
} // fin de la boucle
?>


Effectivement, dans l'url il ne connait pas l'id or c'est bien lui qui devrait me ramener l'entrée dans la table, non ?
Le href ci-dessus sert à indiquer dans quelle page on doit afficher le résultat. Mais j'ai l'impression qu'il m'en manque un pour la cible du lien (un des prénoms trouvés. Où dois-je le mettre ?
Les champs de la table sont:
id
Prenom (pour le prénom basque). Unique.
FrenchName (pour son équivalent français)
Origine (pour l'origine du prénom basque)
Ephemeride (Pour sa fête). Inutilisé ici.

Autre chose d'intrigant! les prénoms féminins sont sensibles à la casse mais pas les prénoms masculins (? ? ?).


Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
<a href="index.php?Equivalent_BasqueM&lang=Fr?id=<? echo $row['id']; ?>"><? echo $row['Prenom']; ?></a><br/>

Tu as bien ce qu'il faut dans cette ligne pour créer l'id, sauf que ta balise php est incorrecte : tu as mis <? echo... au lieu de <?php echo...
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
22 nov. 2008 à 17:47
Hélàs ! ça ne change rien au Pb. De toute façons ce n'est pas une obligation de rajouter php derrière <? !

Quand on clique sur un prénom trouvé (Adèle ou michel par exemple), il me trouve l'id et dans la page je n'ai que le bandeau. Point de header, menu, div frame et footer.

Je pige plus rien.

La colonne ID dans la table est en majuscule (c'est pour ça qu'il le voit maintenant mais comment je peux indiquer l'url de la page du détail dans le code ci-dessous ?
?>
<a href="index.php?Equivalent_BasqueM&lang=Fr?id=<? echo $row['id']; ?>"><? echo $row['Prenom']; ?></a><br/>

<?php
} // fin de la boucle
?>


A mon avis c'est de l'ID qu'il a besoin.
Merci encore pour ta patience !

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
Pour l'équivalence entre <?php et <?, tu as raison, chez free en tous cas. Car ça n'est pas toujours le cas, ça dépend de la configuration du serveur.

Je me suis fait piéger parce que je cjechais un prénom masculin et que là, les id n'apparaissent pas alors qu'ils apparaissent bien dans la page des prénoms féminins. Quelle drôle d'idée d'avoir deux codes séparés !!!

Sinon la suite ne marche pas parce que tu fais un mauvais passage par GET
il faut faire
http://monsite/mapage.php?param1=valeur1&param2=valeur2
et non pas
http://monsite/mapage.php?param1=valeur1?param2=valeur2

Je ne garantis pas qu'il ne reste pas d'autre problème derrière !
0
<a href="index.php?Detail_Prenom&lang=Fr&id=<?php echo $row['id']; ?>"><?php echo $row['Prenom']; ?></a><br/>
0
Enfin , dans ta page de Détail des prénoms, si tu utilises mysql_fetch_row, tu récupères un tableau indexé numériquement, c'est à dir e$row[0], $row[1] etc .. et non pas $row['Prenom'], $row['Origine']...
Si tu veux avoir comme indices tes noms de champs, il faut utiliser mysql_fetch_array ou mysql_fetch_assoc
Au fait, tes pages sont incluses dans un code plus général. Alors il ne FAUT PAS que tu mettes toi-même les balises </body> et </html> à la fin de ton code, car la fin de ton code n'est pas la fin de la page. Regarde le code HTML généré , il y a </body> et </html> à 50 lignes de la fin !
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
23 nov. 2008 à 12:10
Salut toto,
Tu a raison pour les balises html à la fin, c'est un oubli de ma part. Comme quoi il est bon que ce soit relu par un œil nouveau !

Comme tu a pu t'en rendre compte, je débute en PHP et les boulettes sont fréquentes !

Il me manque toujours le lien qui permet d'afficher la page Detail_Prenom Fr.php avec les variables:
$FrenchName, $Prenom et $Origine.

Si tu tape catherine, ça affiche bien les équivalents basques de ce prénom français mais en cliquant sur l'un d'eux, ça pointe vers l'accueil.
Au fait, je ne sais pas si tu es au courant mais cet index est composé d'includes.

D'autre part, j'ai modifié ma table prenomsfeminins car il possédait deux champs en interclassement latin_cs (que j'ai modifié en latin_ci. Pb: dans le résumé, ça n'a pas bougé, c'est toujours en latin_cs. http://txiki.free.fr/latin_cs.png

Comment fait-on pour changer cet état ?
Bon, au cas où, je te met les codes complets, tu verra sans doute l'erreur plus facilement que moi:
La page de recherche avec son formulaire:

<!-- ========== recherche des prénoms ======== -->

<h1 align="center"> Rechercher l'&eacute;quivalent basque <br />
d'un pr&eacute;nom f&eacute;minin français </h1>

<?php

require 'fonctions.php'; // infos de connexion à la table ($host,$user,$pass)

//==============
// connection à la DB
//==============
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table
//je t'ai mis des echo pour voir ce qu'on reçoit et modifié les noms du bouton Submit et du champ (voir formualire en bas de page
if(isset($_POST['recherche']) && $_POST['prenom_rech'] !="") // on vérifie d'abord l'existence du post et on vérifie aussi si la requete n'est pas vide.
{

// on créé une variable $requete pour faciliter l'écriture de la requete sql, 
// mais aussi pour empêcher ceux qui utiliseraient du Php ou du JS, avec la fonction htmlspecialchars().

$prenom_rech = htmlspecialchars($_POST['prenom_rech']);

$query = mysql_query("SELECT * FROM prenomsfeminins WHERE FrenchName LIKE '%".$prenom_rech."%' ORDER BY id ASC") or die (mysql_error());
$nb_resultats = mysql_num_rows($query); // on compte les résultats pour vérifier par après

if($nb_resultats > 0) // si le nombre de résultats est supérieur à 0, on continue  (alors mets le test correspondant) >
{
// maintenant, on va afficher les résultats et la page qui donne les résultats et le nombre de résultats
?>
<table width='60%' class="prenoms" align='center' cellpadding="6" cellspacing="0">
  <tr><td>
<!-- On affiche les prénoms trouvés -->
<p><?php echo "R&eacute;sultats de la recherche pour&nbsp;".$prenom_rech; ?>: <em class="vert">(Pr&eacute;noms f&eacute;minins) </em></p>

<p class="red"><?php echo $nb_resultats; // on affiche le nombre de résultats
if($nb_resultats > 1) { echo '&nbsp;résultats trouvés'; } else { echo '&nbsp;résultat trouvé'; } // si supérieur à 1, pluriel, sinon au singulier.
?>
	</p>
<?php
// la boucle while lit ligne par ligne le résultat de la requete
while($row = mysql_fetch_array($query)) // on fait un while pour afficher le prénom trouvé, ainsi que l'id qui permettra de faire le lien vers la page du détail
{
?>
<a href="index.php?Detail_Prenom&lang=Fr&id=<?php echo $row['ID']; ?>"><?php echo $row['Prenom']; ?></a><br/>

<?php
} // fin de la boucle
?>
</td></tr></table>
<br/>

<form action="index.php?page=Equivalent_BasqueF&lang=Fr" method="post">
<p align="center"><input type="submit" name="Submit" value="Nouvelle recherche" /></p>
</form>

<?php
} // fini d'afficher les résultats ! Maintenant, il faut afficher l'éventuelle erreur en cas d'échec de recherche et le formulaire.
else
{ 
?>
<table class="prenoms" align="center" cellpadding="6" cellspacing="0">
  <tr>
    <td>
<h3>D&eacute;sol&eacute; !</h3>
    <p align="center" class="red"> Aucun &eacute;quivalent basque pour <strong class="vert"><? echo $_POST['requete']; ?></strong> n'a &eacute;t&eacute; trouv&eacute;. </p>
	</td>
  </tr>
</table>
<form action="index.php?page=Equivalent_BasqueF&lang=Fr" method="post">
 <p align="center"><input type="submit" name="Submit" value="Essayez" /> avec un autre pr&eacute;nom </p>
</form>

<?php
} // fini d'afficher l'erreur
mysql_close(); // on ferme mysql, on n'en a plus besoin
}
else
{ 
// et voilà le formulaire, en HTML de nouveau !
?>
<p align="center"> Vous allez effectuer une recherche des pr&eacute;noms basques.<br />
	Tapez un <strong>pr&eacute;nom </strong> puis lancez la recherche.<br />
	Les r&eacute;sultats s'afficheront sous forme de lien. <br />
	En cliquant sur l'un d'eux, vous obtiendrez son &eacute;quivalent basque et son origine d&eacute;taill&eacute;e.</p>
<p align="center"><strong class="vert"> Bonne recherche ! </strong></p>

<table width="50%"  border="0" align="center" cellpadding="0" cellspacing="0"><tr><td>
    <form action="index.php?page=Equivalent_BasqueF&lang=Fr" method="post">
      <p align="center">
	  <input type="text" name="prenom_rech" size="40" tabindex="1" />&nbsp;
	  <input type="submit" name="recherche" value="OK" />
      </p> 
    </form>
	</td></tr></table>
<?php
}
// et voilà, c'est fini !
?>
<!-- Début de ligne libre, à compléter éventuellement -->
<!-- Fin de ligne libre, à compléter éventuellement -->
<!-- Fin de la boite frame -->


La page pour les détails:
<!-- ============ recherche des prénoms ====== -->
<h1> Equivalent basque </h1>
<?
// =====================================
// On recupere la variable "id" correspondant au prénom choisi
// =====================================
//ce script est appelé par un click sur le lien n'est ce pas, alors l'id est passé par l'URL donc en GET 
$id = $_GET['ID']; // on récupère la requete par la variable $_GET

require 'fonctions.php';

//=============
// connection à la DB
//=============
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table

//==============================================
// requête SQL qui affiche l'équivalent basque correspondant au lien cliqué 
//==============================================

$select = "SELECT * FROM prenomsfeminins WHERE id='$ID'"; // On selectionne seulement la ligne qui correspond au prénom choisi 
$query = mysql_query($select)  or die ('Erreur : '.mysql_error() );
$row= mysql_fetch_array($query);  // mysql_fetch_array génère un tableau correspondant a la ligne selectionnée de la BDD
// Les informations sont accessibles par $row["FrenchName"], $row["prenom"], $row[Origine]...

// ================================
// Affichage de la fiche dans un tablea&u dynamique 
// ================================
	echo "<table width='60%' align='center'>\n";
    echo "<tr><td class='francais' align='center'><strong>".$row['FrenchName']."</strong></td></tr>\n"; // affiche l'équivalent français du prénom s'il existe.
	echo "<tr></tr>\n";
	echo "<tr><td class='basque' align='center'><strong>".$row['Prenom']."</strong></td></tr>\n"; // affiche le prénom
	echo "<tr></tr>\n";
    echo "<tr><td class='origine' align='left'>".$row['Origine']."</td></tr>\n"; // affiche l'origine du prénom.
	echo "</table>\n";
    // fin du tableau.
mysql_close();
?> 
        <p>&nbsp;</p>


Je sature donc je vois de moins en moins bien.
Merci d'avance pour ton précieuse !

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
1 - concernant tes histoires d'interclassement, il n'y a pas de "résumé" incompatible avec les valeurs d'interclassement des champs dans l'image que tu montres. D'ailleurs, ça voudrait dire quoi le résumé de deux types d'interclassements différents ?
Il y a les interclassements des champs et celui de la table. Si tu ne précises rien quand tu crées un nouveau champ, il prendra comme interclassement celui de la table

2 - je vois de moins en moins bien.
Ça se voit... regarde ton lien quand tu reviens sur la page d'accueil au lieu d'obtenir le détail du prénom : il te manque un "page=" et dans ton script tu récupères $_GET['ID'] alors que dans ton lien tu mets id en minuscule.
Ça n'est plus un problème de programmation, mais d'attention
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
23 nov. 2008 à 20:52
OOOOOOOOOOOh ! MERCI mon DIEUUUUUUUUUUU ! mon SAUVEUR !

Dans ma tanle l'id était écrit en majuscule et je ne pensais pas qu'il y avait une importance quand on écrit:
$id ='ID';
Je pensais que l'important c'était l'orthographe du second et pas du premier.

CHerche catherine.

Pour ce concerne l'interclassement comment expliquer que les prénoms comportant des caractères accentués doivent s'écrire en respectant la casse et l'othographe exacfte ?

Catherien le trouve mais pas adele. Il faut écrire Adèle.
Bref, je verrai ça demain après une bonne nuit de sommeil. J'en ai besoin ! Mais je ne te remercierai jamais assez pour la patience que tu a eu pour m'aider.

Bonne nuit ! ;-))
0
Ben non , 'id' et 'ID' sont deux chaînes différentes, et $_GET['id'] et $_GET['ID'] sont donc deux éléments distincts du tableau $_GET. Sur quoi te basais-tu pour supposer que c'était la même chose ?

Quant à ton problème d'accent, voici la cause, extraite de ton script :
// on créé une variable $requete pour faciliter l'écriture de la requete sql, 
// mais aussi pour empêcher ceux qui utiliseraient du Php ou du JS, avec la fonction htmlspecialchars().
$prenom_rech = htmlspecialchars($_POST['prenom_rech']);

Ceci est une ânerie. Très répandue, souvent conseillée sur ce site même, mais une ânerie quand même. La fonction pour échapper les chaînes pour mysql, c'est mysql_real_escape_string et pas htmlspecialchars.
htmlspecialchars sert à traduire les caractères spéciaux(accentués..) en entités HTML. Ça ne sert qu'au HTML, c'est à dire à l'affichage, et il ne faut l'utiliser qu'au moment de faire un 'echo' pour afficher un texte.
Regarde ce qui se passe chez toi quand le prénom saisi est Adèle : il remplace le è par & egrave;. Adèle devient Adèle.
Si c'est ce que tu as enregistré dans ta base de données, quand quelqu'un tape adele, c'est trop différent de Ad& egrave;le pour être considéré comme le même prénom. Donc adele est considéré comme inconnu, parce que ce n'est pas - je suis prêt à le parier - Adèle qu'il y a dans ta base, mais Ad& egrave;le.

(j'ai mis partout un espace entre & et egrave; parceque ce site (lui non plus !!!) n'utilise pas correctement htmlentities et affiche è si je ne mets pas d'espace
0
Adèle devient Adèle. Il y en a quand même un qui m'a échappé. il fallait lire : Adèle devient Ad& egrave;le.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
24 nov. 2008 à 15:02
Salut toto,
Oups, j'ai parlé un peu vite ! Ca ne fonctionne pas sous IE (???). Uniquement sous Firefox.

Autre chose: Comment je peux faire pour effectuer une recherche soit dans prenomsfeminins OU/ET (l'un ou l'autre) prenomsmasculins. Ca m'éviterai de faire deux scripts distincts.
En sachant que j'ai fais ces deux tables car j'ai mis le champ Prenom UNIQUE. Or, un prénom peut être masculin ET féminin, avec la même orthographe.
J'ai bien essayé avec "select * from prenomsfemins AND prenomsmasculins WHERE....." mais ça me met une erreur.

Merci encore !

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024
24 nov. 2008 à 16:02
Salut,

essayes:

select * from prenomsfemins, prenomsmasculins WHERE prenomsfemins.champ_prenom=.....OR   prenomsmasculins.champ_prenom =  ....
0
Tu aurais pu créer une table unique avec un champ genre (au sens grammatical, masculin ou féminin) et définir ta clé sur le couple prénom + genre.
Dans le formulaire, pour la saisie du prénom tu utilises une variable de session ou un champ hidden ou tout ce qui t'arrange pour mémoriser si la demande vient du lien prénom masculin ou prénom féminin. Quand tu as trouvé le prénom avec le bon genre dans ta bas, le reste est comme avant, rien à changer.

Pour ton problème de compatibilité IE / FF, faudrait voir ton script de menu, en javascript je suppose.
0