|
| 8 personer i en table... Fra : IvanMort | Vist : 388 gange 375 point Dato : 26-10-02 00:04 |
|
Jeg skal ha en online tilmelding, med 2 voksen, og mulighed for 6 børn, de er på en tilmelding, men de skal reg. som en person, i en database (Mysql), så man kan søge på antal tilmelde, alder mm.m.
se. : http://www.sjellebro.dk/fam2002.html
Jeg har prøvet at lave 8 tabler og merge dem, men jeg vil gerne genbruge nogle oplysning, som hvilken lejr de er tilmeld m.m. Men unden held...
| |
| Kommentar Fra : karlosDK |
Dato : 03-11-02 19:31 |
|
Opret en tabel med de feltnavne du har i formularen, og kald den tilmelding.
opret forbindelse til databasen og sæt denne kode i process.php:
$tabel = "tilmelding";
$felter = "(";
$vaerdier = " VALUES (";
for($i=1;$i<7;$i++) {
$barn = "Barn" .$i. "Navn";
if (!$_POST[$barn]=="") {
$antal = $i;
}}
foreach ($_POST as $key => $value) {
$felter .= "$key, ";
$vaerdier .= "$value, ";
}
$felter = substr("$felter" ,0 , -2);
$vaerdier = substr("$vaerdier" ,0 , -2);
$felter .= ",antal)";
$vaerdier .= ",$antal)";
$sql_indsaet = "INSERT INTO $tabel $felter $vaerdier";
if (!mysql_query($sql_indsaet)) {
echo "Fejl! :" . mysql_error();
} else {
echo "Tak for tilmeldingen";
Så kører det!
| |
| Kommentar Fra : IvanMort |
Dato : 03-11-02 20:32 |
|
sådan ser min proccess.php ud :
<?php
$errors=0;
$error="The following errors occured while processing your form input.<ul>";
if($familielejr=="" || $beboelse=="" || $civilstand=="" ){
$errors=1;
$error.="<li>You did not enter one or more of the required fields. Please go back and try again.";
}
if($errors==1) echo $error;
else{
$dato_array = getdate();
$Dato = $dato_array["year"]."-".$dato_array["mon"]."-".$dato_array["mday"];
$message="familielejr: ".$familielejr."
navn1: ".$navn1."
Foedselsdato1: ".$Foedselsdato1."
navn2: ".$navn2."
Foedselsdato2: ".$Foedselsdato2."
adresse: ".$adresse."
postnr_by: ".$postnr_by."
land: ".$land."
tlfnr: ".$tlfnr."
email: ".$email."
beboelse: ".$beboelse."
civilstand: ".$civilstand."
Boernevagt: ".$Boernevagt."
Barn1Navn: ".$Barn1Navn."
Barn1Koen: ".$Barn1Koen."
Barn1Foedselsdato: ".$Barn1Foedselsdato."
Barn1Klassetrin: ".$Barn1Klassetrin."
Barn2Navn: ".$Barn2Navn."
Barn2Koen: ".$Barn2Koen."
Barn2Foedselsdato: ".$Barn2Foedselsdato."
Barn2Klassetrin: ".$Barn2Klassetrin."
Barn3Navn: ".$Barn3Navn."
Barn3Koen: ".$Barn3Koen."
Barn3Foedselsdato: ".$Barn3Foedselsdato."
Barn3Klassetrin: ".$Barn3Klassetrin."
Barn4Navn: ".$Barn4Navn."
Barn4Koen: ".$Barn4Koen."
Barn4Foedselsdato: ".$Barn4Foedselsdato."
Barn4Klassetrin: ".$Barn4Klassetrin."
Barn5Navn: ".$Barn5Navn."
Barn5Koen: ".$Barn5Koen."
Barn5Foedselsdato: ".$Barn5Foedselsdato."
Barn5Klassetrin: ".$Barn5Klassetrin."
Barn6Navn: ".$Barn6Navn."
Barn6Koen: ".$Barn6Koen."
Barn6Foedselsdato: ".$Barn6Foedselsdato."
Barn6Klassetrin: ".$Barn6Klassetrin."
Bemaerkninger: ".$Bemaerkninger."
Dato: ".$Dato."
";
mail("*****@*****.dk","Online Tilmelding",$message,"From: *****@****.dk");
$link = mysql_connect("localhost","*****","******");
mysql_select_db("*******",$link);
$query="insert into Familycamp (familielejr,navn1,Foedselsdato1,navn2,Foedselsdato2,adresse,postnr_by,land,tlfnr,email,beboelse,civilstand,Boernevagt,Barn1Navn,Barn1Koen,Barn1Foedselsdato,Barn1Klassetrin,Barn2Navn,Barn2Koen,Barn2Foedselsdato,Barn2Klassetrin,Barn3Navn,Barn3Koen,Barn3Foedselsdato,Barn3Klassetrin,Barn4Navn,Barn4Koen,Barn4Foedselsdato,Barn4Klassetrin,Barn5Navn,Barn5Koen,Barn5Foedselsdato,Barn5Klassetrin,Barn6Navn,Barn6Koen,Barn6Foedselsdato,Barn6Klassetrin,Bemaerkninger,Dato) values ('".$familielejr."','".$navn1."','".$Foedselsdato1."','".$navn2."','".$Foedselsdato2."','".$adresse."','".$postnr_by."','".$land."','".$tlfnr."','".$email."','".$beboelse."','".$civilstand."','".$Boernevagt."','".$Barn1Navn."','".$Barn1Koen."','".$Barn1Foedselsdato."','".$Barn1Klassetrin."','".$Barn2Navn."','".$Barn2Koen."','".$Barn2Foedselsdato."','".$Barn2Klassetrin."','".$Barn3Navn."','".$Barn3Koen."','".$Barn3Foedselsdato."','".$Barn3Klassetrin."','".$Barn4Navn."','".$Barn4Koen."','".$Barn4Foedselsdato."','".$Barn4Klassetrin."','".$Barn5Navn."','".$Barn5Koen."','".$Barn5Foedselsdato."','".$Barn5Klassetrin."','".$Barn6Navn."','".$Barn6Koen."','".$Barn6Foedselsdato."','".$Barn6Klassetrin."','".$Bemaerkninger."','".$Dato."')";
mysql_query($query);
header("Refresh: 0;url= http://www.sjellebro.dk/success.html");
}
?>
hvordan skal den se ud, hvis man skal kunne se hvor mange der er tilmeld, og hvordan de skal bo m.m.
| |
| Kommentar Fra : karlosDK |
Dato : 03-11-02 23:29 |
|
Du skal selvfølgelig også have en kolonne der hedder antal i tabellen.
I denne kolonne bliver værdien for antal børn så sat ind
| |
| Kommentar Fra : karlosDK |
Dato : 03-11-02 23:58 |
|
Hvis jeg har forstået dig rigtigt, skulle dette kunne gøre det.
Der bliver udskrevet en linie for hver familie.
Beboelsesform, Antal voksne, Antal Børn.
Til sidst udskrives det totalt antal tilmeldte.
$qry_tilmeldte = "SELECT * FROM Familycamp ORDER BY beboelse";
$result = mysql_query($qry_tilmeldte);
while($posten = mysql_fetch_array($result)){
echo $posten['beboelse'];
for($i=1;$i<7;$i++) {
$barn = "Barn" .$i. "Navn";
if (!$posten[$barn]=="") {
$antal = $i;
}}
if(!$posten['navn2']=="") {
$antalvoksne = 2;
} else {
$antalvoksne = 1;
}
$antaltotal += $antalvoksne + $antal;
echo "Voksne : $antalvoksne, Børn : $antal<br>";
}
echo $antaltotal;
| |
| Kommentar Fra : IvanMort |
Dato : 04-11-02 09:48 |
|
nej, det er desvære ikke nok, jeg skal kunne søge efter hvor mange børn der er 14 år f.eks.
og hvor mange der er på fuldkost, hvor mange der skal bo på værelse, hvor mange der skal campere..
og hvilken lejre de skal på, da vi har flere...
Med andre ord, så skal hver person være en tilmelding = en record i table...
men jeg ønsker jo ikke at de skal tilmelde sig en af gangen, jeg havde tænkt mig
at hver person kom ind i en table, og at man på en eller anden måde kunne slå
dem sammen, men de skal også stadi virke som en familie, f. eks. med samme idnr.
Håber det var en god nok forklaring
| |
| Kommentar Fra : IvanMort |
Dato : 04-11-02 09:55 |
|
så de oplysninger jeg gerne vil have for hver enkel person er :
Navn, fødselsdato, køn, klassetrin
Disse er fælles for hele familien:
Dato, famlilelejr, beboelse, adresse, postnr_by, land, tlfnr, email, civilstand, Børnevagt, Bemærkninger
| |
| Accepteret svar Fra : karlosDK | Modtaget 375 point Dato : 04-11-02 20:32 |
|
Hej igen!
Jeg har rodet lidt med det, og her er resultatet:
Der ligger et databaseskelet på http://www.sostack.com/scripting/camp.zip
Det kan bruges sasmmen med denne kode:
<?
$host = "localhost";
$user = "root";
$pass = "";
$link = mysql_connect($host, $user, $pass);
mysql_select_db("camp");
$tabel = "familycamp";
$sql_familieID = "SELECT familieID FROM $tabel ORDER BY familieID DESC";
$fam_ID = mysql_query($sql_familieID);
$familieID = (integer)mysql_fetch_array($fam_ID);
$familieID += 1;
$tabel2 = "persons";
$felter = "(dato, familielejr, beboelse, adresse, postnr, bynavn, land, tlfnr, email, civilstand, barnevagt, bemærkninger, familieID)";
$lejr = explode(" (", $_POST['familielejr']);
$vaerdier = " VALUES (";
$vaerdier .= "\"" . ereg_replace(')', '',$lejr[1]) ."\",";
$vaerdier .= "\"" . $lejr[0] ."\",";
$vaerdier .= "\"" . $_POST['beboelse']."\",";
$vaerdier .= "\"" . $_POST['adresse'] ."\",";
$vaerdier .= (integer)substr($_POST['postnr_by'], 0, 4) .",";
$vaerdier .= "\"" .substr($_POST['postnr_by'],5,strlen($_POST['postnr_by'])-5)."\",";
$vaerdier .= "\"" .$_POST['land']."\",";
$vaerdier .= $_POST['tlfnr'].",";
$vaerdier .= "\"" .$_POST['email']."\",";
$vaerdier .= "\"" .$_POST['civilstand']."\",";
if(!isset($_POST['Boernevagt'])) {
$vaerdier .= "\"off\",";
}else{
$vaerdier .= "\"" .$_POST['Boernevagt']."\",";
}
$vaerdier .= "\"" .$_POST['Bemaerkninger']."\", $familieID)";
mysql_query("INSERT INTO $tabel $felter $vaerdier") or die(mysql_error() . "<br>" . $vaerdier);
for($i = 1;$i < 3;$i++) {
$voksen = $_POST["navn".$i];
$voksenalder = $_POST["Foedselsdato".$i];
$sql_voksen = "INSERT INTO $tabel2 (navn,foedselsdato,koen,klassetrin,familieID) VALUES (\"$voksen\",\"$voksenalder\",\"NULL\",0,$familieID)";
mysql_query($sql_voksen) or die (mysql_error() ."<br>" .$sql_voksen);
}
for($i = 1;$i < 7;$i++) {
$barn = $_POST["Barn".$i."Navn"];
$barnalder = $_POST["Barn".$i."Foedselsdato"];
$barnkoen = $_POST["Barn".$i."Koen"];
$barnklasse = $_POST["Barn".$i."Klassetrin"];
$sql_barn = "INSERT INTO $tabel2(navn,foedselsdato,koen,klassetrin,familieID) VALUES ('$barn','$barnalder','$barnkoen',$barnklasse,$familieID)";
if(!$barn == "") {
mysql_query($sql_barn) or die (mysql_error());
}
}
mysql_close($link);
?>
| |
| Kommentar Fra : karlosDK |
Dato : 04-11-02 20:34 |
|
Hej igen!
Jeg har rodet lidt med det, og her er resultatet:
Der ligger et databaseskelet på http://www.sostack.com/scripting/camp.zip
Det kan bruges sasmmen med denne kode:
<?
$host = "localhost";
$user = "root";
$pass = "";
$link = mysql_connect($host, $user, $pass);
mysql_select_db("camp");
$tabel = "familycamp";
$sql_familieID = "SELECT familieID FROM $tabel ORDER BY familieID DESC";
$fam_ID = mysql_query($sql_familieID);
$familieID = (integer)mysql_fetch_array($fam_ID);
$familieID += 1;
$tabel2 = "persons";
$felter = "(dato, familielejr, beboelse, adresse, postnr, bynavn, land, tlfnr, email, civilstand, barnevagt, bemærkninger, familieID)";
$lejr = explode(" (", $_POST['familielejr']);
$vaerdier = " VALUES (";
$vaerdier .= "\"" . ereg_replace(')', '',$lejr[1]) ."\",";
$vaerdier .= "\"" . $lejr[0] ."\",";
$vaerdier .= "\"" . $_POST['beboelse']."\",";
$vaerdier .= "\"" . $_POST['adresse'] ."\",";
$vaerdier .= (integer)substr($_POST['postnr_by'], 0, 4) .",";
$vaerdier .= "\"" .substr($_POST['postnr_by'],5,strlen($_POST['postnr_by'])-5)."\",";
$vaerdier .= "\"" .$_POST['land']."\",";
$vaerdier .= $_POST['tlfnr'].",";
$vaerdier .= "\"" .$_POST['email']."\",";
$vaerdier .= "\"" .$_POST['civilstand']."\",";
if(!isset($_POST['Boernevagt'])) {
$vaerdier .= "\"off\",";
}else{
$vaerdier .= "\"" .$_POST['Boernevagt']."\",";
}
$vaerdier .= "\"" .$_POST['Bemaerkninger']."\", $familieID)";
mysql_query("INSERT INTO $tabel $felter $vaerdier") or die(mysql_error() . "<br>" . $vaerdier);
for($i = 1;$i < 3;$i++) {
$voksen = $_POST["navn".$i];
$voksenalder = $_POST["Foedselsdato".$i];
$sql_voksen = "INSERT INTO $tabel2 (navn,foedselsdato,koen,klassetrin,familieID) VALUES (\"$voksen\",\"$voksenalder\",\"NULL\",0,$familieID)";
mysql_query($sql_voksen) or die (mysql_error() ."<br>" .$sql_voksen);
}
for($i = 1;$i < 7;$i++) {
$barn = $_POST["Barn".$i."Navn"];
$barnalder = $_POST["Barn".$i."Foedselsdato"];
$barnkoen = $_POST["Barn".$i."Koen"];
$barnklasse = $_POST["Barn".$i."Klassetrin"];
$sql_barn = "INSERT INTO $tabel2(navn,foedselsdato,koen,klassetrin,familieID) VALUES ('$barn','$barnalder','$barnkoen',$barnklasse,$familieID)";
if(!$barn == "") {
mysql_query($sql_barn) or die (mysql_error());
}
}
mysql_close($link);
?>
| |
| Kommentar Fra : karlosDK |
Dato : 04-11-02 20:35 |
|
Hej igen!
Jeg har rodet lidt med det, og her er resultatet:
Der ligger et databaseskelet på http://www.sostack.com/scripting/camp.zip
Det kan bruges sasmmen med denne kode:
<?
$host = "localhost";
$user = "root";
$pass = "";
$link = mysql_connect($host, $user, $pass);
mysql_select_db("camp");
$tabel = "familycamp";
$sql_familieID = "SELECT familieID FROM $tabel ORDER BY familieID DESC";
$fam_ID = mysql_query($sql_familieID);
$familieID = (integer)mysql_fetch_array($fam_ID);
$familieID += 1;
$tabel2 = "persons";
$felter = "(dato, familielejr, beboelse, adresse, postnr, bynavn, land, tlfnr, email, civilstand, barnevagt, bemærkninger, familieID)";
$lejr = explode(" (", $_POST['familielejr']);
$vaerdier = " VALUES (";
$vaerdier .= "\"" . ereg_replace(')', '',$lejr[1]) ."\",";
$vaerdier .= "\"" . $lejr[0] ."\",";
$vaerdier .= "\"" . $_POST['beboelse']."\",";
$vaerdier .= "\"" . $_POST['adresse'] ."\",";
$vaerdier .= (integer)substr($_POST['postnr_by'], 0, 4) .",";
$vaerdier .= "\"" .substr($_POST['postnr_by'],5,strlen($_POST['postnr_by'])-5)."\",";
$vaerdier .= "\"" .$_POST['land']."\",";
$vaerdier .= $_POST['tlfnr'].",";
$vaerdier .= "\"" .$_POST['email']."\",";
$vaerdier .= "\"" .$_POST['civilstand']."\",";
if(!isset($_POST['Boernevagt'])) {
$vaerdier .= "\"off\",";
}else{
$vaerdier .= "\"" .$_POST['Boernevagt']."\",";
}
$vaerdier .= "\"" .$_POST['Bemaerkninger']."\", $familieID)";
mysql_query("INSERT INTO $tabel $felter $vaerdier") or die(mysql_error() . "<br>" . $vaerdier);
for($i = 1;$i < 3;$i++) {
$voksen = $_POST["navn".$i];
$voksenalder = $_POST["Foedselsdato".$i];
$sql_voksen = "INSERT INTO $tabel2 (navn,foedselsdato,koen,klassetrin,familieID) VALUES (\"$voksen\",\"$voksenalder\",\"NULL\",0,$familieID)";
mysql_query($sql_voksen) or die (mysql_error() ."<br>" .$sql_voksen);
}
for($i = 1;$i < 7;$i++) {
$barn = $_POST["Barn".$i."Navn"];
$barnalder = $_POST["Barn".$i."Foedselsdato"];
$barnkoen = $_POST["Barn".$i."Koen"];
$barnklasse = $_POST["Barn".$i."Klassetrin"];
$sql_barn = "INSERT INTO $tabel2(navn,foedselsdato,koen,klassetrin,familieID) VALUES ('$barn','$barnalder','$barnkoen',$barnklasse,$familieID)";
if(!$barn == "") {
mysql_query($sql_barn) or die (mysql_error());
}
}
mysql_close($link);
?>
| |
| Kommentar Fra : IvanMort |
Dato : 05-11-02 09:14 |
|
hej igen
Jeg ved ikke hvordan jeg kan bruge de filer du har lavet, det er ikke nogle filtyper jeg kan bruge
da det ikke er localt ( mysql ) min side ligger hos : www.web10.dk
men det er vel bare 2 tabels jeg skal lave : familycamp & persons
familtcamp : (dato, familielejr, beboelse, adresse, postnr, bynavn, land, tlfnr, email, civilstand, barnevagt, bemærkninger, familieID)
persons : (navn,foedselsdato,koen,klassetrin,familieID)
ellers ser det rigtig godt ud, mange tak for dit store arbejde, jeg skal nok snart Accepter dit svar... :)
| |
| Kommentar Fra : IvanMort |
Dato : 05-11-02 09:18 |
|
ok, jeg kan se du kun er Almindelig Bruger, så du er ikke uden efter point
du er bare en meget hjælpsom person, det er bare fedt....
| |
| Kommentar Fra : IvanMort |
Dato : 05-11-02 10:16 |
| | |
| Kommentar Fra : IvanMort |
Dato : 05-11-02 17:38 |
|
Når jeg tilmelde 1 person :
Duplicate entry '1' for key 1
INSERT INTO persons (navn,foedselsdato,koen,klassetrin,familieID) VALUES ("","","NULL",0,1)
når jeg tilmelde 3 personer :
Duplicate entry '2' for key 1
INSERT INTO persons (navn,foedselsdato,koen,klassetrin,familieID) VALUES ("Testnavn2","**-**-**","NULL",0,2)
så der kommer kun 1 person i table..
| |
| Kommentar Fra : karlosDK |
Dato : 05-11-02 21:29 |
|
Prøv at slette alle data i begge tabellerne igen, for den laver kludder i det med familieID, hvis det hele ikke virker første gang.
<?
mysql_query("DELETE * FROM familycamp");
mysql_query("DELETE * FROM persons");
?>
| |
| Godkendelse af svar Fra : IvanMort |
Dato : 06-11-02 09:02 |
|
Tak for svaret karlosDK.
Nu mangler jeg bare at sætte dem sammen igen :)
og dato er tilmeldingsdato ikke lejrdato, men det tror jeg
at jeg kan klare selv...
Mange tak..
| |
| Kommentar Fra : IvanMort |
Dato : 06-11-02 09:59 |
|
Hej igen
jeg ændre :
$vaerdier .= "\"" . ereg_replace(')', '',$lejr[1]) ."\",";
$vaerdier .= "\"" . $lejr[0] ."\",";
til :
$vaerdier .= "\"" . $_POST['dato']."\",";
$vaerdier .= "\"" . $_POST['familielejr']."\",";
og slette:
$lejr = explode(" (", $_POST['familielejr']);
men der kommer inge dato i table kun i maillen..
min table er følgne:
CREATE TABLE familycamp (
familieID int(10) NOT NULL auto_increment,
dato date NOT NULL default '0000-00-00',
familielejr text NOT NULL,
beboelse text NOT NULL,
adresse text NOT NULL,
postnr text NOT NULL,
bynavn text NOT NULL,
land text NOT NULL,
tlfnr text NOT NULL,
email text NOT NULL,
civilstand text NOT NULL,
boernevagt text NOT NULL,
bemaerkninger text NOT NULL,
PRIMARY KEY (familieID),
UNIQUE KEY familieID (familieID)
) TYPE=MyISAM;
jeg har også indsat :
$dato_array = getdate();
$dato = $dato_array["year"]."-".$dato_array["mon"]."-".$dato_array["mday"];
så datoen kommer på den rigtige måde...
og så er jeg ikke sikke på hvordan jeg skal gøre det så det virker som en table
| |
| Kommentar Fra : karlosDK |
Dato : 06-11-02 22:01 |
|
Hej igen:
Du skal nok ændre:
$vaerdier .= "\"" . $_POST['dato']."\",";
til:
$vaerdier .= "\"" . $dato."\",";
så tror jeg den er der.
| |
| Kommentar Fra : IvanMort |
Dato : 07-11-02 12:26 |
|
Ok, nu virker det hele, men hvordan får jeg sat det sammen, så det virker som en table?
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|