13

I want to send the data inputted into an html form to my sql database, i.e., create a new row attributing certain values to certain columns. I know there are similar questions, I read the answers but nothing seems to work.

send_post.php

<?php
//Connecting to sql db.
$connect = mysqli_connect("my host","my user","my passwrod","my db");
//Sending form data to sql db.
mysqli_query($connect,"INSERT INTO posts (category, title, contents, tags)
VALUES ('$_POST[post_category]', '$_POST[post_title]', '$_POST[post_contents]', '$_POST[post_tags]')";
?>

post.html#form

<form onSubmit="send_post.php" method="post">
    <h3>Category:</h3>
    <input type="text" name="post_category">
    <h3>Post title:</h3>
    <input type="text" name="post_title">
    <h3>Post tags (a,b,c...):</h3>
    <input type="text" name="post_tags">
    <h3>Post (use html):</h3>
    <textarea rows="20" cols="50" name="post_contents"></textarea>
    <input type="submit">
</form>

my db "posts" table colums:

pid
title
contents
tags
category

pid has auto_increment on

I have already tried sending values to all colunes, including pid, and in the "right" order.

The mysqli_connect part isn't the issue since I copied it from a different .php file of mine that works.

Server php-sql compatibility isn't the issue either, since I successfully had a different .php file retrieve data from the db (data which was manually inserted).

Alex
  • 1,416
  • 4
  • 16
  • 42
  • When you say nothing seems to work, what isn't working? Are you getting an error, wrong data in the db, etc? – Eli White Mar 11 '13 at 05:03
  • I meant none of the solutions provided by answers from different questions worked. I was getting no error output. – Alex Mar 11 '13 at 05:08

2 Answers2

16

change this

<form onSubmit="send_post.php" method="post">

to

<form action="send_post.php" method="post">
Yogesh Suthar
  • 30,424
  • 18
  • 72
  • 100
  • 1
    That was it. I was so focused on the .php I'd never suspect of that. I don't understand why it'd make a difference, though. Thank you. – Alex Mar 11 '13 at 05:10
  • 2
    @user117893 onSubmit calls a javascript function when the submit button is pressed, the action of a form is the url page to submit the form to. – Eli White Mar 11 '13 at 05:15
  • Oh alright. I was working with javascript before that, that's why I had onSubmit. Thank you, Eli. – Alex Mar 11 '13 at 05:28
0
$connect = mysqli_connect("my host","my user","my password","my db");

Don't forget to correct all spelling mistakes, can be a hassle when you don't know what is going wrong. (misspelt password as password)

GrandMasterFlush
  • 6,269
  • 19
  • 81
  • 104
Kosmic
  • 1