Bonjour, voilà je suis nouveau et novice dans ce langage, j'ai creer un formulaire html pour une newsletter :
juste une adresse mail qui doit aller dans une base de donnée :
j'envoi mon formulaire sur fichier php
installation.php

mais voilà impossible d'ecrire dans ma table

pas de messages d'erreur mais rien ne se modifie ::
je vous donne la source et j'espre que quelqu'un poura m'aider, car ca fait trois jours ue je suis dessus ett je ne trouve pas l'erreur

<?php
$host = "mon adrese "; /* L'adresse du serveur */
$login = "mon login"; /* Votre nom d'utilisateur */
$password = "mon password"; /* Votre mot de passe */
$base = "philo404236"; /* Le nom de la base */

$link = mysqli_connect("$host", "$login", "$password", "$base");

/* Vérification de la connexion */
if (mysqli_connect_errno())
{
printf("Échec de la connexion password : %s\n", mysql_connect_error());
exit();
}

/* Affichage des informations sur l'hôte */

printf("Informations sur l'hôte : %s\n", mysqli_get_host_info($link));
printf("Version du serveur : %d\n", mysqli_get_server_version($link));

$sonmail = (trim($_POST"email"]));

mysqli_select_db($link,$base);

$query = "insert into mabasenews (mail) values('" . $_POST"email"] . "')";
mysqli_close($link);

voila : pourquoi ca ne mrche pas ?????

même en local avec phpadmyn

ma base de donnée :

2 champs
1 Id auto incrementation
2 mail vchar 30

de l'aide svp

5 réponses


Nairolf
Réponse acceptée

Déjà rien que ça pose problème:

$link = mysqli_connect("$host", "$login", "$password", "$base");

Tu dois mettre " quand tu as des caractères, et non les variables, modifies pour ça:

$link = mysqli_connect($host, $login, $password, $base);

Pour la vérification essaye plutôt:

if (!$link)
  {
  die("Erreur: ".mysqli_connect_errno());
  }

Ensuite tu prépares ta requête sans l’exécuter, il faut faire ça:

$query = 'INSERT INTO mabasenews (mail) VALUES ("' . $sonmail . '")';
mysqli_query($link, $query);

Après je vois pas pourquoi tu met mysqli_select_db($link,$base); alors que la base est sélectionnée avec le mysqli_connect

Enfin tu as créé la variable $sonmail, et tu ne l'utilise pas...

Et aussi essaye d'afficher la variable $sonmail ou $_POST'email'] voir si c'est pas parce que c'est une variable vide, m'enfin même vide, une entrée doit se créer.

Nairolf
Réponse acceptée

$req = mysql_query ("INSERT INTO mabasenews (id,mail) VALUES('" .$email. "')");

Je pense que ça viens de là car tu as dit d'insérer des valeurs dans id et mail, hors tu met que le mail donc il cherche à mettre le mail dans l'id mais plutôt VALUES('','".$email."')

philodub
Auteur

Merci pour ta réponse, mais mysli ne marche pas !!!!

Bon j'ai refais le php

mais toujours pas possible d'inserer das la tble !!!!

Quand je fais un update ca marche, quad j'affiche ca marche

il n'y a vraiment que ce problème qui ne vas pas !!!!

je te remets le php

<?php
$host = "127.0.0.1"; /* L'adresse du serveur */
$login = "root"; /* Votre nom d'utilisateur */
$password = ""; /* Votre mot de passe */
$base = "mabase"; /* Le nom de la base */

$db = mysql_connect($host, $login, $password);
mysql_select_db($base,$db);

$email =trim($_POST"email"]);

if (!$db)
{
die("Erreur: ".mysql_connect_errno());
}

$req = mysql_query ("INSERT INTO mabasenews (id,mail) VALUES('" .$email. "')");

mysql_query($req);

// $requete = mysql_query("UPDATE mabasenews SET mail='$email' WHERE id=4");

// on crée la requête SQL

$sql = 'SELECT id,mail FROM mabasenews ORDER BY mail';

// on envoie la requête

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement

while($data = mysql_fetch_assoc($req))
{
// on affiche les informations de l'enregistrement en cours

echo '<b>'.$data'id'].' '.$data'mail'].'</b><br> ';
// echo ' <i>nom : '.$data'mail'].'</i><br>';
}

// on ferme la connexion à mysql

mysql_close();// facultative, on ferme la connexion

?>

Ca menerve que je n'y arrive pas !!!

philodub
Auteur

Ok Un grand merci maintenant ca marche !!! ouf

J ai éclairci tout ça c'est plus clair !!!!

<?php
$host = "127.0.0.1"; /* L'adresse du serveur */
$login = "root"; /* Votre nom d'utilisateur */
$password = ""; /* Votre mot de passe */
$base = "mabase"; /* Le nom de la base */

$link = mysql_connect($host, $login, $password);
mysql_select_db($base,$link);

$email =trim($_POST"email"]);

if (!$link)
{
die("Erreur: ".mysql_connect_errno());
}

$req = mysql_query (" INSERT INTO mabasenews VALUES('','".$email."')" );
mysql_query($req,$link);

mysql_close();// facultative, on ferme la connexion

?>

Encore merci pour ton aide

philodub
Auteur

Bonjour j'ai un problème avec mes tableaux !! tout s'affiche bien mes moddifs aussi !!! mai quand je fais les input il n'affiche pas toutes les données il suprime les espaces !!! pourquoi ?