Jump to content

[RESOLVED] mysql_insert_id()


Mr Chris

Recommended Posts

Hi Guys,

The below part of a form submits data to a Mysql database.

[code=php:0]
<?php

session_start();

// ** Connect to DB **
include("*********");


// ** If Submit is hit do your stuff **
   if (isset($_POST['Submit'])) {

   $section = $_POST['section'];
   $added_by = $_POST['added_by'];
   $headline = $_POST['headline'];
   $byline_name = $_POST['byline_name'];
   $appeared = $_POST['appeared'];
   $published = $_POST['published'];
   $opening = $_POST['opening'];
   $body_text = $_POST['body_text'];
   $quote = $_POST['quote'];
   $term_one = $_POST['term_one'];
   $term_two = $_POST['term_two'];
   $term_three = $_POST['term_three'];
   $term_four = $_POST['term_four'];
   $notes = $_POST['notes'];

// ** Check for Required Fields with IF statements **
      if (empty($section)){
       $error = "** You forgot to enter the section for the story! **";
   }  else if (empty($added_by)){
       $error = "** Error: You forgot to who added the story! **";
   }  else if (empty($headline)){
       $error = "** Error: You forgot to enter a headline for the story! **";
   }  else if (empty($byline_name)){
       $error = "** Error: You forgot to enter a byline name for the story! **";
   }  else if (empty($published)){
       $error = "** Error: You forgot to the date you wish to publish the story! **";
   }  else if (empty($opening)){
       $error = "** Error: You forgot to the Opening Paragraph for the Indexes! **";
   }  else if (empty($body_text)){
       $error = "** Error: You forgot to enter any body text! *";

// ** If all of the statements are true then **
   } else {
   $query = "INSERT INTO cms_stories(section,added_by,headline,byline_name,appeared,published,opening,body_text,quote,term_one,term_two,term_three,term_four,notes) VALUES
   ('$section','$added_by','$headline','$byline_name','$appeared','$published','$opening','$body_text','$quote','$term_one','$term_two','$term_three','$term_four','$notes')";
   $story_id=mysql_insert_id();
   header("Location: http://*****************/pictures/upload.php?story_id=$story_id");

// ** And finally run the query to add data to the database **
    $link = mysql_connect;
    mysql_select_db($db);
    $result = mysql_query($query) or die('Query failed: ' . mysql_error());
    mysql_close();
}
}
?>
[/code]

Now when the if conditions are met and the data is added it then re-directs to:

[code=php:0]
header("Location: http://www.*****************/pictures/upload.php?story_id=$story_id");
[/code]

Now this is where I want to get the [b]story_id[/b] of the record just entered, but each time it just re-directs as:

http://www.*****************/pictures/upload.php?story_id=0

When I thought   $story_id=mysql_insert_id() would grab that last story_id?

Many Thanks

Chris
Link to comment
https://forums.phpfreaks.com/topic/14276-resolved-mysql_insert_id/
Share on other sites

you have not submitted the query prior to calling the insert id!!!!
[code]$query = "INSERT INTO cms_stories(section,added_by,headline,byline_name,appeared,published,opening,body_text,quote,term_one,term_two,term_three,term_four,notes) VALUES
    ('$section','$added_by','$headline','$byline_name','$appeared','$published','$opening','$body_text','$quote','$term_one','$term_two','$term_three','$term_four','$notes')";
    $story_id=mysql_insert_id();[/code]

cahneg to:
[code]$query = "INSERT INTO cms_stories(section,added_by,headline,byline_name,appeared,published,opening,body_text,quote,term_one,term_two,term_three,term_four,notes) VALUES
    ('$section','$added_by','$headline','$byline_name','$appeared','$published','$opening','$body_text','$quote','$term_one','$term_two','$term_three','$term_four','$notes')";
$query = mysql_query($query);
    $story_id=mysql_insert_id();[/code]

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.