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
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());
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()); ?>
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..
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");
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());?>
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());
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.
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());
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...
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)
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..
$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 }
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 }
$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
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.
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.
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.
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.
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.
Synes godt om
Ny brugerNybegynder
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.