Heb al weer wat :P..

Dit keer een script om een muziekstuk toe te voegen.
Dit script moet in de MySQL tabel 'muziek' een nummer, de artiest, en evt. arr toevoegen.
Tabellen in query 'muziek':
id,nummer,artiest,arr.

script (post.php):
<?php
include("safe.php");
?>
<? ob_start();
include "connect.php";
include "ubb.php";
?>
<?php
$pagenaam = "Muziekstuk toevoegen";
include("../header.php");
?>
<? if ($_POST['submit']) {
if ($_POST['nummer']!="" AND $_POST['artiest']!="") {
$insert = "INSERT INTO muziek (nummer,artiest,arr) VALUES ('','".$_POST[nummer]."','".$_POST[artiest]."','".$_POST[arr]."')";
mysql_query($insert) or die(mysql_error());
echo "<script>location.href='index.php'</script>"; }
else { echo "Error";}}

else { ?>
<?
$sql = "SELECT * FROM muziek ORDER BY nummer ASC";
$resultaat = mysql_query($sql) or die ("query mislukt");
while ($rij = mysql_fetch_object($resultaat)){
$nummer = htmlspecialchars($rij->nummer);
$artiest = htmlspecialchars($rij->artiest);
$arr = htmlspecialchars($rij->arr);
set_smilies($bericht);
} ?>
<div align="center">
<table class='gbook'>
<tr>
<td class='gbook2'><a name='voegtoe'></a>Muziekstuk toevoegen</td>
</tr>
<tr>
<td>
<form method="post" action="post.php" name="gastenboek">
<table>
<tr><td width="100"><small>Nummer:</small></td><td width="400"><input type="text" name="nummer" size="35"></td></tr>
<tr><td valign="top"><small>Artiest:</small></td><td width="400"><input type="text" name="artiest" size="35"></td></tr>
<tr><td valign="top"><small>Arr:</small></td><td width="400"><input type="text" name="arr" size="35"> <small><small>(leeglaten indien geen)</small></small></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Toevoegen"></td></tr>
</form>
</table>
</td>
</tr>
</table>
</div> <? } ?>
<?php
include("../footer.php");
?>

ik krijg bij het posten deze error:
Column count doesn't match value count at row 1

HELP :S...
<?
$insert = "INSERT INTO muziek (nummer,artiest,arr) VALUES ('','".$_POST[nummer]."','".$_POST[artiest]."','".$_POST[arr]."')";
?>

Maak daar eens van

<?
$insert = "INSERT INTO muziek (nummer,artiest,arr) VALUES ('".$_POST[nummer]."','".$_POST[artiest]."','".$_POST[arr]."')";
?>
Je geeft namelijk eerst aan dat je 3 'vakjes' in wil vullen (nummer, artiest en arr) en daarna geef je 4 waardes op, dat past niet :)

Daarom is bij de regel die zou moeten werken die ik net gaf het stukje:

''',

weggehaald, zodat je ook maar 3 waardes opgeeft.

Verder is een query een opdracht voor je database en 'muziek' is een tabel :)
Had zelf dus die overbodige '", nooit gezien...

Bedankt, het werkt nl. nu wel :P..

I like this site :D
Sorry voor derde post op rij maar past niet echt bij het vorige bericht.

Je kun het stukje anders ook nog vervangen voor:

<?
$insert = "INSERT INTO muziek VALUES (NULL,'".$_POST[nummer]."','".$_POST[artiest]."','".$_POST[arr]."')";
?>

Dan geef je aan door "(nummer,artiest,arr)" weg te laten dat je alle 'vakjes' in wil vullen (in dit geval dus alle 4). En geef je voor het eerste 'vakje' NULL op, waardoor die dus automatisch ingevuld wordt. Is een iets kortere oplossing :)
Leuk om te weten dat het ook zo kan.. wist ik nog niet..
thanx...
Nu nog die letterindex van de $_POST vars tussen de quotes en je kan verder :)
<?
$_POST['waarde'];
?>

Reageren