DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/)
-   PHP (http://www.daniweb.com/forums/forum17.html)
-   -   Problem with INSERT command into MySQL (http://www.daniweb.com/forums/thread115888.html)

justted Mar 27th, 2008 1:01 am
Problem with INSERT command into MySQL
 
Hello everyone,

I seem to be having a problem inserting some information into a MySQL table. Below is a copy of the MySQL table code I used and also the PHP code. I was wondering if anyone can help me find out why it wont insert the information.

What I am trying to do is make it so members can go and choose an option to join one of a selection of islands which will be subdivded into towns and then the town subdivided into villages. Each of the island/town and village levels will have a staff rank to allow certain members to have access rights to those pages.

But basically as you can see I want to set the default island/town/village levels and ranks to 0 intially. Then when the member goes to the island -age they will choose an island of say 4 options (which would update the island field to between 1-4 to depending on selecting an option. Then they choose a town of say between 1-4 and then again it updates the town field of between 1-4. And again for the village.

However, for some reason this code isnt working so far and its stopped me in my tracks. lol

I am using the $userid and $game tags which are apart of the include global.inc.php page I believe. I need this to identify the user and their individual details.


Can anyone help or see any obvious mistakes?


Here is the MySQL code:


CREATE TABLE `island2` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `user` int(11) NOT NULL default '0',
  `island` int(11) NOT NULL default '0',
  `town` int(11) NOT NULL default '0',
    `village` int(11) NOT NULL default '0',
      `islandrank` int(11) NOT NULL default '0',
    `townrank` int(11) NOT NULL default '0',
      `villagerank` int(11) NOT NULL default '0',
  `game` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6359 ;


And this is the PHP island1090.pro.php page which should once the link on island1090.php is clicked insert a row. But currently it doesnt do it.
<?php

/*

Move to Island 1090 (island1090.pro.php)

*/
ob_start();
$rank_check = 1;
include "global.inc.php";


$check = fetch("SELECT * FROM island2 WHERE user = '$userid' AND game = '$game'");
if ($check[id])
{
        die(header(error("isaland1090.php?game=$game","You already have a House.")));
}


mysql_query("INSERT INTO island2 (id,user,island,town,village,islandrank,townrank,villagerank,game) VALUES ('',$userid','1','1','1','0','0','0','$game')");
header(error("island1090.php?game=$game","You have just settled into *****Island name here*******."));

?>


Any help is much appreciated.


Thank you

Justin

RoryGren Mar 27th, 2008 2:46 am
Re: Problem with INSERT command into MySQL
 
Hi Justin

I see you have the command ob_start() at the top of your php. Do you have the ob_end_flush() command before the page end?

What ob_start() does is to hold all the php output in its Output Buffer (ob) until it receives the ob_end_flush() command, whereupon it sends all the output together. So, if you don't have the ob_end_flush(), php is going to wait a long time before sending the output to the server! ;-)

I hope that helps.

Rory

nav33n Mar 27th, 2008 5:43 am
Re: Problem with INSERT command into MySQL
 
Print out your query, execute it in phpmyadmin/ mysql console and see if it works. You can also give "die" to check if your query is working or not.
ie.,
  1. $query = mysql_query("your query") or die(mysql_error())";
  2.  

justted Mar 27th, 2008 7:08 pm
Re: Problem with INSERT command into MySQL
 
Hiya thanks for the replies.,

I have tried the ob_end and that didnt work and dont exactly know how to print the query :>/

Im sorry but im only a beginner. I know how to run a SQL query but not print or do the die. :>/

Also I actually dont know why the ob_start is there as I took a similar script from my website and just changed the details to this table.

Im not sure I could write it from scratch quite yet. But what does the Ob_start and end mean/do?


Thanks

Justin

TopDogger Mar 27th, 2008 7:43 pm
Re: Problem with INSERT command into MySQL
 
You are trying to insert an id value of ' ' when you have that column set up as auto_increment. Don't insert an id value. Let MySQL set the id value.

Try this:

mysql_query("INSERT INTO island2 (user,island,town,village,islandrank,townrank,villagerank,game) VALUES ('$userid','1','1','1','0','0','0','$game')");

Suomedia Mar 27th, 2008 7:46 pm
Re: Problem with INSERT command into MySQL
 
Quote:

Originally Posted by justted (Post 570748)
Hiya thanks for the replies.,
But what does the Ob_start and end mean/do?




It was explained, but we will try again.

ob_start(); buffers the output to the browser (stops it) until ob_end_flush() is called. If you don't have ob_end_flush() then the output of code after ob_start will not be sent to the browser.

Matti Ressler
Suomedia

Suomedia Mar 27th, 2008 7:48 pm
Re: Problem with INSERT command into MySQL
 
Quote:

Originally Posted by TopDogger (Post 570773)
You are trying to insert an id value of ' ' when you have that column set up as auto_increment. ;




What IS this nasty script? I answered the same to very similar looking code just the other day :icon_eek:


Matti Ressler
Suomedia

justted Mar 27th, 2008 8:16 pm
Re: Problem with INSERT command into MySQL
 
Thank you everyone so much. That has worked. And thanks for the explanation. :O)


Justin

nav33n Mar 28th, 2008 3:38 am
Re: Problem with INSERT command into MySQL
 
Quote:

Originally Posted by Suomedia (Post 570777)
What IS this nasty script? I answered the same to very similar looking code just the other day :icon_eek:


Matti Ressler
Suomedia



Deja vu man ;)

justted Mar 28th, 2008 3:47 am
Re: Problem with INSERT command into MySQL
 
I paid for the script off this guy who advertises that he gives support and backup to customers. However, this is not true and he ignores any tech support requests so I have had to learn what I can by editing the script.

Why is it really that bad? :o/

Justin


All times are GMT -4. The time now is 5:49 am.

Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC