Avatar billede michaelsyd Nybegynder
30. december 2007 - 19:41 Der er 8 kommentarer og
1 løsning

sender ikke data

hej eksperter
jeg er helt ny i databaser
så jeg fandet en lille kode i bogen 'start på mysql'
men jeg kan ikke få den til at sende data til databasen
Håber at der er en som har lyst til at hjælpe mig

koden kommer her

formular.php
<html>
<body>
Indtast venligst oplysningerne om det nye medlem
<form method='POST' action='tilfoej.php'>
Medlemsnummer: <input type='text' name='medlemsnummer' /><br />
Navn: <input type='text' name='navn' /><br />
Adresse: <input type='text' name='vejnavn' />
Husnummer.: <input type='text' name='husnummer' size='3' /><br />
Postnummer.: <input type='text' name='postnummer' size='4' /><br />
<input type='submit' value='Tilføj' />
</form>
</body>
</html>

tilfoj.php
<html>
<body>
Medlemmet <? echo $_POST[navn]; ?> er tilføjet.
<?
if(  isset($_POST[medlemsnummer]) &&
    isset($_POST[navn]) &&
    isset($_POST[vejnavn]) &&
    isset($_POST[husnummer]) &&
    isset($_POST[postnummer]) ){
    mysql_connect('localhost', 'navn_dk', '****');
    mysql_select_db('Forening');
    mysql_query(
        "INSERT INTO medlemmer" .
        "(medlemsnummer, navn, vejnavn, husnummer, postnummer) " .
        "VALUES ($_POST[medlemsnummer], ".
        "'$_POST[navn]', '$_POST[vejnavn]', " .
        "'$_POST[husnummer]', $_POST[postnummer])");
    }
?>
</body>
</html>

phpmyadmin ser sådanne her ud
Struktur-dump for tabellen `Forening`
--
-- Oprettelse: 30/12 2007 kl. 18:10:17
-- Sidste opdatering: 30/12 2007 kl. 18:10:17
--

DROP TABLE IF EXISTS `Forening`;
CREATE TABLE IF NOT EXISTS `Forening` (
  `medlemsnummer` int(10) unsigned zerofill NOT NULL auto_increment,
  `navn` varchar(50) collate latin1_danish_ci NOT NULL,
  `vejnavn` varchar(50) collate latin1_danish_ci default NULL,
  `husnummer` smallint(5) unsigned default NULL,
  `postnummer` varchar(5) collate latin1_danish_ci default NULL,
  PRIMARY KEY  (`medlemsnummer`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci AUTO_INCREMENT=2 ;

--
-- Data dump for tabellen `Forening

mch michaelsyd
Avatar billede leif Seniormester
30. december 2007 - 20:00 #1
Prøv at ændre:
    mysql_query(
        "INSERT INTO medlemmer" .
        "(medlemsnummer, navn, vejnavn, husnummer, postnummer) " .
        "VALUES ($_POST[medlemsnummer], ".
        "'$_POST[navn]', '$_POST[vejnavn]', " .
        "'$_POST[husnummer]', $_POST[postnummer])");

til:

    mysql_query(
        "INSERT INTO medlemmer" .
        "(medlemsnummer, navn, vejnavn, husnummer, postnummer) " .
        "VALUES ($_POST[medlemsnummer], ".
        "'$_POST[navn]', '$_POST[vejnavn]', " .
        "'$_POST[husnummer]', $_POST[postnummer])") or die (mysql_error());


Det er en god idé at sætte:  or die (mysql_error()) på alle sine SQL kald da det giver en fejl besked om det enkelte kald.
Avatar billede dkfire Nybegynder
30. december 2007 - 20:00 #2
Din tabel hedder Forening og ikke medlemmer.

Da medlemsnummer er sat til auto_increment er det ikke en god ide at indsætte en værdi der.

Men giver din side en fejl besked ???
Sæt evt "or die(mysql_error());" efter din mysql kald:
mysql_connect('localhost', 'navn_dk', '****') or die(mysql_error());
mysql_select_db('Forening') or die(mysql_error());;
mysql_query(
        "INSERT INTO medlemmer" .
        "(medlemsnummer, navn, vejnavn, husnummer, postnummer) " .
        "VALUES ($_POST[medlemsnummer], ".
        "'$_POST[navn]', '$_POST[vejnavn]', " .
        "'$_POST[husnummer]', $_POST[postnummer])") or die(mysql_error());

Og så lige en sidste ting, der er ikke så godt at åbne php med kun <?, det er langt bedre at bruge <?php
Avatar billede michaelsyd Nybegynder
30. december 2007 - 20:28 #3
jeg har nu prøver og rette i koden som i skrev og rigtig jeg får en fejl medelse den kommer her Access denied for user 'navn_dk'@'%' to database 'Forening'
Avatar billede leif Seniormester
30. december 2007 - 20:44 #4
Så er det fordi at navn_dk ikke har adgang til den database du prøver at åbne.

Har du webhotel ? Hvis Ja, hvor ?
Avatar billede michaelsyd Nybegynder
30. december 2007 - 20:47 #5
jeg har webhotel hos one.com
Avatar billede leif Seniormester
30. december 2007 - 21:06 #6
Så har du næsten med Garanti ikke en database som hedder Forening eller Medlemmer så hedder din database som jeg husker det, det samme som dit brugernavn, dvs. navn_dk

Så kunne den rigtige kode være:
<?
if(  isset($_POST[medlemsnummer]) &&
    isset($_POST[navn]) &&
    isset($_POST[vejnavn]) &&
    isset($_POST[husnummer]) &&
    isset($_POST[postnummer]) ){
    mysql_connect('localhost', 'navn_dk', '****');
    mysql_select_db('navn_dk');
    mysql_query(
        "INSERT INTO Forening" .
        "(medlemsnummer, navn, vejnavn, husnummer, postnummer) " .
        "VALUES ($_POST[medlemsnummer], ".
        "'$_POST[navn]', '$_POST[vejnavn]', " .
        "'$_POST[husnummer]', $_POST[postnummer])");
    }
?>
Avatar billede michaelsyd Nybegynder
30. december 2007 - 22:23 #7
jes det virker det er barer fidt
smid et svar leif , du fortjæner virkelig de poing
Avatar billede leif Seniormester
30. december 2007 - 22:26 #8
Det var så lidt
Avatar billede leif Seniormester
30. december 2007 - 22:34 #9
Takker, men burde dkfire ikke have fået lidt, for at bemærke at din tabel ikke hed medlemmer men Forening
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester