Showing posts with label Recipe Section. Show all posts
Showing posts with label Recipe Section. Show all posts

Wednesday, 18 November 2009

Simple insert into mysql from html form via php example

*** Disclaimer if you think the internet is there to do all the work for you, then this post is not for you, go and enjoy a chat with your neighbour  ***

Just been spending a bit more time learning php and on the future recipe section for my chance1234.com site. I wanted a clean and simple INSERT INTO example which I can use as a basis for future development.

In the php book I am reading I have tons of examples and on the web, there are tons of examples - but!! A lot of them have lots of other bits and pieces cluttering them up. In good time, as I learn more I am sure it will begin to make sense. But, I think a lot of people who write tutorials forget who they are writing for. Putitng in ISSET() might be second nature for yourself, but if you do not explain why you are putting it there, then it is just confusion.

Also, Yes sometimes the most simple solutions are not the right solution, but for someone learning, stripping back to the essentials can be most beneficial so they can see clearly what is going on. Remember making mistakes is one of the best ways of learning.

Anyway, end of rant and onto my insert.

I have a php file for adding recipes to my database. It currently looks something like this and is tentatively named add.php

<?php
require_once 'funcLists.php';
?>

<form action="transRecipe.php" method="POST">

<h1>Add Recipes</h1>

<p>Recipe Title
  <input type="text" size=50 name="recipeTitle" maxlength="255"  value="">
</p>

<p>Recipe Type
  <?php listRecipesTypes(); ?>   
  </p>
 
<p>Quick Description<br>
    <textarea name="recipeQuick" rows="6" cols="63"></textarea>
</p>

<p>Select Ingredients</p>
    <?php listIngredients() ?>   
<br>

<input type="submit" type="submit" value="Add Recipe">   

</form>

I also have a second php file called transRecipes.php , which contains my INSERT INTO code and that looks like this.

<?php

require_once '../conn.php';


        $sql = "INSERT INTO recipe (rType,title,quick)
        VALUES
        ($_POST[recipeType],'$_POST[recipeTitle]','$_POST[recipeQuick]')";
       
       
        echo $sql;
         echo "<br><br>";
       
        if (!mysql_query($sql))
          {
          die('Error: ' . mysql_error());
          }
        echo "Here is my bottom";

?>

And here is a list of the important condsiderations
  1. In the form action part , there is the reference to the transRecipe.php file , which you need for it to work
  2. The $POST[...] parts in transRecipe refer to the names of the input controls on the Add.php file
  3. The echo parts are there to help me debug and allow us to concentrate on getting the SQL right in the INSERT statement

Thursday, 12 November 2009

Creating a Multiselect box from mysql source

*** Disclaimer, If you are the type of person who thinks the internet owes you everything then this post is probably not for you. Read a book for a change ***

Just adding these disclaimers, as this blog is more my thought process as I am teaching myself php. I make no claims for anything being the best or right way to do things.

One of the main reason for these posts, is so I cam easily copy pasta bits no matter where I am.

Anyhow, going back to my recipe section on my site that I'm building, I want on the form a multiple select box for the ingredients. I have the following table on my database


CREATE TABLE IF NOT EXISTS `ingredients` (
`iId` int(11) NOT NULL auto_increment,
`type` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`notes` varchar(255) NOT NULL,
PRIMARY KEY (`iId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ;

Just a note about why I have type in my ingredients. This is one of my bugbears with a lot of recipe listingsis they never group the ingredients by type. I am including type so that you can copy down the recipe and go to the supermarket and be less likely to miss anything off.

The Function for the multibox select is as follows

Function listIngredients()
{
$html ='<select name="Ingr[]" multiple="multiple">';
$sql=" SELECT `iId` , `name`
FROM `ingredients`
ORDER BY TYPE , name
LIMIT 0 , 30 ";

$result = mysql_query($sql)
or die(mysql_error());

if (mysql_num_rows($result) == 0)
{
echo "<em>No created.</em>";
}
else
{
while ($row = mysql_fetch_array($result))
{
$html .= '<option value='. $row['rId'].'>'.$row['name'].'</option>';
}
}
$html .= '</select>';
echo $html;
}

Monday, 9 November 2009

Adding items to a dropdown from a MYSQL Database

*** Disclaimer I do not know if this is the best method or is even correct, if you are the type of person who reads things on the internet, tries them out and then gets annoyed when things don't work out. Then maybe this post is not for you, go outside instead and enjoy some fresh air ***

My next php project is, I'm building a small recipe section for my chance1234.com site. I've started on working on a form to allow myself to add recipes to the database.

One of the options I want when adding recipes is to be able to clarify recipes by type. ie pasta dishes, soups etc

What I did was set up a table on mysql database called rtype


CREATE TABLE IF NOT EXISTS `rType` (
`rId` int(11) NOT NULL auto_increment,
`type` varchar(255) NOT NULL,
`Notes` varchar(255) NOT NULL,
PRIMARY KEY (`rId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

Then on my php file, I created the following function

Function listRecipesTypes()
{
$html ='<select name="'.$name.'">';
$sql="SELECT rID,type FROM rType";

$result = mysql_query($sql)
or die(mysql_error());

if (mysql_num_rows($result) == 0)
{
echo "<em>No created.</em>";
}
else
{
while ($row = mysql_fetch_array($result))
{
$html .= '<option value='. $row['rId'].'>'.$row['type'].'</option>';
}
}
$html .= '</select>';
echo $html;
}

?>


I adapted the code from a Make a Website post. Ideally what I want to do is adapt the function so I can chuck any array at it.

LinkWithin

Related Posts with Thumbnails