/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
php/mysql fejl....(sikkert en tastefejl)..~
Fra : Lasse Jensen


Dato : 12-08-03 08:45

Nu har jeg siddet det meste af aftenen og lidt her til morgen og
kigget to sider igennem for fejl. Det er 100% sikkert at der er fejl,
da siderne det ene øjeblik virkede og det næste holdt op med det. Jeg
har på fornemmelsen at jeg i et øjebliks forvirring er kommet til at
taste et eller andet ind i dem, højest sandsynligt er det sket i siden
"insert_book.php" ..... Men jeg har fået stirret mig blind på dem, men
hvis en af jer, hurtigt kan se hvor det er gået galt ville det være
skønt...

Jeg inkluderer siderne her, og lægger dem frem her,
http://home.worldonline.dk/laje/newbook.phps
http://home.worldonline.dk/laje/insert_book.phps

Hvor newbook er en form der sender informationen over i insert_book,
og det går tilsyneladende fint et stykke af vejen. Men det eneste der
sker på insert_book siden er at jeg får overskriften frem, og siden
skal også fortælle mig hvor mange "rows" der bliver påvirket, men så
langt når den tilsyneladende ikke...Håber I kan hjælpe ...

-LAsse

NEWBOOK.PHP

<html>
<head>
<!-- Minus AutoDato -->
<title>Book-O-Rama - New Book Entry</title>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
</head>

<body>

<table width=100% border=0 cellspacing = 0 bgcolor=#cccccc>
<tr>
<td rowspan = 2>
<a href = "index.php"><img src="images/Book-O-Rama.gif"
alt="Bookorama" border=0
align=left valign=bottom height = 55 width = 325></a>
</td>
<td> <? include("number.php"); ?>
</td>

</table><p>

<h1>Book-O-Rama - Tilføj en bog</h1>

<form action="insert_book.php" method="post">
<table border="0">
<tr>
<td>Forfatter :</td>
<td><input type="text" name="forfatter" maxlength="20"
size="20"><br /></td>
</tr>
<tr>
<td>Titel :</td>
<td> <input type="text" name="titel" maxlength="60"
size="30"><br></td>
</tr>
<tr>
<td>Forlag :</td>
<td><input type="text" name="forlag" maxlength="50"
size="30"><br /></td>
</tr>
<tr>
<td>Udgivelsesår :</td>
<td><input type="text" name="udgivelsesaar" maxlength="20"
size="20"><br /></td>
</tr>
<tr>
<td>ISBN :</td>
<td><input type="text" name="isbn" maxlength="20"
size="20"><br /></td>
</tr>
<tr>
<td>Kommentarer :</td>
<td><textarea name=kommentarer cols=40 rows=4
wrap=virtual></textarea><br /></td>
</tr>
<tr>
<td colspan="2"><input type="submit"
value="Register"></td>
</tr>
</table>
</form>
</body>
</html>


INSERT_BOOK.PHP

<html>
<head>
<title>Book-O-Rama Book Entry Results</title>
</head>
<body>
<h1>Book-O-Rama Book Entry Results</h1>
<?php
// create short variable names
$forfatter=$HTTP_POST_VARS['forfatter'];
$titel=$HTTP_POST_VARS['titel'];
$forlag=$HTTP_POST_VARS['forlag'];
$udgivelsesaar=$HTTP_POST_VARS['udgivelsesaar'];
$isbn=$HTTP_POST_VARS['isbn'];
$kommentarer=$HTTP_POST_VARS['kommentarer'];


if (!$forfatter || !$titel || !$forlag || !$udgivelsesaar || !$isbn)
{
echo 'You have not entered all the required details.<br />'
.'Please go back and try again.';
exit;
}


$forfatter = addslashes($forfatter);
$titel = addslashes($titel);
$forlag = addslashes($forlag);
$udgivelsesaar = addslashes($udgivelsesaar);
$isbn = addslashes($isbn);
$kommentarer = addslashes($kommentarer);

@ $db = mysql_pconnect('localhost', 'root', '');

if (!$db)
{
echo 'Error: Could not connect to database. Please try again
later.';
exit;
}

mysql_select_db('bandit');
$query = "insert into books values
('".$forfatter."', '".$titel."', '".$forlag."',
'".$udgivelsesaar."', '".$isbn."', '".$kommentarer."')";
$result = mysql_query($query);
if ($result)
echo mysql_affected_rows().' book inserted into database.';
?>

</body>
</html>


 
 
Martin Sveegaard (12-08-2003)
Kommentar
Fra : Martin Sveegaard


Dato : 12-08-03 09:08

On Tue, 12 Aug 2003 09:44:51 +0200, Lasse Jensen <lasse@---nospam.dk>
wrote:


> mysql_select_db('bandit');
> $query = "insert into books values
> ('".$forfatter."', '".$titel."', '".$forlag."',
>'".$udgivelsesaar."', '".$isbn."', '".$kommentarer."')";
> $result = mysql_query($query);
> if ($result)
> echo mysql_affected_rows().' book inserted into database.';
>?>

Prøv at bytte:
$result = mysql_query($query);
ud med:
$result = mysql_query($query) or die(mysql_error());
MVH Martin S

Lasse Jensen (12-08-2003)
Kommentar
Fra : Lasse Jensen


Dato : 12-08-03 09:14

On Tue, 12 Aug 2003 10:08:28 +0200, Martin Sveegaard
<sveegaard@tdcadslFJERNDETTE.dk> wrote:

[snip om hjælp]

Så fik den her fejlmeddelse frem "Column count doesn't match value
count at row 1" ..... så den vil jeg lige kigge lidt på....

Mange tak...

-LAsse

Lasse Jensen (12-08-2003)
Kommentar
Fra : Lasse Jensen


Dato : 12-08-03 09:34

On Tue, 12 Aug 2003 10:13:44 +0200, Lasse Jensen <lasse@---nospam.dk>
wrote:

>On Tue, 12 Aug 2003 10:08:28 +0200, Martin Sveegaard
><sveegaard@tdcadslFJERNDETTE.dk> wrote:
>
>[snip om hjælp]
>
>Så fik den her fejlmeddelse frem "Column count doesn't match value
>count at row 1" ..... så den vil jeg lige kigge lidt på....
>
>Mange tak...
>
>-LAsse

Beklageligvis bliver jeg ikke meget klogere af fejlmeddelsen.....nogen
der kan se lyset .... ???

-LAsse

Johan Holst Nielsen (12-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-08-03 09:41

Lasse Jensen wrote:
>>On Tue, 12 Aug 2003 10:08:28 +0200, Martin Sveegaard
>><sveegaard@tdcadslFJERNDETTE.dk> wrote:
>>
>>[snip om hjælp]
>>
>>Så fik den her fejlmeddelse frem "Column count doesn't match value
>>count at row 1" ..... så den vil jeg lige kigge lidt på....
>>
>>Mange tak...
>
> Beklageligvis bliver jeg ikke meget klogere af fejlmeddelsen.....nogen
> der kan se lyset .... ???

Hvordan ser din tabel ud? Når du bruger insert uden angivelse af felter
skal du indtaste alle felter...

mvh
Johan


Lasse Jensen (12-08-2003)
Kommentar
Fra : Lasse Jensen


Dato : 12-08-03 09:46

On Tue, 12 Aug 2003 10:40:39 +0200, Johan Holst Nielsen
<johan@weknowthewayout.com> wrote:

>Lasse Jensen wrote:
>>>On Tue, 12 Aug 2003 10:08:28 +0200, Martin Sveegaard
>>><sveegaard@tdcadslFJERNDETTE.dk> wrote:
>>>
>>>[snip om hjælp]
>>>
>>>Så fik den her fejlmeddelse frem "Column count doesn't match value
>>>count at row 1" ..... så den vil jeg lige kigge lidt på....
>>>
>>>Mange tak...
>>
>> Beklageligvis bliver jeg ikke meget klogere af fejlmeddelsen.....nogen
>> der kan se lyset .... ???
>
>Hvordan ser din tabel ud? Når du bruger insert uden angivelse af felter
>skal du indtaste alle felter...
>
>mvh
>Johan

Her er et billedet fra phpmyadmin af min tabel "books"...

# Struktur dump for tabellen `books`
#
# Creation: 04/08 2003 kl. 11:30:04
# Last update: 11/08 2003 kl. 21:36:09
#

CREATE TABLE `books` (
`forfatter` varchar(50) default NULL,
`titel` varchar(60) default NULL,
`forlag` varchar(40) default NULL,
`udgivelsesaar` varchar(6) default NULL,
`isbn` varchar(20) default NULL,
`kommentarer` varchar(255) default NULL,
`id` int(11) NOT NULL auto_increment,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=11 ;

#

-LAsse


Johan Holst Nielsen (12-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-08-03 09:49



Lasse Jensen wrote:
> On Tue, 12 Aug 2003 10:40:39 +0200, Johan Holst Nielsen
> <johan@weknowthewayout.com> wrote:
>
>
>>Lasse Jensen wrote:
>>
>>>>On Tue, 12 Aug 2003 10:08:28 +0200, Martin Sveegaard
>>>><sveegaard@tdcadslFJERNDETTE.dk> wrote:
>>>>
>>>>[snip om hjælp]
>>>>
>>>>Så fik den her fejlmeddelse frem "Column count doesn't match value
>>>>count at row 1" ..... så den vil jeg lige kigge lidt på....
>>>>
>>>>Mange tak...
>>>
>>>Beklageligvis bliver jeg ikke meget klogere af fejlmeddelsen.....nogen
>>>der kan se lyset .... ???
>>
>>Hvordan ser din tabel ud? Når du bruger insert uden angivelse af felter
>>skal du indtaste alle felter...
>>
>>mvh
>>Johan
>
>
> Her er et billedet fra phpmyadmin af min tabel "books"...
>
> # Struktur dump for tabellen `books`
> #
> # Creation: 04/08 2003 kl. 11:30:04
> # Last update: 11/08 2003 kl. 21:36:09
> #
>
> CREATE TABLE `books` (
> `forfatter` varchar(50) default NULL,
> `titel` varchar(60) default NULL,
> `forlag` varchar(40) default NULL,
> `udgivelsesaar` varchar(6) default NULL,
> `isbn` varchar(20) default NULL,
> `kommentarer` varchar(255) default NULL,
> `id` int(11) NOT NULL auto_increment,
> PRIMARY KEY (`id`)
> ) TYPE=MyISAM AUTO_INCREMENT=11 ;
>
> #


prøv


$query = "INSERT INTO books
(forfatter,titel,forlag,udgivelsesaar,isbn,kommentarer) VALUES
('".$forfatter."','".$titel."','".$forlag."','".$udgivelsesaar."',".$isbn."','".$kommentarer."')";


Grunden til fejlen er at du ikke angiver en værdi for id feltet... nu
fortæller jeg hvilke felter jeg vil sætte ind i... og så finder den selv
ud af hvad der skal i id feltet...

mvh
Johan


Johan Holst Nielsen (12-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-08-03 09:42



Lasse Jensen wrote:
> On Tue, 12 Aug 2003 10:13:44 +0200, Lasse Jensen <lasse@---nospam.dk>
> wrote:
>
>
>>On Tue, 12 Aug 2003 10:08:28 +0200, Martin Sveegaard
>><sveegaard@tdcadslFJERNDETTE.dk> wrote:
>>
>>[snip om hjælp]
>>
>>Så fik den her fejlmeddelse frem "Column count doesn't match value
>>count at row 1" ..... så den vil jeg lige kigge lidt på....
>
> Beklageligvis bliver jeg ikke meget klogere af fejlmeddelsen.....nogen
> der kan se lyset .... ???

Prøv evt...

$query = "insert into books
(forfatter,titel,forlag,udgivelsesaar,isbn,kommentarer) values
('".$forfatter."','".$titel."','".$forlag."','".$udgivelsesaar."',".$isbn."','".$kommentarer."')";

Hvor du så ændrer til feltnavnene... i den første parentes

mvh
Johan


Lasse Jensen (12-08-2003)
Kommentar
Fra : Lasse Jensen


Dato : 12-08-03 09:49

On Tue, 12 Aug 2003 10:42:17 +0200, Johan Holst Nielsen
<johan@weknowthewayout.com> wrote:


[snip om ny insert metode]

Det virker.... men jeg forstår stadig ikke helt hvad der var gået
galt, det ene øjeblik virket det - det næste virker skidtet ikke...
??? Men hovedsagen er selvfølgelig at det virker igen....

Takker og bukker....

-LAsse


Johan Holst Nielsen (12-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-08-03 10:08

Lasse Jensen wrote:
> On Tue, 12 Aug 2003 10:42:17 +0200, Johan Holst Nielsen
> <johan@weknowthewayout.com> wrote:
>
> [snip om ny insert metode]
>
> Det virker.... men jeg forstår stadig ikke helt hvad der var gået
> galt, det ene øjeblik virket det - det næste virker skidtet ikke...
> ??? Men hovedsagen er selvfølgelig at det virker igen....

Har du tilføjet ID feltet senere hen eller?

mvh
Johan


Lasse Jensen (12-08-2003)
Kommentar
Fra : Lasse Jensen


Dato : 12-08-03 10:17

On Tue, 12 Aug 2003 11:08:16 +0200, Johan Holst Nielsen
<johan@weknowthewayout.com> wrote:

>Lasse Jensen wrote:
>> On Tue, 12 Aug 2003 10:42:17 +0200, Johan Holst Nielsen
>> <johan@weknowthewayout.com> wrote:
>>
>> [snip om ny insert metode]
>>
>> Det virker.... men jeg forstår stadig ikke helt hvad der var gået
>> galt, det ene øjeblik virket det - det næste virker skidtet ikke...
>> ??? Men hovedsagen er selvfølgelig at det virker igen....
>
>Har du tilføjet ID feltet senere hen eller?
>
Ja det blev tilføjet senere end de andre felter, men siderne virkede
stadig efter det blev tilføjet....

-LAsse

Johan Holst Nielsen (12-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-08-03 10:25

Lasse Jensen wrote:
>>>On Tue, 12 Aug 2003 10:42:17 +0200, Johan Holst Nielsen
>>><johan@weknowthewayout.com> wrote:
>>>
>>>[snip om ny insert metode]
>>>
>>>Det virker.... men jeg forstår stadig ikke helt hvad der var gået
>>>galt, det ene øjeblik virket det - det næste virker skidtet ikke...
>>>??? Men hovedsagen er selvfølgelig at det virker igen....
>>
>>Har du tilføjet ID feltet senere hen eller?
>>
> Ja det blev tilføjet senere end de andre felter, men siderne virkede
> stadig efter det blev tilføjet....

Jeg ved ikke om nogle MySQL versioner har accepteret at man ikke satte
data ind i alle felter når man ikke definerede dem. Det kunne være en
opgradering af MySQL der gjorde forskellen ;)

Men generelt vil jeg mene at det er at foretrække at vise hvilke felter
man smider dataene ind i ... det giver også en mere
indlysende/gennemskuelig kode :)

mvh
Johan


Kim Emax (12-08-2003)
Kommentar
Fra : Kim Emax


Dato : 12-08-03 23:30

Lasse Jensen wrote:
> On Tue, 12 Aug 2003 10:42:17 +0200, Johan Holst Nielsen

> Det virker.... men jeg forstår stadig ikke helt hvad der var gået
> galt, det ene øjeblik virket det - det næste virker skidtet ikke...
> ??? Men hovedsagen er selvfølgelig at det virker igen....

Når du bruger "insert into table values(); så skal ALLE felter have en værdi
angivet. Dit id felt kan du angive som "", hvis det er auto_increment.
Ellers er løsningen som Johan påpeger at bruge syntaxen "INSERT INTO table
(name, email) VALUES('$name', $email');", såfremt de øvrige felter ikke er
NOT NULL

--
Take Care
Kim Emax - Freelance programmør - opgaver modtages
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste