Avatar billede tenniscamp Nybegynder
26. januar 2009 - 14:40 Der er 41 kommentarer og
2 løsninger

Oversigt over tilmeldte via MySQL og webformular udfyldning

Liste over tilmeldte, som hentes ud fra en webformular der oprettes.
Avatar billede tenniscamp Nybegynder
26. januar 2009 - 14:41 #1
LIDT MERE INFO:

som så kunne sende personens udfyldte data til en liste, som kunne vises på hjemmesiden - altså på min http://www.tenniscamp.dk/tak.php er der et link, hvor der står "Klik her for at se oversigt over deltagere og så kan man så se en liste over deltagere på de forskellige camps.. Det skal dog være uden al mulig database, da det ikke er muligt
Avatar billede tenniscamp Nybegynder
26. januar 2009 - 14:43 #2
History(spørgsmålet opstod i forbindelse med hjælp til andet spørgsmål)

umiddelbart vil jeg ikke mene at det er nemmere i en fil, da der skal hentes forskellige ting (gruppe og navn), som skal sorteres og grupperes.

jeg synes du skal prøve at tage et kig på www.phpartikler.dk - hvor du kan lære det grundlæggende omkring php & mysql. og så kan du oprette et nyt spørgsmål omkring den liste, når du synes du er klar til at gå igang :) også for ikke at får blandet det hele ind i denne tråd, da den jo egentlig kun omhandler dit problem med at sende mails :)
Kommentar: tenniscamp
26/01-2009 13:22:38 ok. men kunne man forestille sig, at jeg så kunne få fat i dig, når tiden er til det.. Fordi jeg kan godt se, at så bliver det ikke op til denne sæson, at jeg får det med databasen klar :) Da det her TennisCamp er en forening vi driver ved siden af vores rigtige arbejde..
Kommentar: tenniscamp
26/01-2009 13:37:14 lige en enkelt ting til det her database..

Har lige kigget lidt på det og det virker jo meget simpelt, som det står der..

kan jeg putte de ting ind i samme php fil altså min sendmail.php..

Altså det med at åbne databasen og indsætter dataen..
Kommentar: splazz
26/01-2009 13:53:18 ja, det ville nemlig være det smarteste, altså at ordne både mail-afsendelse og oprettelse i database på én gang.

det er faktisk ret simpelt.
Kommentar: tenniscamp
26/01-2009 13:57:01 ja, det virker ret simpelt..

Der er nogle ting, som jeg ikke helt fanger.. fx
mysql_select_db("databasenavn") or die(mysql_error());

men selve databasen (databasenavnet).. altså "filen" eller hvad  det nu kaldes.. hvor kan jeg se den..
Kommentar: splazz
26/01-2009 14:12:59 som regel har man en database til rådighed, hvor du kan oprette alle de tabeller du har lyst til.

databasenavn får du af din udbyder og der er som regel også et grafisk brugerinterface til at administrere databasen.

har du ikke fået nogle oplysninger omkring databasen sammed med kode osv. til ftp?
Kommentar: tenniscamp
26/01-2009 14:39:04 Ok.. så langt så godt.. Nu har jeg oprettet en tabel i min database.. oprettelsen skete samtidig med at jeg udfyldte min formular.. men vil den tabel så bliver oprettet hver gang en person udfylder min formular..??

Og.. hvis jeg nu vil have den til at læse felterne som udfyldes.. bruger jeg så det her .$_POST igen?? se nedenstående:

mysql_query("INSERT INTO personer (fornavn, efternavn) VALUES (.$_POST['Bnavn'].)") OR DIE(mysql_error());

Måske jeg lige skal oprettet et andet spørgsmål..
Avatar billede tenniscamp Nybegynder
26. januar 2009 - 15:03 #3
Nu prøvede jeg bare at se om jeg kunne få noget data ind i tabellen, som jeg kan se er oprettet helt fint.. men der kommer ikke umiddelnbart noget data i tabellen.. jeg ved i hvert fald ikke hvor henne jeg skulle kunne se det nogen steder. Jeg har gjort som følgende

mysql_query("CREATE TABLE personer(
    id INT AUTO_INCREMENT,
    navn VARCHAR(50),
    alder INT(3),
    email VARCHAR(50),
    PRIMARY KEY(id)
)") OR DIE(mysql_error());

mysql_query("INSERT INTO personer (navn) VALUES ('Anders')") OR DIE(mysql_error());



Iøvrigt, så har jeg vel egentlig nu mit brugernavn og password til min database liggende frit for alle ude på nettet ?? ved at jeg har den her:

<?php
mysql_connect("server", "brugernavn", "password") or die(mysql_error());
?>
Avatar billede tmi Nybegynder
26. januar 2009 - 15:09 #4
Iøvrigt, så har jeg vel egentlig nu mit brugernavn og password til min database liggende frit for alle ude på nettet ?? ved at jeg har den her:

<?php
mysql_connect("server", "brugernavn", "password") or die(mysql_error());
?>


Nej, det har du ikke =)

Kunne ikke lige overskue at læse det hele, kan du måske formulere dine spørgsmål lidt mere kortfattet?

Ved ikke præcist om det er det her du leder efter, men hvis du vil have dit data ud igen så kør fx:

$q = mysql_query("SELECT * FROM personer ORDER BY navn");
while ($d = mysql_fetch_assoc($q)) print_r($d);
Avatar billede tenniscamp Nybegynder
26. januar 2009 - 15:36 #5
1. hvorfor har jeg ikke mit brugernavn og password offentligt tilgængeligt? Det er jo i den fil jeg kalder.. ??

2. lige nu er mit problem bare at prøve at få noget data ind i tabellen.. Jeg har nu slettet min tabel igen, men nu vil den ikke blive oprettet igen.. eller også er min server bare ekstrem ekstrem forsinket..
Avatar billede tmi Nybegynder
26. januar 2009 - 15:50 #6
Altså, du kan jo ikke downloade selve PHP koden, du kan jo kun downloade det PHP koden producerer. Derfor er al din kode hemmelig, medmindre andre har adgang til filerne på serveren, så kan de selvfølgelig se den. Hvis du kan se dit PHP kode, så har du nok ikke installeret PHP ;-)

Prøv det her:

// create test table:
mysql_query("CREATE TABLE tmi_test (a VARCHAR(20) NOT NULL, b VARCHAR(20) NOT NULL);");
// populate:
mysql_query("INSERT INTO tmi_test (a, b) VALUES('A1', 'B1');");
mysql_query("INSERT INTO tmi_test (a, b) VALUES('A2', 'B2');");
// read from:
$q = mysql_query("SELECT * FROM tmi_test;");
while ($d = mysql_fetch_assoc($q)) {
echo "felt a: ".$d['a'].", felt b: ".$d['b']."<br />";
}
// delete table
mysql_query("DROP TABLE tmi_test");
Avatar billede tenniscamp Nybegynder
26. januar 2009 - 15:55 #7
Lige nu prøver jeg at se om jeg med lidt held kan lave en tabel igen, som jeg har lykkedes med en gang..

Jeg gør sådan her.

mysql_connect("server", "brugernavn", "password") or die(mysql_error());
mysql_select_db("tenniscamp_dk") or die(mysql_error());


mysql_query("CREATE TABLE tilmeldte(
    id INT AUTO_INCREMENT,
    navn VARCHAR(50),
    adresse VARCHAR(50,
    alder INT(3),
    email VARCHAR(50),
    PRIMARY KEY(id)
)") OR DIE(mysql_error());?>
Avatar billede tenniscamp Nybegynder
26. januar 2009 - 15:57 #8
men det virker ikke rigtigt.. der kommer ikke nogen tabel når jeg logger ind i mit database admin værktøj der følger med one.com
Avatar billede tmi Nybegynder
26. januar 2009 - 16:15 #9
Du har skrevet forkert, prøv:

mysql_query("CREATE TABLE tilmeldte(
    id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    navn VARCHAR(50) NOT NULL,
    adresse VARCHAR(50) NOT NULL,
    alder INT(3) NOT NULL,
    email VARCHAR(50) NOT NULL
)") OR DIE(mysql_error());
Avatar billede majbom Novice
26. januar 2009 - 20:13 #10
du kan oprette tabellen inde i phpmyadmin, der er ingen grund til at skrive kode til det når du erpå dit niveau, det andet er nemmere :)
Avatar billede tmi Nybegynder
26. januar 2009 - 20:24 #11
phpMyAdmin er den værste gang lort der nogen sinde er blevet lavet. Sorry.
Avatar billede majbom Novice
26. januar 2009 - 20:58 #12
-> tmi - well, jeg kan nu godt finde ud af at bruge det, og det har virket fint til alle de formål jeg har skulle bruge det.

det er meget muligt at det ikke er det fedeste hvis man er top professionel, men det er jeg sq langt fra, så jeg klarer mig.

har du nogle bedre alternativer? (grafiske)
Avatar billede majbom Novice
26. januar 2009 - 20:58 #13
og du skal ikke undskylde, det er ikke mig der har lavet det ;)
Avatar billede tmi Nybegynder
26. januar 2009 - 21:38 #14
Nej har ikke nogle grafiske alternativer, men phpMyAdmin er så sindsygt langsomt at man skulle tro det var løgn, og så bliver man logget ud hele tiden. Men anyway bør man kunne skrive alle SQL kommandoer selv, først som sidst, da det giver en meget bedre forståelse af hvad man egentligt foretager sig. Og hvis dit projekt er bare lidt seriøst er det jo ret essentielt at det bygger på en solid base, der kan skalere i fremtiden.
Avatar billede tenniscamp Nybegynder
26. januar 2009 - 22:03 #15
Mit projekt er nu seriøst nok, men man må også sætte det op i mod hvem vores målgruppe og hvad vores tid er til en lille del af vores samlede projekt, så hvis jeg kan lette vejen nogle steder, så gør jeg det gerne.

MEN.. Nu har jeg oprettet en tabel i selve phpMyAdmin - umiddelbart rigtig nok tror jeg og så har jeg kørt min min kode.. men jeg kan ikke se i phpMyAdmin at den data der skulle komme ind kommer ind i min tabel.

mysql_connect("localhost", "XXXXX", "XXXXXX") or die(mysql_error());
mysql_select_db("tenniscamp_dk") or die(mysql_error());


mysql_query("INSERT INTO tilmeldinger(Navn, Alder, Email, Telefon, Pakke) VALUES ('Søren', '31', 'xxxx@xxx.com', '22334455', '3')") OR DIE(mysql_error());
Avatar billede tmi Nybegynder
26. januar 2009 - 22:10 #16
Prøv at køre din INSERT i phpMyAdmin's SQL-felt, og se om den virker der. Hvis den gør det, så skal den også virke i PHP.
Avatar billede tenniscamp Nybegynder
26. januar 2009 - 22:19 #17
Det giver nogle fejl, men som jeg nok kan løse, men hvor henne i programmet ser jeg mine værdier.. Jeg kan kun se feltnavnene..
Avatar billede tenniscamp Nybegynder
26. januar 2009 - 22:24 #18
ok.. nu har jeg fundet et sted hvor jeg kan se værdierne..

men sø bør det jo også virke ude på nettet
Avatar billede tenniscamp Nybegynder
26. januar 2009 - 22:29 #19
ok.. nu virker det sgu.. nu kommer det også via nettet...

Så er det problemet med at hente fra min webformular i stedet for selv at udfylde VALUES..

kan jeg bruge:

mysql_query("INSERT INTO personer (Navn) VALUES (.$_POST['Bnavn'].)");
Avatar billede tmi Nybegynder
26. januar 2009 - 22:31 #20
mysql_query("INSERT INTO personer (Navn) VALUES ('".$_POST['Bnavn']."')");
Avatar billede majbom Novice
27. januar 2009 - 08:05 #21
mysql_query("INSERT INTO personer (Navn) VALUES ('".$_POST['Bnavn']."')") or die(mysql_error());
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 08:30 #22
Ok, det ser jo fint ud, men hvad så når jeg har behov for mere end bare navnet: mysql_query("INSERT INTO Tilmeldinger(Navn, Alder, Email, Telefon, Pakke) VALUES

kan den selv finde ud af at Bnavn = feltet Navn i min database tabel.. osv...
Avatar billede majbom Novice
27. januar 2009 - 09:23 #23
mysql_query("INSERT INTO personer (Navn, Alder) VALUES ('".$_POST['Bnavn']."', '".$_POST['Alder']."')") or die(mysql_error());

den indsætter i den række følge som de står i, så de skal stå i samme rækkefølge i første parantes (hvor du skriver navnene på rækkerne) og i anden parantes (hvor du skriver værdierne)
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 09:36 #24
ok.. cool.. så er jeg jo ved at have den på plads.. og tror også at jeg nogenlunde er med på hvordan jeg skal bruge sql for at trække dataen ud.. og her kan jeg jo få phpadmin til at lave php koden.. MEN..

Hvordan gør jeg så det kommer frem på en webside.. altså jeg går udfra at jeg på en eller anden måde skal kalde den her sql.php ting..
Avatar billede majbom Novice
27. januar 2009 - 09:51 #25
f.eks.:

$res = mysql_query("SELECT * FROM personer") or die(mysql_error()); //henter alle rækker fra tabellen personer

while($tilmeldte = mysql_fetch_assoc($res)){ //løber de hentede rækker igennem
  echo "Navn: ".$tilmeldte['Bnavn']." - Email: ".$tilmeldte['email']."<br>"; //udskriver navn og email for hver enkelt række
}
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 09:58 #26
ok.. så den kode sætter jeg bare ind på en ny side, som jeg så kan lave et link til og så kommer det bare frem..

du bruger Bnavn.. kan jeg se.. det er "koden" fra min webformular, men det skal vel bare være navn, som er det feltnavn jeg bruger i tabellen?
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 10:10 #27
Ok, det virker.. når jeg lige sætter feltnavnet ind.. så det er jo lækkert nok

MEN :)

Kan man på en eller anden måde få det præsenteret pænt.. altså i en tabel eller noget. Nu her ser det jo lidt rodet ud..
Avatar billede majbom Novice
27. januar 2009 - 10:20 #28
ja det er jo bare at skrive det ud som en tabel:

echo "<tabel><tr><th>navn</th><th>email</th></tr>\n";
while($tilmeldte=mysql_fetch_assoc($res)){
  echo "<tr><td>".$tilmeldte['navn']."</td><td>".$tilmeldte['email']."</td></tr>\n";
}
echo "</table>\n";
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 10:24 #29
ok.. ja det var jo ikke så svært.. Cool - tusind tak

Jeg vil gerne give jer begge lidt point, så et svar ville være fint
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 10:38 #30
En ting dog.. den her table fucker desværre lidt resten af min design op, da der nu er en tabel inde i en tabel osv..

Jeg troede man kunne gøre sådan her
echo "<tabel BORDER=3 WIDTH=40%>

men det lader ikke til at virke
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 10:44 #31
Fandt ud af det.. der var stavefejl i table..
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 10:57 #32
Final question

Hvis jeg nu skal have det delt op sådan, så tilmeldinger bliver vist i forhold til hvilken camp, er det så på følgende måde:

$res = mysql_query("SELECT * FROM Tilmeldinger WHERE Camp=Naestved") or die(mysql_error()); //henter alle rækker fra tabellen personer

Håber er her, at den gerne skulle vise alle tilmeldinger i tabellen Tilmeldinger og kolonnen Camp som er lige med næstved.. er det korrekt?
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 11:21 #33
Ok - det problem har jeg løst.. ved at læse på phpartikler..

Problemet er bare nu, at der ikke kommer nogen frem - og der er en person i tabellen.

Det ser ud som følgende:

$res = mysql_query("SELECT * FROM Tilmeldinger Where Camp='Naestved'") or die(mysql_error()); //henter alle rækker fra tabellen personer

while($tilmeldte = mysql_fetch_assoc($res)){ //løber de hentede rækker igennem
  echo "<table BORDER=3 WIDTH=60%><tr><th>Navn</th><th>Email</th></tr>\n";
while($tilmeldte=mysql_fetch_assoc($res)){
  echo "<tr><td>".$tilmeldte['Navn']."</td><td>".$tilmeldte['Email']."</td></tr>\n";
}
echo "</table>\n"; //udskriver navn og email for hver enkelt række
}
Avatar billede tmi Nybegynder
27. januar 2009 - 12:54 #34
$res = mysql_query("SELECT * FROM Tilmeldinger Where Camp='Naestved'") or die(mysql_error()); //henter alle rækker fra tabellen personer

echo "<table BORDER=3 WIDTH=60%><tr><th>Navn</th><th>Email</th></tr>\n";
while($tilmeldte=mysql_fetch_assoc($res)){
  echo "<tr><td>".$tilmeldte['Navn']."</td><td>".$tilmeldte['Email']."</td></tr>\n";
}
echo "</table>\n"; //udskriver navn og email for hver enkelt række
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 13:20 #35
kan ikke lige se hvad du ændrede som havde en betydning, men nu virker det i hvert fald..

Men nu er den side jeg har lavet det på jo offentlig tilgængelig.. og dermed også min kode.. så er der ikke en mulighed for at kalde det her php-del, som henter dataen fra min database.. sådan så det er lidt mere adskilt.
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 13:21 #36
Altså lige som jeg gør her i forbindelse med min webform

<FORM method="post" action="sendmail.php">
Avatar billede tmi Nybegynder
27. januar 2009 - 13:28 #37
www.php.net/include

Men tror du ikke det er nemmere hvis du finder en tutorial på nettet der lærer dig at arbejde med MySQL i PHP, i stedet for at stille så basale spørgsmål? For du forstår jo tydeligvis intet hvad det egentligt er du gør.
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 14:06 #38
lad mig sige det sådan her..
Nej, overordnet set forstår jeg nok ikke alt indenfor php og MySQL, men jeg forstår allerede nu langt mere end jeg gjorde i går.. og jeg skal nok langsomt lære mere, men egentlig behøver jeg ikke så meget mere end det jeg har nu.

Jeg beklager mange gange for mine basale spørgsmål og at det fremgår at jeg intet ved..

Jeg er dog meget tilfreds for den hjælp jeg har fået.. og har selv nu fået sat det op som jeg gerne ville med en oversigt for hver camp. så takker... smid gerne et svar.
Avatar billede tenniscamp Nybegynder
27. januar 2009 - 14:07 #39
og.. jeg havde da slet ikke tænkt over at jeg selvfølgelig kan bruge include.. den bruger jeg tre andre steder også.. ja ja.. tænk før man spørg..
Avatar billede tmi Nybegynder
27. januar 2009 - 14:18 #40
Det er i orden, hvis du får flere spørgsmål til PHP bør du nok spørge i PHP afdelingen, det her forum drejer sig jo om MySQL.
Avatar billede majbom Novice
27. januar 2009 - 15:06 #41
da du har flere camps, ville du kunne hente alle tilmeldte i samme query ved at bruge "ORDER BY Camp"

så vil den sortere efter Camp, så de kommer samlet for hver camp.

når du så løber du rækker igennem, tjekker du hver gang for om Camp er det samme som det var i foregående række, og hvis den ikke er, laver du en eller anden form for opdeling og skriver Camp ud som titel.
Avatar billede majbom Novice
27. januar 2009 - 15:07 #42
jeg ved ikke om det er så godt forklaret, men du er jo god til at melde tilbage, hvis du ikke lige er med :)
Avatar billede tenniscamp Nybegynder
28. januar 2009 - 09:43 #43
Jeg har brugt order by til at sortere efter navn, så det er nemmere at finde sig selv, da der kommer ret mange tilmeldinger til nogle camps.
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