Please tell me what I'm doing wrong. The sql query is in bold.

<?php 
////////////////////////////////////////////////////////////////////////////////
//
// SECRET PAGE
//
//   Invokes require_authentication() to ensure that the user is authenticated
//     
//////////////////////////////////////////////////////////////////////////////// 
require("common.php");
require_authentication();
session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr' xml:lang="en">
  <head>
    <title>Preview Update</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="description" content="Superior Mini Trucks" />
    <meta name="keywords"    content="Wichita, Superior, mini, trucks, 'Mini Trucks'" />
    <link href="" rel="shortcut icon" />    
    
    <link href="../site.css"        media="screen" rel="stylesheet" type="text/css" />
    <link href="../smoothbox.css"   media="screen" rel="stylesheet" type="text/css" />

    <script type="text/javascript" src="../moo.js">                    </script>
    <script type="text/javascript" src="../inventory/index.js">        </script>
    <script type="text/javascript" src="../inventory/smoothbox.js">    </script>
  </head>
<body>

<div id="whole_page">
      <div id="header">
        &nbsp;
      </div>
      <div style="opacity: 0.7; filter: alpha(opacity: 70);" id="nav">
		&nbsp;
      </div>

  <div style="clear: both;"></div>  
    <div style="opacity: 0.95;" class="content">
      <div style="background-color: #fffff0;" id="log">  
 
		<?php
       
	    $data = $_SESSION['data'];

	
		  $year    = $_POST['year'];
		  $make    = $_POST['make'];
		  $model   = $_POST['model'];
		  
		  $miles   = $_POST['miles'];
		  $comment = $_POST['comment'];
		  
		  
		  $option1 = $_POST['option1'];
		  $option2 = $_POST['option2'];
		  $option3 = $_POST['option3'];

		  $option4 = $_POST['option4'];		  
		  $option5 = $_POST['option5'];		  
		  $option6 = $_POST['option6'];		  
		  $option7 = $_POST['option7'];		  
		  $option8 = $_POST['option8'];		  


	$update = array(0 => $data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6], $data[7], $year, $make, $model, $miles, $comment, $option1, $option2, $option3, $option4, $option5, $option6, $option7, $option8);
		  

		echo '<table class="pictured photo_data">';       
        echo '    ';
        echo ' <tr> ';
        echo '   <td width="320"> ';
        echo '     <a href="/inventory/trucks/'.$data[0].'" title="" class="smoothbox" rel="inventory/trucks"><img src="../inventory/trucks/'.$data[4].'" alt="1" /></a></td> ';
        echo '     <td width="320">'.$year.' '.$make.' '.$model.'<br/><br/>'.$miles.'<br/>'.$comment.'<br/><br/> ';
        echo '       <a href="../inventory/trucks/'.$data[1].'" title="" class="smoothbox" rel="inventory/trucks"><img style="float:left" src="../inventory/trucks/'.$data[5].'" alt="2" /></a> ';
        echo '       <a href="../inventory/trucks/'.$data[2].'" title="" class="smoothbox" rel="inventory/trucks"><img style="float:left" src="../inventory/trucks/'.$data[6].'" alt="3" /></a> ';
        echo '       <a href="../inventory/trucks/'.$data[3].'" title="" class="smoothbox" rel="inventory/trucks"><img style="float:left" src="../inventory/trucks/'.$data[7].'" alt="4" /></a> ';        
        echo '     </td> ';
        echo '   <td>'.$option1.'<br/>'.$option2.'<br/>'.$option3.'<br/><br/>';
	if($option4 != "")
		echo $option4.'<br/>';
	if($option5 != null)
		echo $option5.'<br/>';
	if($option6 != null)
		echo $option6.'<br/>';
	if($option7 != null)
		echo $option7.'<br/>';
	if($option8 != null)
		echo $option8;							
		
		
		echo '</td> ';
	    echo ' </tr> ';
        
   
        
  
               
echo '</table>';
echo '<br/><br/><br/>';

			
			echo '<blockquote><blockquote><blockquote>';	
			echo '<form method="post" action="/inventory/">';
			echo '<input type="submit" name="validated_confirmed_update" value="&bull; &bull; &bull; Update Inventory &bull; &bull; &bull;"> (not yet operational)</form>';	
			echo '</blockquote></blockquote></blockquote>';	
				
			



	$db_connection = @mysql_connect("-----------.--------.net", "--------", "---------");
	if (!$db_connection) {
	  echo( "<P>Unable to connect to the database server at this time.</P>" );
	  exit();
	}	
	
	$db = @mysql_select_db("-----------", $db_connection);
	
	if(!$db) {
	  echo( "<P>Unable to locate the database at this time.</P>" );
      exit();
	}
	
	
[B]    if ("SUBMIT" == $validated_confirmed_update) {
      $sql = "INSERT INTO trucks (relpath-box1, relpath-box2, relpath-box3, relpath-primary, relpath-gallery1, relpath-gallery2, relpath-gallery3, year, make, model, miles, comment, option1, option2, option3, option4, option5, option6, option7, option8) VALUES (".$data[0].", ".$data[1].", ".$data[2].", ".$data[3].", ".$data[4].", ".$data[5].", ".$data[6].", ".$data[7].", ".$year.", ".$make.", ".$model.", ".$miles.", ".$comment.", ".$option1.", ".$option2.", ".$option3.", ".$option4.", ".$option5.", ".$option6.", ".$option7.", ".$option8.")"; [/B]
			 
					 
    mysql_query($sql);
 }
?>

Recommended Answers

All 19 Replies

Are you getting any error ? The only thing that might be wrong with the query is, not using ' ' while inserting a value to the varchar field. ie.,

$query = "insert into table (col1,col2) values ('test', 'test2')";

this may be of more help.. I'm desperate to get this working. I've got to finish my current (first) project with this query.

$db_connection = @mysql_connect("----------.------------.net", "----------", "---------------");
	if (!$db_connection) {
	  echo( "<P>Unable to connect to the database server at this time.</P>" );
	  exit();
	}	
	
	$db = @mysql_select_db("----------", $db_connection);
	
	if(!$db) {
	  echo( "<P>Unable to locate the database at this time.</P>" );
      exit();
	}
	
	
    $sql = "INSERT INTO trucks (relpath-box1, relpath-box2, relpath-box3, relpath-primary, relpath-gallery1, relpath-gallery2, relpath-gallery3, year, make, model, miles, comment, option1, option2, option3, option4, option5, option6, option7, option8) VALUES (".$data[0].", ".$data[1].", ".$data[2].", ".$data[3].", ".$data[4].", ".$data[5].", ".$data[6].", ".$data[7].", ".$year.", ".$make.", ".$model.", ".$miles.", ".$comment.", ".$option1.", ".$option2.", ".$option3.", ".$option4.", ".$option5.", ".$option6.", ".$option7.", ".$option8.")"; 
			 
					 
    mysql_query($sql);
-- phpMyAdmin SQL Dump
-- version 2.9.1.1
-- [url]http://www.phpmyadmin.net[/url]
-- 
-- Host: ------------
-- Generation Time: May 13, 2008 at 08:48 PM
-- Server version: 5.0.45
-- PHP Version: 4.4.4
-- 
-- Database: `--------`
-- 

-- --------------------------------------------------------

-- 
-- Table structure for table `trucks`
-- 

CREATE TABLE `trucks` (
  `id` int(4) NOT NULL auto_increment,
  `relpath-box1` varchar(255) NOT NULL,
  `relpath-box2` varchar(255) NOT NULL,
  `relpath-box3` varchar(255) NOT NULL,
  `relpath-box4` varchar(255) NOT NULL,
  `relpath-primary` varchar(255) NOT NULL,
  `relpath-gallery1` varchar(255) NOT NULL,
  `relpath-gallery2` varchar(255) NOT NULL,
  `relpath-gallery3` varchar(255) NOT NULL,
  `year` int(4) NOT NULL,
  `make` varchar(255) NOT NULL,
  `model` varchar(255) NOT NULL,
  `miles` varchar(255) NOT NULL,
  `comment` varchar(255) NOT NULL,
  `option1` varchar(255) NOT NULL,
  `option2` varchar(255) NOT NULL,
  `option3` varchar(255) NOT NULL,
  `option4` varchar(255) NOT NULL,
  `option5` varchar(255) NOT NULL,
  `option6` varchar(255) NOT NULL,
  `option7` varchar(255) NOT NULL,
  `option8` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Umm.. I think you didn't get what I said.. Try wrapping the values in single quote.

$sql = "insert into table (column1,column2) values ('test1',''test2')";

Notice the values within quotes.

So the db schema looks right? No offense, but I worked on that sql string for hours. If your suggestions works, I will make sure to come back and make you king.

Yep. The whole structure is fine.. Well, If you want, you can try out this simple example. Print $sql and execute it in mysql console. Also, try with mysql_query($query) or die (mysql_error()); You will know why the query failed.

This....

$sql = "INSERT INTO trucks (relpath-box1, relpath-box2, relpath-box3, relpath-primary, relpath-gallery1, relpath-gallery2, relpath-gallery3, year, make, model, miles, comment, option1, option2, option3, option4, option5, option6, option7, option8) VALUES ('data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$data[5]', '$data[6]', '$data[7]', '$year', '$make', '$model', '$miles', '$comment', '$option1', '$option2', '$option3', '$option4', '$option5', '$option6', '$option7', '$option8')"; mysql_query($sql);

Does not work. Please note that I'm not doing anything with `id`

I will try your timely suggestions. you've saved me from farther anger......

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-box1, relpath-box2, relpath-box3, relpath-primary, relpath-gallery1, relpath-ga' at line 1

I appreciate your patience. Again, the query..

$sql = "INSERT INTO trucks (relpath-box1, relpath-box2, relpath-box3, relpath-primary, relpath-gallery1, relpath-gallery2, relpath-gallery3, year, make, model, miles, comment, option1, option2, option3, option4, option5, option6, option7, option8) VALUES ('data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$data[5]', '$data[6]', '$data[7]', '$year', '$make', '$model', '$miles', '$comment', '$option1', '$option2', '$option3', '$option4', '$option5', '$option6', '$option7', '$option8')";

umm.. It has to.. I could see few errors. First one is, the column count is 20 and the values you are trying to insert is 21. second error is, first value should be $data[0] instead of data[0]

Oh, and one more thing.. As far as I know, Its not a good practice to use - (hyphen) with names of the columns. Use underscore instead. You can use `` to mention the column name. For example,

$sql = "INSERT INTO trucks (`relpath-box1`, `relpath-box2`, `relpath-box3`, `relpath-primary`) values ('$value1','$value2','$value3','$value4')";

This has to work.. :)

ok, I fixed the $data[0] error.. but do I have to increment `id` somehow, in the query?

testing with the data fix..

No. If `id` is an autoincrement field, you don't have to do anything with it..

Getting closer !!

Column count doesn't match value count at row 1
$sql = "INSERT INTO trucks (`relpath-box1`, `relpath-box2`, `relpath-box3`, `relpath-primary`, `relpath-gallery1`, `relpath-gallery2`, `relpath-gallery3`, `year`, `make`, `model`, `miles`, `comment`, `option1`, `option2`, `option3`, `option4`, `option5`, `option6`, `option7`, `option8`) VALUES ('$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$data[5]', '$data[6]', '$data[7]', '$year', '$make', '$model', '$miles', '$comment', '$option1', '$option2', '$option3', '$option4', '$option5', '$option6', '$option7', '$option8')";

I see that there are fewer image values than data fields (for the eight images) but I'm confused..

Ah! `relpath-box4` !!

I have already mentioned that problem.. the column count is 20 and the values you are trying to insert is 21.

I hope that fixes it :)

Yes!

My very first database, works!

Thus, by any power vested in me, I now pronounce you king.

Lol.. Congrats :) Good job!

Why thank you, your grace. I am your humble servant! Your wish is my command :-)

<URL snipped>

;)

commented: Not even the MySQL.com would help. nav33n is awesome. +2
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.