Besoin de comprendre un code
Posté : 08 janv. 2007, 13:07
Bonjour à tous! Me revoilà encore, lol! Cette fois-ci avec un code que j'ai recopié d'un bouquin PHP, ils n'expliquent rien! Je vais vous copier coller le code et le commenter tel que je le comprend, mais y'a certain truc que je pige pas, si vous pouviez m'eclairer :
<html>
<head>
<title>Envoi de requetes sql</title>
</head>
<body>
<?php
$host="localhost";
$user="root";
$password="";
if(@$_GET['form'] == "yes"){ /* C'est quoi l'@ avant $_GET? et pourquoi ne pas utiliser $_POST? */
mysql_connect($host, $user, $password); //connection sql
mysql_select_db($_POST['database']); // on selectionne la base
//en fonction de ce qui a été tapé dans le formulaire plus bas
$query = stripslashes($_POST['query']); //suprimme les antislashes
$result = mysql_query($query);
echo "Base de données selectionnée : <b>{$_POST['database']}</b><br>
Requête : <b>$query</b><h3>Resultats</h3><hr>";
if($result == 0) //si y'a aucune table
echo "<b>erreur ".mysql_errno().": ".mysql_error()."</b>";
elseif (@mysql_num_rows($result) == 0){//a partir de la je comprend plus rien
echo ("<b> requete executee. Aucun resultat envoyé.</b><br>");
}
else{
echo "<table border='1'>
<thread>
<tr>";
for($i = 0;$i < mysql_num_fields($result);$i++){
echo "<th>".mysql_field_name($result,$i)."</th>";
}
echo "</tr>
</thread>
<tbody>";
for ($i = 0;$i < mysql_num_rows($result);$i++){
echo "<tr>";
$row = mysql_fetch_row($result);
for ($j = 0;$j < mysql_num_fields($result);$j++){
echo ("<td>".$row[$j]."</td>");
}
echo "</tr>";
}
echo "</tbody>
</table>";
}
echo "<hr><br>
<form action=\"{$_SERVER['PHP_SELF']}\" method=\"POST\">
<input type='hidden' name='query' value='$query'>
<input type='hidden' name='database' value={$_POST['database']}>
<input type='submit' name=\"queryButton\" value=\"nouvelle requete\">
<input type='submit' name=\"queryButton\" value=\"editer la requete\">
</form>";
unset($form);
exit();
}
$query = " ";
?>
//le formulaire
<form action="<?php echo $_SERVER['PHP_SELF'] ?>?form=yes" method="POST">
// qu'est ce que $_SERVER['PHP_SELF'] ?
<table>
<tr>
<td align="right"><b>Indiquez le nom<br>de la base de donnée</b></td>
<td><input type="text" name="database" value="<?php echo @$_POST['database'] ?>"></td>
// pourquoi un @ devant $_POST?
</tr>
<tr>
<td align="right" valign="top"><b>saisissez la requete sql</b></td>
<td><textarea name="query" cols="60" rows="10"><?php echo $query ?></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="envoyer la requete"></td>
</tr>
</table>
</form>
</body>
</html>