query di immissione dati

  • Creatore Discussione Creatore Discussione salgio
  • Data di inizio Data di inizio

salgio

Nuovo Utente
30 Mag 2010
14
0
0
Salve mi rivolgo a voi per risolvere questo problema.
Quando immetto dei dati da caricare nel database mi dà questo errore: INSERT failed: INSERT INTO classics VALUES('Mark Twain', 'La capanna dello zio Tom', 'Fiction', '1880', '978 1598184892')
Column count doesn't match value count at row 1.
A me non sembra che ci sia un errore, perciò chiedo a qualcuno più esperto di me di dare un occhiata.
Vi ringrazio.
Lo script è il seguente:

PHP:
<?php
	require_once 'include/login.php';
	$db_server = mysql_connect($db_hostname, $db_username, $db_password);
	
	if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());
	
	mysql_select_db($db_database, $db_server)
		or die("Unable to select database: " . mysql_error());
		
	if (isset($_POST['delete']) && isset($_POST['isbn']))
	{
			$isbn = get_post('isbn');
			$query = "DELETE FROM classics WHERE isbn='$isbn'";
			
			if (!mysql_query($query, $db_server))
					echo "DELETE failed: $query<br />" .
					mysql_error() . "<br /><br />";
	}
	
	if (isset($_POST['author']) && 
			isset($_POST['title']) && 
			isset($_POST['category']) && 
			isset($_POST['year']) && 
			isset($_POST['isbn']))
	{
			$author    = get_post('author');
			$title     = get_post('title');
			$category  = get_post('category');
			$year      = get_post('year');
			$isbn      = get_post('isbn');
			
			$query = "INSERT INTO classics VALUES" .
					"('$author', '$title', '$category', '$year', '$isbn')";
					
			if (!mysql_query($query, $db_server))
					echo "INSERT failed: $query<br />" .
					mysql_error() . "<br /><br />";
	 }
	 
echo <<<_END
<form action="sqltest.php" method="post"><pre>
Author 	      <input type="text" name="author" />
Title 	      <input type="text" name="title" />
Category      <input type="text" name="category" />
Year          <input type="text" name="year" />
ISBN          <input type="text" name="isbn" />
		<input type="submit" value="ADD RECORD" />
	 </pre></form>
_END;
	 
	 $query = "SELECT * FROM classics";
	 $result = mysql_query($query);
	 
	 if (!$result) die ("Database access failed: " . mysql_error());
	 $rows = mysql_num_rows($result);
	 
	 for ($j = 0 ; $j < $rows ; ++$j)
	 {
	    	 $row = mysql_fetch_row($result);
echo <<<_END
	 <pre>
Author $row[0]
Title $row[1]
Category $row[2]
Year $row[3]
ISBN $row[4]
	</pre>
	<form action="sqltest.php" method="post">
	<input type="hidden" name="delete" value="yes" />
	<input type="hidden" name="isbn" value="$row[4]" />
	<input type="submit" value="DELETE RECORD" /></form>
_END;
	}
	
	mysql_close($db_server);
	
	function get_post($var)
	{
			return mysql_real_escape_string($_POST[$var]);
	}			  	 		  		    	 													
?>
 
Ultima modifica di un moderatore:
ciao
a che ne so io la query di insert dovrebbe essere:

$query="INSERT INTO tabella('nome_campo_1','nome_campo_2) VALUES('val_c_1','val_c_2')";

cioè indicando i nomi dei campi e (nello stesso ordine) i loro valori
 
ciao
a che ne so io la query di insert dovrebbe essere:

$query="INSERT INTO tabella('nome_campo_1','nome_campo_2) VALUES('val_c_1','val_c_2')";

cioè indicando i nomi dei campi e (nello stesso ordine) i loro valori

Proverò a fare come dici tu, io l'ho copiato da un libro ma come spesso accade i libri sono pieni di errori.
Per il momento ti ringrazio e ti farò sapere.
 
Comunque i valori sono: $author, $title, $category, $year, $isbn che vengono immessi dalle caselle di testo html e corrispondono ai campi author, title, category, year, isbn. Il procedimento dovrebbe essere giusto. L'errore poi si riferisce al row1 che non corrisponde al valore 1.
Non sò che pesci pigliare!
 
Ciao, non devi prendere nessun pesce, borgo è stato chiarissimo, io ti consiglio di prendere l'esempio di borgo e sostituire campi, il resto verrà da solo
ciao
 
ciao
anche io ho commesso un errore, ho messo degli apici in più dalla fretta
$query="INSERT INTO tabella(nome_campo_1,nome_campo_2) VALUES('val_c_1','val_c_2')";
 

Discussioni simili