J'essaie de m'enseigner MySQL/PHP dès le début. Le code suivant a été levé à partir de divers sites de tutoriel. J'utilise phpMyAdmin fourni par mon hébergeur.MySQL: Pourquoi ignore-t-il le texte dans le champ de formulaire?
J'ai fait une table avec un champ auto-incrémenté appelé "ID" et un autre champ appelé "premier" (varchar, limite 30, non nul). Ensuite, j'ai fait un formulaire simple avec un champ de texte nommé "premier" et un bouton Envoyer. Je tape mon nom dans la boîte et cliquez sur Envoyer. Cela crée une ligne dans la base de données avec un ID, mais le champ "premier" est toujours vide.
J'ai essayé de remplacer '$ _POST [first]' avec quelques mots simples, et cela a fonctionné - les mots apparaissaient dans le tableau avec un numéro d'identification très bien. C'est comme ça que je sais qu'il parvient à parler à la base de données, il ne saisit pas le champ de texte
Après l'exécution de l'instruction INSERT, tous les enregistrements de la table sont affichés. Il montre tous les numéros d'identification, puis vide où "premier" devrait être. Je l'ai aussi fait écho à l'instruction INSERT. C'est ce que l'affichage d'écho: INSERT INTO tblHurray (ID, premier) VALUES ('', '')
Quand je remplace les mots pour '$ _POST [premier]', l'écho ressemble à ceci: INSERT INTO tblHurray (ID, first) VALEURS ('', 'words')
Ceci est ma première question alors s'il vous plaît laissez-moi savoir si j'ai omis toute information pertinente! Et merci d'avance pour votre aide.
C'est la forme:
<form action="run_input.php" method="post">
Name: <input type="text" name="first">
<input type="Submit">
</form>
C'est ce qui fonctionne lorsque "Soumettre" est cliqué:
<?
include("run_connect.php"); // this connects to the database, this works
$step1 = "INSERT INTO tblHurray(ID, first) VALUES ('','$_POST[first]')";
mysql_query($step1);
echo "$step1";
echo "<b><center>Database Output</center></b><br><br>";
$step2=mysql_query("SELECT * FROM tblHurray");
$num=mysql_numrows($step2);
$i=0;
while ($i < $num) {
$firstname=mysql_result($step2,$i,"first");
$ID=mysql_result($step2,$i,"ID");
echo "$ID: $firstname<br />";
$i++;
}
?>
Il est même préférable d'utiliser des instructions préparées. Découvrez PDO ou mysqli. –
mySQL a préparé des déclarations à partir de 4.1 – Mathew
Je suis d'accord avec vous deux, je ne voulais pas présenter trop de concepts à la fois :) –