Je souhaite connecter 2 tables dans ma requête pour afficher les résultats.
J'ai lastname
, firstname
etc dans le premier tableau.
Dans la deuxième table je training
, date
...mysql SELECT (besoin de se connecter à 2 tables et afficher les résultats pour une recherche)
J'ai aussi dans la deuxième table une référence ID
qui relie et prenom à lastname la formation et la date.
Chaque fois que je crée un enregistrement d'entraînement dans la base de données, il utilise le même ID pour la même personne. Je veux pouvoir connecter les deux tables dans ma requête et afficher les résultats si je recherche lastname
.
Il énumérera également toute la formation qu'ils ont terminée si je clique sur leur nom dans la recherche qui a été lancée.
Je suis très nouveau dans la base de données MySQL. J'utilise phpmyadmin pour MySQL et exécute une base de données localhost à des fins de test ...
Je peux actuellement rechercher une seule table et afficher des résultats, mais je ne peux pas comprendre l'union pour les lier et avoir la liste des noms comme lien pour montrer la formation. et qu'il garde son nom en haut pour une impression ... voici le code que j'utilise que j'ai reçu d'un tutoriel.
<form>
<div align="right">
<input type="button" value="Print Results" onClick="myprint()">
</div>
</form>
<?php
// TAKE THE INFORMATION FROM FORM.
$search = $_GET['search'];
// IF THERE IS NOT A KEYWORD GIVE AN ERROR
if (!$search)
echo "You didn't enter a keyword";
else
{
echo "<td>You searched for: <strong>$search </strong></td>";
mysql_connect('localhost','loginid','password');
mysql_select_db('trainingrecords');
[email protected]$_GET['id'];
//QUERY IS THE CODE WHICH WILL MAKE THE SEARCH IN YOUR DATABASE.
//I WROTE AN EXPLANATION ABOUT IT AFTER THE CODE.
$query="SELECT * FROM username
WHERE MATCH(lastname, firstname, location, created)
AGAINST('%$search%' IN BOOLEAN MODE)";
$result1 = MySQL_query($query);
if(!$result1) {
echo MySQL_error()."<br>$query<br>";
}
if (MySQL_num_rows($result1) > 0) {
echo "<table width='750' align='center' border='1'
cellspacing='2' cellpadding='2'>";
while($result2 = MySQL_fetch_array($result1)) {
//A short description from category.
$description = $result2['location'];
$searchPosition = strpos($description, $search);
$shortDescription = substr($description, $searchPosition, 150);
echo "<td><strong>{$result2['lastname']}
{$result2['firstname']}</td></strong><td>
$shortDescription</td><td>{$result2['created']}</td><tr/>";
}
echo "</table>";
} else {
echo "No Results were found in this category.<br>";
}
echo "<br>";
}
?>
Merci Johan Cela fonctionne très bien! Maintenant, mon seul problème est ma recherche de chaîne. quand je cherche le nom de famille et s'il y a deux personnes avec le même nom de famille, cela les amène toutes les deux et quand je recherche le prénom nom de famille ensemble. il semble l'ignorer et tire juste les deux de toute façon. Comment puis-je l'obtenir pour faire correspondre uniquement le prénom et le nom de famille sur ma recherche. plutôt que de simplement chercher les deux et me donner tous les résultats? – yeahwhatever
J'ai aussi du mal à commander la recherche par nom de famille ou celui que je choisis. Y at-il un moyen d'avoir ma table avec les en-têtes pour chaque champ que si vous cliquez sur eux, il les ordonne par ce champ? et avoir la valeur par défaut étant le nom de famille? – yeahwhatever