Je suis un nouveau membre de Stackoverflow, et bien que j'utilise le site Web depuis longtemps, c'est la première fois que je pose une question, dans un espoir que quelqu'un sera capable de m'aider. Je commencerai par dire que ma connaissance de PHP et de MySQL est basique, mais ce que j'essaie de ne pas faire trop complexe à mon avis, j'espère donc que je ne demanderai pas beaucoup. J'ai fait beaucoup de recherches préalables, mais je ne pouvais tout simplement pas trouver la bonne réponse.
En bref, c'est ce que j'essaie de faire: P>
J'ai un HTML Le formulaire, qui lors de la soumission écrit des données à une base de données, puis publie une table sur une page HTML distincte. Avec chaque soumission réussie, une nouvelle table est générée et publiée, tandis que l'ancien est poussé en dessous. Tout cela fonctionne bien, et j'ai également implémenté la pagination de sorte que seules 5 tables sont visibles par page. p>
Ce que j'aimerais pouvoir faire est de permettre aux gens de voir seulement des résultats / afficher uniquement les résultats (tableaux) sur la base d'un critère spécifique, dans ce cas «note», en sélectionnant une note à partir d'une liste déroulante. sur la page où des tables sont publiées. La note est l'un des champs de ma forme qui est soumis à une base de données puis publiée dans l'une des lignes d'une table. P>
ci-dessous est le code qui publie des tables. Merci d'avance pour votre aide! P>
<?php
include('dbconnect.php');
mysql_select_db("vtracker", $con);
$result = mysql_query("SELECT * FROM userdata");
$age = "Age:";
$rating = "Rating:";
$country = "From:";
$name = "Name:";
while($row = mysql_fetch_array($result))
{
echo "<table id='mft_table' cellspacing='0'>";
echo "<tbody>";
echo "<tr>";
echo "<td class='row1'>" .$name . " " . $row['personsname'] . "</td>";
echo "<td rowspan='4'>";
echo "<div class='mft_column'>" . $row['mft'] . "</div>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td class='row2'>" . $country . " " . $row['nationality'] . "</td>";
echo "</tr>";
echo "<tr>";
echo "<td class='row3'>" . $age . " " . $row['personsage'] . "</td>";
echo "</tr>";
echo "<tr>";
echo "<td class='row4'>" . $rating . " " . $row['rating'] . "</td>";
echo "</tr>";
echo "</tbody>";
echo "<br>";
echo "</table>";
}
?>
3 Réponses :
Dunno Si cela fonctionne, c'est juste un Hinch. haha. Il verra si la note est vraie (pas null), si c'est vrai, cela fera écho aux résultats.
while($row = mysql_fetch_array($result))
{
if ($rating)
echo "<table id='mft_table' cellspacing='0'>";
echo "<tbody>";
echo "<tr>";
echo "<td class='row1'>" .$name . " " . $row['personsname'] . "</td>";
echo "<td rowspan='4'>";
echo "<div class='mft_column'>" . $row['mft'] . "</div>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td class='row2'>" . $country . " " . $row['nationality'] . "</td>";
echo "</tr>";
echo "<tr>";
echo "<td class='row3'>" . $age . " " . $row['personsage'] . "</td>";
echo "</tr>";
echo "<tr>";
echo "<td class='row4'>" . $rating . " " . $row['rating'] . "</td>";
echo "</tr>";
echo "</tbody>";
echo "<br>";
echo "</table>";
}
}
Une fois que la liste déroulante est sélectionnée et affichée sur votre affichage, utilisez ce code:
$temp_rating = $_POST['rating_dropdown'];
mysql_query("SELECT * FROM userdata WHERE rating = '$temp_rating'");
Merci d'avoir répondu. La liste déroulante avec les options de notation est toujours sur la page d'affichage, que j'ai liée à un fichier "filtrer.php" appelé lorsqu'un utilisateur clique sur le bouton "Soumettre". La logique de mon code dans le fichier filter.php est en fait la même chose que ce que vous avez suggéré, mais cela ne fonctionne pas, c'est-à-dire que les résultats (tableaux) ne sont pas filtrés en fonction de la sélection de l'utilisateur. Voici le code dans Filter.PHP Fichier:
Dans le fichier filter.php j'ai: $ filtré = mysql_real_escape_string ($ _ POST ["filtré"]); $ résultat = mysql_query ("Sélectionnez * userData où la note = '$ filtrée'"); Et puis une boucle de temps qui imprime les tables, comme dans mon code d'origine.
Sur la base de ce que vous avez écrit, il semble que cela fonctionne. Démarrez le débogage par echo code> ing the $ filtré code> variable pour voir s'il contient en effet le contenu que vous attendez.
Pour une utilisation true et fausse, peut ajouter THID dans votre code:
if($_POST['rating_dropdown']!='')
{
$temp_rating = $_POST['rating_dropdown'];
$query=mysql_query("SELECT * FROM userdata WHERE rating = '$temp_rating'");
}
else
{
$query=mysql_query("SELECT * FROM userdata");
}
Merci, toutes fonctionnent bien, j'ai incorporé des conseils donnés. Merci tout pour la lancée.