Nytt felmedelande:
Column count doesn't match value count at row 1
Jag har ju 6 fält i databasen, id, hemma, borta, plats, datum, tid
men måste jag skriva ut Id också?
Jag vill ju inte att det ska synas något id i filen kommandematch.php
36 svar · 1 107 visningar · startad av richardjoha · sida 2 av 2
Jag har tänkt att göra ett enkelt skript som skriver ut en händelse exempelvis en match så det som jag vill ska skrivas ut är: Lag1 - Lag2 datum plats klockslag. låter kanske väldigt simpelt för de flesta men skulle behöva lite tips på hur jag ska gå tillväga. Är nybörjare inom PHP och vet inte riktigt hur jag ska börja :) mvh Richard
Läs frågan i sin helhet →Nytt felmedelande:
Column count doesn't match value count at row 1
Jag har ju 6 fält i databasen, id, hemma, borta, plats, datum, tid
men måste jag skriva ut Id också?
Jag vill ju inte att det ska synas något id i filen kommandematch.php
men måste jag skriva ut Id också?
Jag vill ju inte att det ska synas något id i filen kommandematch.php
Nej, du få hämta precis vad du vill. Exakt hur ser SQL-frågan ut där du får det felmeddelandet?
@nders skrev:
Exakt hur ser SQL-frågan ut där du får det felmeddelandet?
-- --------------------------------------------------------
--
-- Struktur för tabell `kommande`
--CREATE TABLE `kommande` (
`id` int(11) NOT NULL auto_increment,
`hemma` varchar(50) NOT NULL default '',
`borta` varchar(50) NOT NULL default '',
`plats` varchar(50) NOT NULL default '',
`datum` date NOT NULL default '0000-00-00',
`tid` varchar(4) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;--
-- Data i tabell `kommande`
--
richardjoha skrev:
Jag har ju 6 fält i databasen, id, hemma, borta, plats, datum, tid
Men du har sju värden i VALUES().
Det du visar ovan är förresten din tabellstruktur, inte SQL-frågan som ger ditt felmeddelande.
Matte skrev:
Men du har sju värden i VALUES().
Det du visar ovan är förresten din tabellstruktur, inte SQL-frågan som ger ditt felmeddelande.
Jag är inte säker på vilken del av koden det är som felar. Hur visar jag SQL-frågan?
richardjoha skrev:
Jag är inte säker på vilken del av koden det är som felar. Hur visar jag SQL-frågan?
echo $sql;
Det är sannolikt den här SQL-frågan som spökar:
$sql = "INSERT INTO $dbtable VALUES ('','".$_POST['hemma']."', '".$_POST['borta']."', '".$_POST['plats']."', '".$_POST['datum']."', '".$_POST['tid']."', CURDATE())";
Det ser tveksamt ut om CURDATE egentligen hör hemma i denna SQL-fråga.
För att lättare kunna se din SQL-fråga, vänj dig vid att också skriva i kolumn-namnen, typ:
$sql = "
INSERT INTO $dbtable (hemma, borta, plats, datum, tid)
VALUES ('".$_POST['hemma']."', '".$_POST['borta']."', '".$_POST['plats']."', '".$_POST['datum']."', '".$_POST['tid']."')
";
Är nu det datum du skickar med $_POST['datum'] av formatet YYYY-MM-DD ?
Bytte till denna koden:
$sql = "
INSERT INTO $dbtable (hemma, borta, plats, datum, tid)
VALUES ('".$_POST['hemma']."', '".$_POST['borta']."', '".$_POST['plats']."', '".$_POST['datum']."', '".$_POST['tid']."')
";
och får inget felmedelande men det är fortfarande inget som skrivs ut.
svaret på SQL-frågan: Query was empty
Kolla först i phpMyAdmin att något skrivits till databasen.
Och hur såg koden ut för att du skulle få det felmeddelandet ?
Matte skrev:
Kolla först i phpMyAdmin att något skrivits till databasen.
Och hur såg koden ut för att du skulle få det felmeddelandet ?
japp det lagras i databasen.
jag skrev echo $sql; istället för
$sql = "
INSERT INTO $dbtable (hemma, borta, plats, datum, tid)
VALUES ('".$_POST['hemma']."', '".$_POST['borta']."', '".$_POST['plats']."', '".$_POST['datum']."', '".$_POST['tid']."')
";
richardjoha skrev:
jag skrev echo $sql; istället för ...
Inte istället för.
Du ska ha din SQL-fråga kvar, och köra echo på den efter den blivit definierad.
Matte skrev:
Inte istället för.
Du ska ha din SQL-fråga kvar, och köra echo på den efter den blivit definierad.
jag skrev till echo framför
$sql = "
INSERT INTO $dbtable (hemma, borta, plats, datum, tid)
VALUES ('".$_POST['hemma']."', '".$_POST['borta']."', '".$_POST['plats']."', '".$_POST['datum']."', '".$_POST['tid']."')
";
och kunde läsa följande:
INSERT INTO kommande (hemma, borta, plats, datum, tid) VALUES ('asd', 'asda', 'sdasd', 'asd', 'asd')
? fel av mig igen eller?
Visa din justerade kod.
Nytt felmedelande:
Column count doesn't match value count at row 1
Är det fortfarande det problemet du har eller var har du fastnat nu?
Sedan: Byt lösenord i skriptet omgående om inte det lösenord som står i filen ovan är ändrat till ett dummy-värde!!! Förutom alla hjälpsamma wF-are som tittar på dessa filer finns det inga garantier för att inte mindre hjälpsamma typer också gör det! :o
Är det bara du som kan köra skriptet? Annars kan det vara bra med lite felkoller av att värdet i GET-fälten verkligen innehåller vettig info.
I kommandematch.php har du följande:
SELECT * FROM kommande WHERE datum > now() LIMIT 1
$result = mysql_query($sql) or die (mysql_error());
Dels kommer detta att ge dig parse error, dels så saknar du anslutning till MySQL.
Ändra till något i stil med:
include 'conn.php';
$sql = "SELECT * FROM kommande WHERE datum > now() LIMIT 1";
$result = mysql_query($sql) or die (mysql_error());
I admin.php har du:
echo $sql;
$result = mysql_query($sql) or die (mysql_error());
Här saknas själva SQL-frågan som ska köras.
Hej!
Är intresserad av att ta del av det färdiga scriptet. Håller själv på med en hemsida åt en crosskille som vill att kommande tävlingar ska visas.
Hur går det? Fick ni ihop det till slut? Lite lat idag, så jag orkar inte läsa alla meddelanden =)