Je suis un vrai débutant avec PHP et MySQL. Maintenant, je travaille sur le code suivant qui devrait chercher dans la base de données par exemple. tous les Lennons vivant à Liverpool.Problèmes de débutant avec MySQL et php
1) Comment modifier "get.php" pour que le texte "aucun résultat" apparaisse s'il n'y a pas de résultats de recherche.
2) Comment est-ce que je devrais modifier "index.php" pour obtenir les valeurs d'option (ville et nom) directement de la base de données au lieu d'avoir à les taper un par un?
3) Est-ce que j'utilise mysql_real_escape_string dans le bon sens?
4) Y a-t-il d'autres erreurs dans le code?
index.php:
<form action="get.php" method="post">
<p>
<select name="city">
<option value="Birmingham">Birmingham</option>
<option value="Liverpool">Liverpool</option>
<option value="London">London</option>
</select>
</p>
<p>
<select name="lastname">
<option value="Lennon">Lennon</option>
<option value="McCartney">McCartney</option>
<option value="Osbourne">Osbourne</option>
</select>
</p>
<p>
<input value="Search" type="submit">
</p>
</form>
get.php:
<?php
$city = $_POST['city'];
$lastname = $_POST['lastname'];
$conn = mysql_connect('localhost', 'user', 'password');
mysql_select_db("database", $conn) or die("connection failed");
$query = "SELECT * FROM users WHERE city = '$city' AND lastname = '$lastname'";
$result = mysql_query($query, $conn);
$city = mysql_real_escape_string($_POST['city']);
$lastname = mysql_real_escape_string($_POST['lastname']);
echo $rowcount;
while ($row = mysql_fetch_row($result))
{
if ($rowcount == '0')
echo 'no results';
else
{
echo '<b>City: </b>'.htmlspecialchars($row[0]).'<br />';
echo '<b>Last name: </b>'.htmlspecialchars($row[1]).'<br />';
echo '<b>Information: </b>'.htmlspecialchars($row[2]);
}
}
mysql_close($conn);
?>
Il est un peu tard pour échapper à votre poste variables lorsque vous avez déjà fait la requête. Déplacez-les au-dessus de la ligne de requête $. – Anthony