Avatar billede EbbeBaek Nybegynder
08. maj 2012 - 19:58 Der er 28 kommentarer og
1 løsning

Medlemsdatabase

Jeg kan ikke få databasen til at fungere. Jeg har en indmeldelsesside, opret_medlem.html samt en side, der skal lægge data fra formularen ind i databasen (opret_medlem.php).
--------------------------------------------------------
opret_medlem.html:

<!DOCTYPE HTML SYSTEM>
<head>
<meta http-equiv="Content-Type" content="text/html">
<LINK REL="STYLESHEET" HREF="sk.css" TYPE="text/css">
<title>Indmeldelse i personaleforeningen</title>
</head>
<body>

<form name=opret method="post" action="opret_medlem.php">

<table border=0>
<tr>
<td align=right>Fornavn:</td><td><input type="text" name="fornavn" maxlength=25></td>
</tr>
<tr>
<td align=right>Efternavn:</td><td><input type="text" name="efternavn" maxlength=25></td>
</tr>
<tr>
<td align=right>Arbejdssted:</td>
<td><SELECT name="arb_sted">
      <OPTION selected value="Vælg her">- Vælg her -</OPTION>
      <OPTION>Birkeparken</OPTION>
      <OPTION>Bostedet Hinge</OPTION>
      <OPTION>Bostedet Kjellerup</OPTION>
      <OPTION>Bostøtten Kjellerup</OPTION>
      <OPTION>Bostøtten Lupinvej</OPTION>
      <OPTION>Bostøtten Them</OPTION>
      <OPTION>Bostøtten Gjern</OPTION>
      <OPTION>Bostøtten Narvikvej</OPTION>
      <OPTION>Mødestedet</OPTION>
      <OPTION>Personstøtten/SKP</OPTION>
      <OPTION>PH-Affektivt team</OPTION>
      <OPTION>PH-Aktiv</OPTION>
      <OPTION>PH-Akut Døgn</OPTION>
      <OPTION>PH-Bostøtten Midtby</OPTION>
      <OPTION>PH-Depression og mani</OPTION>
      <OPTION>PH-Døgndækkende hjemmebehandling</OPTION>
      <OPTION>PH-Lokalpsykiatrien</OPTION>
      <OPTION>PH-OCD og personlighedsforstyrrelser</OPTION>
      <OPTION>PH-Psykoseteam</OPTION>
      <OPTION>PH-Sekretariat kommune</OPTION>
      <OPTION>PH-Sekretariat Region</OPTION>
      <OPTION>PH-Team for angstlidelser</OPTION>
      <OPTION>Rosengårdcentret</OPTION>
      <OPTION>Støttecentret</OPTION>
      <OPTION>Andet</OPTION>
    </SELECT>
</td>
</tr>
<tr>
<td align=right>Mobil:</td><td><input type="text" name="mobil" maxlength=8></td>
</tr>
<tr>
<td align=right>Email:</td><td><input type="text" name="email" maxlength=25></td>
</tr>
<tr>
<td align=right>Uddannelse:</td>
<td><SELECT name="udd">
      <OPTION selected value="Vælg her">- Vælg her -</OPTION>
      <OPTION>Ergoterapeut</OPTION>
      <OPTION>Fuldmægtig</OPTION>
      <OPTION>Fysioterapeut</OPTION>
      <OPTION>Kontorassistent</OPTION>
      <OPTION>Læge</OPTION>
      <OPTION>Lægesekretær</OPTION>
      <OPTION>Musikterapeut</OPTION>
      <OPTION>Plejer</OPTION>
      <OPTION>Psykolog</OPTION>
      <OPTION>Pædagog</OPTION>
      <OPTION>Rengøring</OPTION>
      <OPTION>Sekretær</OPTION>
      <OPTION>Socialpædagog</OPTION>
      <OPTION>Socialrådgiver</OPTION>
      <OPTION>SoSA</OPTION>
      <OPTION>Sygeplejerske</OPTION>
      <OPTION>Andet</OPTION>
  </SELECT>
</td>
</tr>
<tr>
<td align=right>Ansat i:</td>
<td><SELECT name="ansat_sted">
      <OPTION selected value="Vælg her">- Vælg her -</OPTION>
      <OPTION>Kommune</OPTION>
      <OPTION>Region</OPTION>
  </SELECT>
</td>
</tr>
<tr>
<td align=right>Postnr.:</td><td><input type="text" name="postnr" maxlength=4></td>
</tr>
<tr>
<td align=right>By:</td><td><input type="text" name="by" maxlength=25></td>
</tr>
<tr>
<td align=right>Fødselsår (åååå):</td><td><input type="text" name="foedselsaar" maxlength=4></td>
</tr>
<tr>
<td align=right> Måned (mm):</td><td><input type="text" name="foedselsmd" maxlength=2></td>
</tr>
<tr>
<td align=right>Dag (dd):</td><td><input type="text" name="foedselsdag" maxlength=2></td>
</tr>
</table>
<input type="submit" name="send" value="Send oplysninger!">
</form>
</center>
</body>
</html>
-----------------------------------------------------------
opret_medlem.php:

<?php
// Hent indholdet af formularens felter
$fornavn = $_REQUEST["fornavn"];
$efternavn = $_REQUEST["efternavn"];
$arb_sted = $_REQUEST["arb_sted"];
$mobil = $_REQUEST["mobil"];
$email = $_REQUEST["email"];
$udd = $_REQUEST["udd"];
$ansat_sted = $_REQUEST["ansat_sted"];
$postnr = $_REQUEST["postnr"];
$by = $_REQUEST["by"];
$foedselsaar = $_REQUEST["foedselsaar"];
$foedselsmd = $_REQUEST["foedselsmd"];
$foedselsdag = $_REQUEST["foedselsdag"];

// Skab forbindelse til databasen her
include("connect.php"); //Inkluder filen der connecter til min database
//Indsæt indholdet af formularfelterne i databasen
mysql_query("INSERT INTO medlemmer (fornavn, efternavn, arb_sted, mobil, email,udd, ansat_sted, postnr, by, foedselsaar, foedselsmd, foedselsdag')"); or die(mysql_error());
?>

Tak for din indmeldelse!
-------------------------------------------------------------

Hvad er der galt?
Avatar billede nissen2630 Novice
08. maj 2012 - 20:43 #1
Start lige med at udskifte dine $_REQUEST med $_POST.

Fortæl også lige hvilke fejl der kommer eller hvad der sker.
08. maj 2012 - 20:52 #2
Et oplagt problem er, at du ikke fortæller mysql hvad du vil have indsat i tabellen medlemmer.  I feltet fornavn vil du have indsat indholdet af $fornavn, i feltet efternavn $efternavn, o.s.v.  Med andre ord:

mysql_query("INSERT INTO medlemmer (fornavn, efternavn, arb_sted, mobil, email,udd, ansat_sted, postnr, by, foedselsaar, foedselsmd, foedselsdag') $fornavn, $efternavn, $arb_sted, $mobil, $email, $udd, $ansat_sted, $postnr, $by, $foedselsaar, $foedselsmd, $foedselsdag"); or die(mysql_error());
Avatar billede EbbeBaek Nybegynder
08. maj 2012 - 21:33 #3
Har udskiftet REQUEST med POST - ingen effekt.
Avatar billede EbbeBaek Nybegynder
08. maj 2012 - 21:35 #4
Har gjort som foreslået - ingen effekt.
Har tilpasset eksisterende tabel i MySQL admin - bla. omdøbt tabel m.m.
Avatar billede nissen2630 Novice
08. maj 2012 - 21:53 #5
Burde det ikke være :
mysql_query("INSERT INTO medlemmer (fornavn, efternavn, arb_sted, mobil, email,udd, ansat_sted, postnr, by, foedselsaar, foedselsmd, foedselsdag') VALUES ($fornavn, $efternavn, $arb_sted, $mobil, $email, $udd, $ansat_sted, $postnr, $by, $foedselsaar, $foedselsmd, $foedselsdag)"); or die(mysql_error());

Kan ikke huske om VALUES er påkrævet.

ovenstående er utestet
08. maj 2012 - 22:08 #6
Ebbebaek, du siger "Jeg kan ikke få databasen til at fungere."  Men du præciserer ikke hvad der går galt, hvad det er du forventede som ikke sker. 

Du viser i opret_medlem.html koden for en formular til at indføre data.  Efter klik på 'Send oplysninger'  kaldes filen opret_medlem.php, og denne fil kalder databasen og forsøger at indføre oplysningerne fra formularen i tabellen medlemmer.

Så hvad sker der, når formularen er udfyldt og der er klikket på 'Send oplysninger'?  Får du en fejlmelding fra databasen eller får du en blank side eller hvad?

Nissen, jo der skal stå VALUES.  Det overså jeg.
Avatar billede EbbeBaek Nybegynder
08. maj 2012 - 22:18 #7
Til Nissen og Christian_Belgien:

Jeg får en blank side og kan ikke se medlemmer på en visningsside, som jeg har lavet sådan:
---------------------------------------------
vis_medlemmer.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<LINK REL="STYLESHEET" HREF="sk.css" TYPE="text/css">
<title>Medlemmer af Personaleforening for Psykiatriansatte i Silkeborg</title>
</head>
<body>
<H3 align=center>Medlemmer</h3>
<center>

<p>
Pt. er der
<?php
$query = mysql_query("SELECT id FROM medlemmer");
$numb = mysql_num_rows($quer­y);
echo $numb;
?>
medlemmer i personaleforeningen.

<p>

<?php
// Skab forbindelse til databasen her
include("connect.php"); //Inkluder filen der connecter til databasen

//Laver en forespørgsel i tabellen min_tabel
$svar = mysql_query("SELECT * FROM medlemmer ORDER BY fornavn ASC") or die(mysql_error());

//Udskriver de fundne data i en tabel
print "<table border=1>
<tr>
<td><b>Fornavn</b></td>
<td><b>Efternavn</b></td>
<td><b>Mobil</b></td>
<td><b>Arb.sted</b></td>
<td><b>Uddannelse</b></td>
<td><b>E-mail</b></td>
<td><b>Ansat i</b></td>
<td><b>Adresse</b></td>
<td><b>Postnr.</b></td>
<td><b>By</b></td>
<td><b>År</b></td>
<td><b>Måned</b></td>
<td><b>Dag</b></td>
<tr>";
while ($row = mysql_fetch_array($svar))
{
print "
<td>".$row["fornavn"]."</td>
<td>".$row["efternavn"]."</td>
<td>".$row["mobil"]."</td>
<td>".$row["arb_sted"]."</td>
<td>".$row["udd"]."</td>
<td>".$row["email"]."</td>
<td>".$row["ansat_sted"]."</td>
<td>".$row["adresse"]."</td>
<td>".$row["postnr"]."</td>
<td>".$row["by"]."</td>
<td>".$row["foedselsaar"]."</td>
<td>".$row["foedselsmd"]."</td>
<td>".$row["foedselsdag"]."</td>
</tr>";
}
print "</table>";
?>

<?php
require_once("connect.php");
$n = mysql_query("SELECT * FROM medlemmer ORDER BY fornavn ASC") or die(mysql_error());

while($n = mysql_fetch_object($query)) {
echo"<a href=\"".$_SERVER["PHP_SELF"]."?edit=".$n->id."\">".$n->fornavn."</a><br />";
}

if(isset($_GET["edit"])) {

$sql = "SELECT * FROM medlemmer WHERE id = ".(int)$_GET["edit"];

$row = mysql_query($sql) or die (mysql_error());

    if(mysql_num_rows($row) == 1) {
    $navn = mysql_fetch_object($row);
    // Vis indhold af række i div. formularfelter
    }

}

?>
</center>
</body>
</html>
09. maj 2012 - 06:41 #8
Hvis du, efter at have udfyldt og afsendt formularen i opret_medlem.html, får en blank side og ingen fejlmelding fra mysql, så er det muligt, at filen opret_medlem.php af en eller anden årsag ikke kaldes.  Du kunne jo prøve at undersøge det ved i opret_medlem.php at udskrive variablerne.  Du kan, midlertidigt for test, ændre koden i opret_medlem.php således:

<?php
// Hent indholdet af formularens felter
$fornavn = $_POST["fornavn"];
echo "<br>Fornavn = $fornavn";
$efternavn = $_POST["efternavn"];
echo "<br>Efternavn = $efternavn";
....
o.s.v.

Hvis der så i formularen er indfyldt Jens som fornavn og Jensen som efternavn, så skal du efter at have afsendt formularen se det følgende:

Fornavn = Jens
Efternavn = Jensen

Prøv det engang og fortæl hvad der sker.
Avatar billede EbbeBaek Nybegynder
09. maj 2012 - 18:11 #9
Jeg har nu lagt formular samt kald af database og indsætning af data i tabel i samme fil, 'opret_medlem.php'

Jeg har ændret REQUEST-kommando til POST-kommando samt tilført VALUES. Jeg har lagt yderligere testning ind i form af udskrivning af varibler. Disse bliver udskrivet på skærmen, når jeg klikke på Send. MEN - de kommer ikke i databasen!
Kigger jeg via phpAdmin MySQL, kan jeg også se der ikke er tilføjet nogen "rækker". Mystisk ...!
09. maj 2012 - 21:29 #10
Så du får disse variable udskrevet.  Så der er forbindelse mellem formularen og filen opret_medlem.php.  Når du alligevel ikke får dataerne indført i database tabellen OG IKKE FÅR FEJLMELDING på trods af, at du i mysql queryen bruger ..or die(mysql_error(), så tyder det på, at du ikke har forbindelse til databasen.  Hvad har du stående i filen 'connect.php'?  Er det 100% sikkert, at det forbinder til den rigtige database?
Avatar billede EbbeBaek Nybegynder
09. maj 2012 - 22:52 #11
Nu har jeg prøvet at oprette en tabel på et andet webhotel, jeg også har MySQL på (bare for at checke).
----------------------------
Indhold af 'connect.php':
<?php
mysql_connect("localhost", "brugernavn", "password") or die(mysql_error());
mysql_select_db("databasenavn");
?>
----------------------------
Brugernavn, pw samt databasenavn er korrekte (naturligvis ikke anført i dette offentlige forum ;-))

Måske er det tabellen, der er oprettet i databasen, der ikke er korrekt?
Jeg har valgt 'id' til typen 'tinyint', 4 karakterer og er valgt som primær nøgle.
De øvrige felter er af typen 'varchar' og på 25 karakterer
Hvad skal der stå i parametrene attributes, null, default og extra?
10. maj 2012 - 07:02 #12
Hvis der er noget galt med tabellen, så burde du få en mysql_error skrevet ud.  Men her er et par ting du kan gøre:

Hvis der er VARCHAR som datatype i felterne, så skal variablerne velsagtens stå mellem anførselstegn.  En korrigeret query:

mysql_query("INSERT INTO medlemmer (fornavn, efternavn, arb_sted, mobil, email,udd, ansat_sted, postnr, by, foedselsaar, foedselsmd, foedselsdag') VALUES ('$fornavn', '$efternavn', '$arb_sted', '$mobil', '$email', '$udd', '$ansat_sted', '$postnr', '$by', '$foedselsaar', '$foedselsmd', '$foedselsdag')"); or die(mysql_error());

Det er her vigtigt, at du bruger enkelt anførselstegn, apostrof, omkring variablerne, så de ikke konflikter med de dobbelte anførselstegn der omrammer hele queryen.

Og du kan teste tabellen ved at indføre dataerne direkte i phpMyAdmin.  Hvis du i en formular har indført, for eksempel, Jens Jensen Birkeparken 065724398 abc@de.fg o.s.v., så skriv i sql vindue for medlemmer tabellen:

INSERT INTO medlemmer (fornavn, efternavn, arb_sted, mobil, email, ....) VALUES('Jens', 'Jensen', 'Birkeparken', '065724398', 'abc@de.fg
, ....)

Så skulle du meget gerne enten få disse data indsat i tabellen eller få en fejlmelding.

Jeg går ud fra, at id er nøglefeltet for tabellen.  Ved at bruge tinyint begrænser du tabellen til 256 rækker, hvilket måske er nok i dit tilfælde, men det er mere gængs at bruge INT.

Og eftersom du i din query ikke indfører en værdi for id går jeg ud fra, at den er AUTO_INCREMENT.  Det skal så stå som Extra, og der må ikke være andre AUTO_INCREMENT felter.  Attributes kan du lade stå blank, Null skal for id være No hvis den er AUTO_INCREMENT, for resten af felterne skal du beslutte, om de må være blanke, om du for eksempel vil acceptere medlemmer der ikke har email eller mobil.  For de felter der må stå blanke skal Null være Yes, ellers No.  Default kan du lade være Null for varchar felter og None for id.
Avatar billede EbbeBaek Nybegynder
11. maj 2012 - 06:38 #13
Jeg har sat ' om alle enheder i VALUES-delen, rettet attributter i phpAdmin og herfra prøvet at køre SQL-kommandoen:

INSERT INTO medlemmer (fornavn, efternavn, arb_sted, mobil, email,udd, ansat_sted, adresse, postnr, by, foedselsaar, foedselsmd, foedselsdag) VALUES('Ebbe', 'Bæk', 'PH-Akut Døgn', '51181063', 'ekkebeb@gmail.com', 'Socialpædagog', 'Kommune', 'Drosselvej 17', '8600', 'Silkeborg', '1961', '06', '02')

Herefter får jeg desværre en fejl-melding:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by, foedselsaar, foedselsmd, foedselsdag) VALUES('Ebbe', 'Bæk', 'PH-Akut Døgn'' at line 1
11. maj 2012 - 07:14 #14
Jamen hvor der er liv er det håb.  Du fik mysql til at give en fejlmelding. 

by er åbenbart et reserveret ord i mysql, et ord med en special betydning for programmet.  For at bruge et reserveret ord skal man placere det mellem `` altså baglæns apostroffer.  Prøv med:

INSERT INTO medlemmer (fornavn, efternavn, arb_sted, mobil, email,udd, ansat_sted, adresse, postnr, `by`, foedselsaar, .... o.s.v.

Hvis du så får værdierne indsat i tabellen, så ved du, at tabellen og database delen er gode nok.  Du har allerede, ved at udskrive på skærmen de variable du fylder i formularen, checket at formularen er ok og at der er forbindelse mellem formularen og opret_medlem.php filen.

Hvis du stadig ikke ud fra programmet hverken får dataerne indsat i tabellen eller får en mysql_error fejlmelding, så kan det næsten kun være, fordi php programmet ikke har forbindelse med mysql.  Af en eller anden årsag.  Kan der være en eller anden tyrkfejl i 'connect.php?  Du kunne jo prøve, i stedet for at skrive

// Skab forbindelse til databasen her
include("connect.php"); //Inkluder filen der connecter til min database

så at skrive

// Skab forbindelse til databasen her
mysql_connect("localhost", "abcde", "fghij") or die(mysql_error());
mysql_select_db("klmno");
...

eller hvad brugernavn, adgangskode, og database nu er.

Hvis det heller ikke virker, kan det så tænkes, at der er noget med en tilladelse du ikke har eller en aktivering af mysql der mangler?  Den slags ved jeg mindre om.  Hvis du kommer så langt, ved at have udelukket alle andre muligheder, at der må være blokkader mellem php programmet og mysql, så var det måske et emne for et nyt spørgsmål som så vil få frisk opmærksomhed fra ekspertens medlemmer.  I et sådan spørgsmål skal du nok inkludere tekniske detaljer såsom computerens operativsystem og din localhost setup (bruger du for eksempel xampp?).
Avatar billede EbbeBaek Nybegynder
11. maj 2012 - 18:14 #15
YES!
Jeg har lavet attributten 'VARCHAR' om til 'TEXT' i alle felter undtager 'id'-feltet i phpAdmin.

Jeg omdøbte tabelrækken 'by' til 'town' og nu kan jeg indsætte førnævnte post i phpAdmin! Og jeg kan se 'vis_medlemmer.php' i browseren!

MEN - jeg kan se ikke se 'opret_medlem.php' i browseren ...!
Hmmm ...
11. maj 2012 - 18:58 #16
Siger du, at (1) du nu kan indsætte dataerne i tabellen i phpmyadmin, og (2) derefter kan du i vis_medlemmer.php se de indsatte data?  Prima.

Du kan ikke se opret_medlem.php i browseren.  I den kode du viser i dit oprindelige spørgsmål skulle der udskrives 'Tak for henvendelsen' uanset om det lykkedes at indføre dataerne eller ej, så det burde du kunne se.  Jeg foreslog i #8 at du i koden til opret_medlem.php skulle indsætte "echo "<br>Fornavn = $fornavn";" o.s.v.  Jeg forstod på #9, at du havde gjort det, og at du så kunne se fornavn o.s.v. udskrevet.  Altså se opret_medlem.php i browseren.  Havde jeg forstået det rigtigt?  Så er situationen, at du tidligere kunne se opret_medlem.php (de udskrevne variabler) men nu ikke kan se noget mere?  Eller har du aldrig kunnet se noget fra opret_medlem.php?
Avatar billede EbbeBaek Nybegynder
11. maj 2012 - 20:12 #17
Jeg har rettet lidt i de to filer:
-----------------------------------
'opret_medlem.html':

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<meta http-equiv="Content-Type" content="text/html">
<LINK REL="STYLESHEET" HREF="sk.css" TYPE="text/css">
<title>Indmeldelse i personaleforeningen</title>
</head>
<body>
<center><h3>Indmeldelse i "Personaleforeningen for Psykiatriansatte i Silkeborg kommune"</h3>
Rettelser? skriv til <a href="mailto:eb@silkeborg.dk">os</a>!<p>

<form name=opret method="post" action="opret_medlem.php">

<table border=0>
<tr>
<td align=right>Fornavn:</td><td><input type="text" name="fornavn" maxlength=25></td>
</tr>
<tr>
<td align=right>Efternavn:</td><td><input type="text" name="efternavn" maxlength=25></td>
</tr>
<tr>
<td align=right>Arbejdssted:</td>
<td><SELECT name="arb_sted">
      <OPTION selected value="Vælg her">- Vælg her -</OPTION>
      <OPTION>Birkeparken</OPTION>
      <OPTION>Bostedet Hinge</OPTION>
      <OPTION>Bostøtten Kjellerup</OPTION>
      <OPTION>Bostøtten Lupinvej</OPTION>
      <OPTION>Bostøtten Them</OPTION>
      <OPTION>Bostøtten Gjern</OPTION>
      <OPTION>Bostøtten Narvikvej</OPTION>
      <OPTION>Bostedet Kjellerup</OPTION>
      <OPTION>Mødestedet</OPTION>
      <OPTION>Personstøtten/SKP</OPTION>
      <OPTION>PH-Affektivt team</OPTION>
      <OPTION>PH-Aktiv</OPTION>
      <OPTION>PH-Akut Døgn</OPTION>
      <OPTION>PH-Bostøtten Midtby</OPTION>
      <OPTION>PH-Depression og mani</OPTION>
      <OPTION>PH-Døgndækkende hjemmebehandling</OPTION>
      <OPTION>PH-Lokalpsykiatrien</OPTION>
      <OPTION>PH-OCD og personlighedsforstyrrelser</OPTION>
      <OPTION>PH-Psykoseteam</OPTION>
      <OPTION>PH-Sekretariat kommune</OPTION>
      <OPTION>PH-Sekretariat Region</OPTION>
      <OPTION>PH-Team for angstlidelser</OPTION>
      <OPTION>Rosengårdcentret</OPTION>
      <OPTION>Støttecentret</OPTION>
      <OPTION>Andet</OPTION>
    </SELECT>
</td>
</tr>
<tr>
<td align=right>Mobil:</td><td><input type="text" name="mobil" maxlength=8></td>
</tr>
<tr>
<td align=right>Email:</td><td><input type="text" name="email" maxlength=25></td>
</tr>
<tr>
<td align=right>Uddannelse:</td>
<td><SELECT name="udd">
      <OPTION selected value="Vælg her">- Vælg her -</OPTION>
      <OPTION>Ergoterapeut</OPTION>
      <OPTION>Fuldmægtig</OPTION>
      <OPTION>Fysioterapeut</OPTION>
      <OPTION>Kontorassistent</OPTION>
      <OPTION>Læge</OPTION>
      <OPTION>Lægesekretær</OPTION>
      <OPTION>Musikterapeut</OPTION>
      <OPTION>Plejer</OPTION>
      <OPTION>Psykolog</OPTION>
      <OPTION>Pædagog</OPTION>
      <OPTION>Rengøring</OPTION>
      <OPTION>Sekretær</OPTION>
      <OPTION>Socialpædagog</OPTION>
      <OPTION>Socialrådgiver</OPTION>
      <OPTION>SoSA</OPTION>
      <OPTION>Sygeplejerske</OPTION>
      <OPTION>Andet</OPTION>
  </SELECT>
</td>
</tr>
<tr>
<td align=right>Ansat i:</td>
<td><SELECT name="ansat_sted">
      <OPTION selected value="Vælg her">- Vælg her -</OPTION>
      <OPTION>Kommune</OPTION>
      <OPTION>Region</OPTION>
  </SELECT>
</td>
</tr>
<tr>
<td align=right>Adresse:</td><td><input type="text" name="adresse" maxlength=25></td>
</tr>
<tr>
<td align=right>Postnr.:</td><td><input type="text" name="postnr" maxlength=4></td>
</tr>
<tr>
<td align=right>By:</td><td><input type="text" name="town" maxlength=25></td>
</tr>
<tr>
<td align=right>Fødselsår (åååå):</td><td><input type="text" name="foedselsaar" maxlength=4></td>
</tr>
<tr>
<td align=right>Måned (mm):</td><td><input type="text" name="foedselsmd" maxlength=2></td>
</tr>
<tr>
<td align=right>Dag (dd):</td><td><input type="text" name="foedselsdag" maxlength=2></td>
</tr>
</table>
<input type="submit" name="send" value="Send oplysninger!">
</form>
</center>

<?php
// Hent indholdet af formularens felter
$fornavn = $_POST["fornavn"];
$efternavn = $_POST["efternavn"];
$arb_sted = $_POST["arb_sted"];
$mobil = $_POST["mobil"];
$email = $_POST["email"];
$udd = $_POST["udd"];
$ansat_sted = $_POST["ansat_sted"];
$adresse = $_POST["adresse"];
$postnr = $_POST["postnr"];
$town = $_POST["town"];
$foedselsaar = $_POST["foedselsaar"];
$foedselsmd = $_POST["foedselsmd"];
$foedselsdag = $_POST["foedselsdag"];

// Skab forbindelse til databasen her
include("connect.php"); //Inkluder filen der connecter til min database
//Indsæt indholdet af formularfelterne i databasen
mysql_query("INSERT INTO medlemmer (fornavn, efternavn, arb_sted, mobil, email, udd, ansat_sted, adresse, postnr, town, foedselsaar, foedselsmd, foedselsdag') VALUES ('$fornavn', '$efternavn', '$arb_sted', '$mobil', '$email', '$udd', '$ansat_sted', '$adresse','$postnr', '$town', '$foedselsaar', '$foedselsmd', '$foedselsdag')"); or die(mysql_error());
?>
</body>
</html>
---------------------
'opret_medlem.php':
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<title>Tak for indmeldelsen!</title>
<meta http-equiv="Content-Type" content="text/html">
<LINK REL="STYLESHEET" HREF="sk.css" TYPE="text/css">
<body>
Tak for indmeldelsen!<br>
Du har indskrevet flg. data:<p>

<?php
// Hent indholdet af formularens felter
$fornavn = $_POST["fornavn"];
echo "<br>Fornavn: $fornavn";
$efternavn = $_POST["efternavn"];
echo "<br>Efternavn: $efternavn";
$arb_sted = $_POST["arb_sted"];
echo "<br>Arbejdssted: $arb_sted";
$mobil = $_POST["mobil"];
echo "<br>Mobil: $mobil";
$email = $_POST["email"];
echo "<br>Email: $email";
$udd = $_POST["udd"];
echo "<br>Uddannelse: $udd";
$ansat_sted = $_POST["ansat_sted"];
echo "<br>Ansat i: $ansat_sted";
$adresse = $_POST["adresse"];
echo "<br>Adresse: $adresse";
$postnr = $_POST["postnr"];
echo "<br>Postnr.: $postnr";
$town = $_POST["town"];
echo "<br>By: $town";
$foedselsaar = $_POST["foedselsaar"];
echo "<br>Fødselsår: $foedselsaar";
$foedselsmd = $_POST["foedselsmd"];
echo "<br>Fødselsmåned: $foedselsmd";
$foedselsdag = $_POST["foedselsdag"];
echo "<br>Fødselsdag: $foedselsdag";
?>
</body>
</html>
------------------------------------
Jeg begynder at have en formodning om, at password er blevet ændret for databasen ;-)
Avatar billede EbbeBaek Nybegynder
11. maj 2012 - 20:14 #18
... der er forbindelse mellem 'opret_medlem.html' og 'opret_medlem.php' ...
Avatar billede EbbeBaek Nybegynder
11. maj 2012 - 20:33 #19
... eller er det kommandoen:


<form name=opret method="post" action="opret_medlem.php">

der er forkert?

form name, som er 'opret' bliver ikke brugt til noget på noget tidspunkt? Har den noget med at gøre at data ikke bliver puttet i tabellen?
11. maj 2012 - 20:48 #20
STOP!  Alt tyder på, at problemets kærne er manglende forbindelse mellem php koden og databasen, og min mistanke har længe været, at det du har i connect.php ikke er det rigtige, for eksempel at password ikke (længere) er rigtigt.  Så få det rigtigt undersøgt, og lad i mellemtiden alt det andet hvile.
Avatar billede EbbeBaek Nybegynder
11. maj 2012 - 22:13 #21
Jeg har checket password og databasenavn, som er korrekt i php-koden. Og jeg får ingen fejlmeddelse, når jeg kalder 'connect.php' via 'opret_medlem.php'
For sjov skyld har jeg prøvet at skrive noget andet som password, hvilken øjeblikkeligt giver en fejlkode:

Access denied for user 'socialpsykiatri'@'srv5.one.com' (using password: YES)
12. maj 2012 - 06:43 #22
Ok, jeg reagerede på din bemærkning om, at der muligvis var ændret et password for databasen.  Det er et godt tegn, at du får fejlmeldingen, når du bevidst bruger et forkert password.

Men den kode du viser i #17 vil ikke virke, af to grunde: 

(1)  I filen opret_medlem.html er de sidste godt 20 linjer php kode.  PHP kode bliver ikke forstået i en fil med html 'efternavn'.

(2)  Filen opet_medlem.html kalder filen opret_medlem.php som så skal sende dataerne til databasen, men opret_medlem.php indeholder ingen kode der kommunikerer med databasen.  Hvis du tager php afsnittet i opret_medlem.html og flytter over i opret_medlem.php, så har du en chance.

Slagets gang er, at opret_medlem.html filen viser formularen på skærmen.  Fordi formularen har <form .... action="opret_medlem.php"> , så kaldes filen opret_medlem.php, når der trykkes på submit knappen 'Send oplysninger!'

Fordi formularen har <form ... method="post"...> får du så i opret_medlem.php de indfyldte data leveret i form af $_POST['..'] variable som du kan pakke ud og sende til databasen.  (Du har ret i, at formens navn ikke bruges til noget her.)

Jeg har nedenfor taget den kode du viser i #17 og flyttet rundt på den.  Så skulle der meget gerne ske følgende: 

(1)  Du fårformularen på skærmen, og du fylder felterne ud.

(2)  Når du trykker på 'Send oplysninger' skulle du se

'Tak for indmeldelsen!
Du har indskrevet flg. data:
Fornavn: Jens
Efternavn: Jensen
....
....


(3)  Dataerne sendes til databasen og bevares i tabellen.

Hvis det ikke sker, så forstår jeg det ikke og må nok give op.

Her er min omstykning af din kode i #17:

--------------------------------------------------------------

'opret_medlem.html':

--------------------------------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<meta http-equiv="Content-Type" content="text/html">
<LINK REL="STYLESHEET" HREF="sk.css" TYPE="text/css">
<title>Indmeldelse i personaleforeningen</title>
</head>
<body>
<center><h3>Indmeldelse i "Personaleforeningen for Psykiatriansatte i Silkeborg kommune"</h3>
Rettelser? skriv til <a href="mailto:eb@silkeborg.dk">os</a>!<p>

<form name=opret method="post" action="opret_medlem.php">

<table border=0>
<tr>
<td align=right>Fornavn:</td><td><input type="text" name="fornavn" maxlength=25></td>
</tr>
<tr>
<td align=right>Efternavn:</td><td><input type="text" name="efternavn" maxlength=25></td>
</tr>
<tr>
<td align=right>Arbejdssted:</td>
<td><SELECT name="arb_sted">
      <OPTION selected value="Vælg her">- Vælg her -</OPTION>
      <OPTION>Birkeparken</OPTION>
      <OPTION>Bostedet Hinge</OPTION>
      <OPTION>Bostøtten Kjellerup</OPTION>
      <OPTION>Bostøtten Lupinvej</OPTION>
      <OPTION>Bostøtten Them</OPTION>
      <OPTION>Bostøtten Gjern</OPTION>
      <OPTION>Bostøtten Narvikvej</OPTION>
      <OPTION>Bostedet Kjellerup</OPTION>
      <OPTION>Mødestedet</OPTION>
      <OPTION>Personstøtten/SKP</OPTION>
      <OPTION>PH-Affektivt team</OPTION>
      <OPTION>PH-Aktiv</OPTION>
      <OPTION>PH-Akut Døgn</OPTION>
      <OPTION>PH-Bostøtten Midtby</OPTION>
      <OPTION>PH-Depression og mani</OPTION>
      <OPTION>PH-Døgndækkende hjemmebehandling</OPTION>
      <OPTION>PH-Lokalpsykiatrien</OPTION>
      <OPTION>PH-OCD og personlighedsforstyrrelser</OPTION>
      <OPTION>PH-Psykoseteam</OPTION>
      <OPTION>PH-Sekretariat kommune</OPTION>
      <OPTION>PH-Sekretariat Region</OPTION>
      <OPTION>PH-Team for angstlidelser</OPTION>
      <OPTION>Rosengårdcentret</OPTION>
      <OPTION>Støttecentret</OPTION>
      <OPTION>Andet</OPTION>
    </SELECT>
</td>
</tr>
<tr>
<td align=right>Mobil:</td><td><input type="text" name="mobil" maxlength=8></td>
</tr>
<tr>
<td align=right>Email:</td><td><input type="text" name="email" maxlength=25></td>
</tr>
<tr>
<td align=right>Uddannelse:</td>
<td><SELECT name="udd">
      <OPTION selected value="Vælg her">- Vælg her -</OPTION>
      <OPTION>Ergoterapeut</OPTION>
      <OPTION>Fuldmægtig</OPTION>
      <OPTION>Fysioterapeut</OPTION>
      <OPTION>Kontorassistent</OPTION>
      <OPTION>Læge</OPTION>
      <OPTION>Lægesekretær</OPTION>
      <OPTION>Musikterapeut</OPTION>
      <OPTION>Plejer</OPTION>
      <OPTION>Psykolog</OPTION>
      <OPTION>Pædagog</OPTION>
      <OPTION>Rengøring</OPTION>
      <OPTION>Sekretær</OPTION>
      <OPTION>Socialpædagog</OPTION>
      <OPTION>Socialrådgiver</OPTION>
      <OPTION>SoSA</OPTION>
      <OPTION>Sygeplejerske</OPTION>
      <OPTION>Andet</OPTION>
  </SELECT>
</td>
</tr>
<tr>
<td align=right>Ansat i:</td>
<td><SELECT name="ansat_sted">
      <OPTION selected value="Vælg her">- Vælg her -</OPTION>
      <OPTION>Kommune</OPTION>
      <OPTION>Region</OPTION>
  </SELECT>
</td>
</tr>
<tr>
<td align=right>Adresse:</td><td><input type="text" name="adresse" maxlength=25></td>
</tr>
<tr>
<td align=right>Postnr.:</td><td><input type="text" name="postnr" maxlength=4></td>
</tr>
<tr>
<td align=right>By:</td><td><input type="text" name="town" maxlength=25></td>
</tr>
<tr>
<td align=right>Fødselsår (åååå):</td><td><input type="text" name="foedselsaar" maxlength=4></td>
</tr>
<tr>
<td align=right>Måned (mm):</td><td><input type="text" name="foedselsmd" maxlength=2></td>
</tr>
<tr>
<td align=right>Dag (dd):</td><td><input type="text" name="foedselsdag" maxlength=2></td>
</tr>
</table>
<input type="submit" name="send" value="Send oplysninger!">
</form>
</center>
</body>
</html>

------------------------------------------------------

'opret_medlem.php':

------------------------------------------------------


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<title>Tak for indmeldelsen!</title>
<meta http-equiv="Content-Type" content="text/html">
<LINK REL="STYLESHEET" HREF="sk.css" TYPE="text/css">
<body>
Tak for indmeldelsen!<br>
Du har indskrevet flg. data:<p>

<?php
// Hent indholdet af formularens felter
$fornavn = $_POST["fornavn"];
echo "<br>Fornavn: $fornavn";
$efternavn = $_POST["efternavn"];
echo "<br>Efternavn: $efternavn";
$arb_sted = $_POST["arb_sted"];
echo "<br>Arbejdssted: $arb_sted";
$mobil = $_POST["mobil"];
echo "<br>Mobil: $mobil";
$email = $_POST["email"];
echo "<br>Email: $email";
$udd = $_POST["udd"];
echo "<br>Uddannelse: $udd";
$ansat_sted = $_POST["ansat_sted"];
echo "<br>Ansat i: $ansat_sted";
$adresse = $_POST["adresse"];
echo "<br>Adresse: $adresse";
$postnr = $_POST["postnr"];
echo "<br>Postnr.: $postnr";
$town = $_POST["town"];
echo "<br>By: $town";
$foedselsaar = $_POST["foedselsaar"];
echo "<br>Fødselsår: $foedselsaar";
$foedselsmd = $_POST["foedselsmd"];
echo "<br>Fødselsmåned: $foedselsmd";
$foedselsdag = $_POST["foedselsdag"];
echo "<br>Fødselsdag: $foedselsdag";

// Skab forbindelse til databasen her
include("connect.php"); //Inkluder filen der connecter til min database
//Indsæt indholdet af formularfelterne i databasen
mysql_query("INSERT INTO medlemmer (fornavn, efternavn, arb_sted, mobil, email, udd, ansat_sted, adresse, postnr, town, foedselsaar, foedselsmd, foedselsdag') VALUES ('$fornavn', '$efternavn', '$arb_sted', '$mobil', '$email', '$udd', '$ansat_sted', '$adresse','$postnr', '$town', '$foedselsaar', '$foedselsmd', '$foedselsdag')"); or die(mysql_error());

?>
</body>
</html>
Avatar billede EbbeBaek Nybegynder
12. maj 2012 - 08:55 #23
'opret_medlem.php' giver en blank side.
Jeg giver også op.

Men TAK for din hjælp - jeg giver dig point alligevel, selvom det ikke lykkedes.
12. maj 2012 - 09:14 #24
Med min kodeversion i #22 får du en blank side når du i opret_medlem.html trykker på 'Send Oplysninger!'  Er det hvad du siger?

Jamen så må problemet ligge i, at der ikke er forbindelse mellem opret_medlem.html og opret_medlem.php.  Hvordan er din fil struktur?  Filen opret_medlem.php skal ligge i samme mappe, samme directory, som filen opret_medlem.html.  For eksempel, hvis opret_medlem.html ligger i mappen MinSide som igen ligger i mappen Root, således:

Root
->
    MinSide
    ->
      opret_medlem.html
      opret_medlem.php

Hvis for eksempel der er en undermappe til MinSide og opret_medlem ligger deri, således:

Root
->
    MinSide
    ->
      opret_medlem.html
      MinUndermappe
        ->
        opret_medlem.php

så skal du ændre formularens action fra opret_medlem.php til MinUndermappe.opret_medlem.php
12. maj 2012 - 09:14 #25
..med andre ord, vis mig din fil struktur.
Avatar billede EbbeBaek Nybegynder
12. maj 2012 - 09:18 #26
Filerne ligger i samme mappe/directory
12. maj 2012 - 09:34 #27
Ja så forstår jeg ikke et kuk, for så skulle opret_medlem.html kalde opret_medlem.php.  Jeg må bøje mig for kendsgerningen, at det kan jeg ikke gennemskue.

Du har den mulighed at oprette et nyt spørgsmål som så får frisk opmærksomhed fra medlemsskaren.  Jeg foreslår, at du i dit nye spørgsmål holder dig til, at opret_medlem.html ikke kalder opret_medlem.php (på trods af at filerne ligger i samme mappe.)  Hvis du kan få det løst, så vil problemet med databasen med det samme blive løst.

Jamen vi opnåede da noget, nemlig at identificere problemet bedre.  Så er chancen større for at det kan blive løst (ikke af mig.)
14. maj 2012 - 09:18 #28
Jeg forstod på dig, at du ville lukke spørgsmålet og give points.  For at gøre det skal du i mit svar #27 sætte 'flueben' ved 'Accepter dette svar' og derefter klikke på feltet 'Accepter svar og afgiv points.'

Jeg noterede mig, at du oprettede et nyt spørgsmål 'points til christian_belgien', men det er ikke måden at gøre det på.  (Den metode bruges i andre tilfælde.)

(Spam mailen #28 skal naturligvis ignoreres.)
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