<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>اول اسكربت باذن الله</title>
</head>
<body>
<table width="100%" border="1">
<tr>
<td>name</td>
<td>number</td>
<td>math</td>
<td>arab</td>
<td>history</td>
<td>geo</td>
</tr>
<?php
require_once "conf.php";
$sql2=("SELECT * FROM student WHERE snum = $ss");
$rs2 = mysql_query($sql2) or die(mysql_error());
$num = mysql_num_rows($rs2);
$ss= $_POST["ss"];
if (empty($ss))
{ echo "please write your search words";}
else if ($num < 1) {
echo "not found any like ";
}else {
$sql=("SELECT * FROM student WHERE snum = $ss ");
$rs = mysql_query($sql) or die(mysql_error());
while($data=mysql_fetch_array($rs)){
$name=$data["sname"];
$number=$data["snum"];
$math=$data["math"];
$arab=$data["arab"];
$history=$data["history"];
$geo=$data["geo"];
echo"
<tr>
<td>$name</td>
<td>$number</td>
<td>$math</td>
<td>$arab</td>
<td>$history</td>
<td>$geo</td>
</tr>
";
}
};
?>
</table>
</body>
</html>
Répondre
Je pense que $ ss = $ _POST [ "ss"]; devrait aller avant
$ sql2 = ("SELECT * FROM étudiant WHERE snum = $ ss");
Cris vous êtes veryyyyyy homme dieu il est travaille maintenant merci – magy
$ss
est une chaîne? Si vous avez ceci?
$sql2=("SELECT * FROM student WHERE snum = '$ss'");
non c'est le numéro num $ sql2 = ("SELECT * FROM étudiant WHERE snum = $ ss"); – magy
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; - Base de données: 'custom' - Structure de table pour la table' Student' CREATE TABLE SINON EXISTE 'Student' (' id' int (11) NOT NULL auto_increment, 'sname' varchar (100) PAS NULL, 'snum' int (15) NOT NULL, ' math' int (10) NON NULL, 'arab' int (10) NOT NULL, ' history' int (10) NOT NULL, 'geo' int (10) NOT NULL, PRIMARY KEY ('id') ) MOTEUR = CHARGEUR PAR DÉFAUT MyISAM = cp1256 AUTO_INCREMENT = 3; – magy
Vous passez non-existante variables $ss
à votre requête avant sa sortie:
$sql2=("SELECT * FROM student WHERE snum = $ss"); // <-- problem here
$rs2 = mysql_query($sql2) or die(mysql_error());
$num = mysql_num_rows($rs2);
$ss= $_POST["ss"];
Essayez ceci:
require_once "conf.php";
$ss= $_POST["ss"];
if (empty($ss))
{ echo "please write your search words";}
else if ($num < 1) {
echo "not found any like ";
}else {
$sql=("SELECT * FROM student WHERE snum = $ss ");
$rs = mysql_query($sql) or die(mysql_error());
// and more code...
Vous ne pouvez pas utiliser une variable qui n'a pas été initialisé. Dans votre cas, $ss
est probablement indéfini lorsque vous l'utilisez pour créer la requête dans $sql2
. Cela entraîne une instruction SQL non valide car il n'y a rien après l'opérateur =
.
Essayez ceci:
require_once "conf.php";
if (!isset($_POST["ss"])) {
echo "please write your search words";
} else {
$ss = $_POST["ss"];
$query = "SELECT * FROM student WHERE snum = '".mysql_real_escape_string($ss)."'";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) == 0) {
echo "not found anything like ".htmlspecialchars($ss);
} else {
while ($data=mysql_fetch_array($result)) {
// …
}
}
}
Sérieusement?
Première: php est un langage de programmation simple. Il exécute tout ce que vous lui donnez dans l'ordre que vous lui donnez. C'est pourquoi la variable $ ss que vous essayez d'utiliser dans votre requête n'existe pas lorsque vous essayez de l'utiliser. Vous devriez lui attribuer sa valeur avant de l'utiliser.
Maintenant, commençons à être un âne. $_POST['ss']
est fourni par vos visiteurs. Ne fais pas confiance. Ne faites jamais confiance aux commentaires des utilisateurs! Ils veulent prendre le contrôle de votre serveur afin qu'ils puissent vous trouver et vous kidnapper pour demander une rançon. Donc, ne l'utilisez pas dans votre requête sans vérifier sa valeur. Imaginez si votre utilisateur envoie $ _POST ['ss'] = '1 OR 1'; La meilleure façon de traiter ce genre de problème est d'utiliser des requêtes paramétrées avec mysqli ou PDO.
+1 Il est une bête noire de la mienne pour voir le code vulnérable SQL injection. – tangrs
- 1. pourquoi ce code ne fonctionne pas?
- 2. Pourquoi ce code ne fonctionne pas?
- 3. Pourquoi ce code ne fonctionne pas? :(
- 4. pourquoi ce code java ne fonctionne pas?
- 5. Pourquoi ce code symfony ne fonctionne pas?
- 6. ne comprend pas pourquoi ce code ne fonctionne pas
- 7. Pourquoi ne puis-je pas exécuter ce code? Pourquoi ne puis-je pas exécuter ce code?
- 8. Pourquoi ce code ne fonctionne pas en Pascal?
- 9. Pourquoi ce code C++ ne fonctionne-t-il pas?
- 10. Pourquoi ce code erlang ne fonctionne-t-il pas?
- 11. Pourquoi ce code jquery slideToggle ne fonctionne-t-il pas?
- 12. Pourquoi ce code jQuery ne fonctionne pas (getScript)
- 13. Pourquoi ce code JSON.parse ne fonctionne-t-il pas?
- 14. Pourquoi ce code jQuery ne fonctionne-t-il pas?
- 15. session_set_save_handler - Pourquoi ce code ne fonctionne-t-il pas?
- 16. Pourquoi ce code Java String.replaceAll() ne fonctionne-t-il pas?
- 17. Pourquoi ce code VB.NET (traduit) ne fonctionne-t-il pas?
- 18. Pourquoi ce code html/css ne fonctionne-t-il pas?
- 19. Pourquoi ce code ne fonctionne-t-il pas?
- 20. Pourquoi ce fil ne fonctionne pas?
- 21. Pourquoi ce script ne fonctionne pas?
- 22. Pourquoi mon code PHP ne fonctionne pas?
- 23. Pourquoi ce modèle d'URL ne fonctionne pas?
- 24. Pourquoi ce unbind ne fonctionne pas?
- 25. Pourquoi ce programme PHP ne fonctionne pas?
- 26. Pourquoi ce code ne fuit-il pas?
- 27. Pourquoi ce javascript ne fonctionne-t-il pas? Ce
- 28. Pourquoi ce fichier d'installation ne fonctionne-t-il pas?
- 29. Pourquoi ce code XUL fonctionne-t-il et l'équivalent Javascript ne fonctionne pas?
- 30. pourquoi ce code jQuery ne fonctionne que dans FireFox?
quel code sql? – hgulyan