Kom ihåg mig?
Home Menu

Menu


Försöker koppla ihop data i olika tabeller...

 
Ämnesverktyg Visningsalternativ
Oläst 2005-03-31, 21:51 #21
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
jag repeterar:
Exakt hur ser din PHP sträng ut som du försöker inserta? I ett tidigare inlägg påpekade ju robert ett problem.
gör typ:
$qs = sprintf("INSERT bla bla bla");
echo "

" . $qs . "</p>";
mysql_query($qs);

Om mysql_query returnerar false? vad får du i så fall för fel?
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-01, 01:15 #22
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Ah ursäkta.

Så här ser koden ut.

<?

$uni = addslashes($uni);
$program = addslashes($program);
$term = addslashes($term);
$course = addslashes($course);
$title = addslashes($title);
$author1 = addslashes($author1);
$author2 = addslashes($author2);
$author3 = addslashes($author3);
$author4 = addslashes($author4);
$edition = addslashes($edition);
$year = addslashes($year);
$publisher = addslashes($publisher);
$isbn = addslashes($isbn);
$status = addslashes($status);


$db=mysql_connect("localhost", "uppsalamedicin_", "vitpiller");
mysql_select_db("uppsalamedicin_", $db);


if (!$db)
{
echo "Error Kunde inte kontakta databasen försök igen senare.";
exit;
}




mysql_query("INSERT INTO tblbooks (year, publisher, isbn, status) VALUES ('$year', '$publisher', '$isbn', '$status')");



$result = mysql_query($query);
if ($result)
echo mysql_affected_rows()." bok lagrad i databasen.";

?>
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-01, 02:33 #23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Jag får alltså inte fram något felmeddelande alls. Det enda jag får fram är den HTML kod som är skriven innan scriptet. Något händer dock med scriptet eftersom data "registreras" i database...
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-01, 10:20 #24
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Jag förstår allvarligt inte vad du säger...

vad menar du med Något händer dock med scriptet eftersom data "registreras" i database...?

Vad ger mysql_affected_rows()?

Om du kör strängen som skapas manuellt, i phpadmin - funkar det då?
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-01, 12:58 #25
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Kör jag php scriptet så lagras inte den data jag satt in i formuläret, men en ny rad i tabellen skapas, dvs en ny bok registreras men ingen information om boken finns tillgänglig.

mysql_affected_rows() ger ingenting. Det enda som sker efter att jag tryckt på knappen "skicka", dvs anropat mitt php script (insert_book.php) är att den html kod som finns i början kommer fram. Inga mysql_affectd_rows(), ingen error som if (!$db)
som visar att databasen inte kontaktas (vilken den ändå måste göra då en ny bokID registreras).

För att göra det väldigt enkelt har jag valt att göra ett formulär med en enda rad. www.uppsalamedicin.se/bokbas/nybok5.html
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-01, 13:08 #26
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Sätter jag in detta i PHPADMIN

INSERT INTO tblbooks VALUES
("uu", "lak", 1, "cbb", "jag och döden", "sven hedin", "arne", "sven", "kalle", "2004", "1", "12345674121", "stromabolaget", "reck");

får jag detta svar:

#1136 - Column count doesn't match value count at row 1

Det är 14 columner utöver ( bokID INT NULL AUTO_INCREMENT PRIMARY KEY), vilket motsvarar antalet fält ovan ("uu", "lak", 1 etc)
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-01, 13:12 #27
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Så här ser det ut i PHP admin när jag väljer att exportera data från tblbooks. Då har jag gått in på www.uppsalamedicin.se/bokbas/nybok5.html och valt att skicka mitt formulär 2 ggr (två rader uppstår alltså tabellen, men som visas nedan finns ingen data alls).

Själv är jag lite osäker på varför kursID tex har default '0', vad är "UNIQUE KEY" som står för uniID detta stämmer väl inte överens med hur jag har skapat tabellen ovan?

Struktur för tabell `tblbooks`
#

CREATE TABLE `tblbooks` (
`bokID` int(11) NOT NULL auto_increment,
`uniID` varchar(4) default NULL,
`programID` varchar(5) NOT NULL default '',
`termID` varchar(7) NOT NULL default '',
`kursID` int(11) NOT NULL default '0',
`title` varchar(200) NOT NULL default '',
`author1` varchar(50) default NULL,
`author2` varchar(50) default NULL,
`author3` varchar(50) default NULL,
`author4` varchar(50) default NULL,
`year` varchar(4) default NULL,
`edition` char(3) default NULL,
`isbn` varchar(13) default NULL,
`publisher` varchar(60) default NULL,
`STATUS` varchar(5) default NULL,
PRIMARY KEY (`bokID`),
UNIQUE KEY `uniID` (`uniID`),
KEY `bokID` (`bokID`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

#
# Data i tabell `tblbooks`
#

INSERT INTO `tblbooks` VALUES (1, NULL, '', '', 0, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '');
INSERT INTO `tblbooks` VALUES (2, NULL, '', '', 0, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '');
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-01, 14:51 #28
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Byt ut:
Kod:
if ($result)
 echo mysql_affected_rows()." bok lagrad i databasen.";
mot

Kod:
if ($result)
 echo mysql_affected_rows()." bok lagrad i databasen.";
else
 echo mysql_error();
Anledningen till att du får felet: #1136 - Column count doesn't match value count at row 1
Är att du ju inte specificerat alla kolumner du vill inserta (som du gjort med dina 4 kolumner i PHP koden). Om du inte gör INSERT table(columns) VALUES(values) utan bara INSERT table VALUES(values) måste du ha med alla kolumner vilket ju är lämpligt med tanke på din auto increment.

På den här raden:
mysql_query("INSERT INTO tblbooks (year, publisher, isbn, status) VALUES ('$year', '$publisher', '$isbn', '$status')");
Inseratr du ju t.ex. inget i kolumnen programID m.fl. som har NOT NULL och då misslyckas ju inserten eftersom du inte tillhandahpålller värden för kolumner som är NOT NULL och dessutom saknar default.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-01, 18:37 #29
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
eg0master,
tusen tack för hjälpen. Jag gör ändringarna och meddelar vad som skett!
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-01, 18:48 #30
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Jag gjorde ändringen och det svar jag får är:

Query was empty.

Jag har innan dess tagit bort tabellen och lagt till en ny fast den ser ut såhär:


Kod:
create table tblbooks 
    ( bokID INT NULL AUTO_INCREMENT PRIMARY KEY,
 kursID INT NULL,
 title VARCHAR(200) NULL,
 author1 VARCHAR(50) NULL,
 author2 VARCHAR(50) NULL,
 author3 VARCHAR(50) NULL,
 author4 VARCHAR(50) NULL,
 year CHAR(4) NULL,
 edition CHAR(3) NULL,
 isbn CHAR(13) NULL,
 status VARCHAR(5) NULL
);
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 02:54.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017