Avatar billede princewhite Nybegynder
04. september 2003 - 18:49 Der er 48 kommentarer og
1 løsning

Simpel database hjælp

Hejsa,

Beklager jeg er nødt til at spørge igen, men skal åbenbart bruge en SQL database. Jeg skal have det færdigt iaften da det skal bruges vedrørende et skole projekt så håber virkelig meget nogen kan hjælpe.. Har fået hjælp engang her

http://www.eksperten.dk/spm/394980

Men det blev til en acces.. Jeg har nu været nødt til at flytte over på friserverplads.dk og håber ekstremt meget nogen kan fortælle mig hvordan jeg får lavet ovenstående spørgsmål i mysql :)

Takker nok så mange gange

________________________
Opringeligt spørgsmål
_______________________

Jeg savner en der enten kan lave eller give en meget udførlig torturial til hvordan jeg laver en mysql/acces datase.

Databasen skal bruges således:

man skal kunne (som en formular)indtaste om man er for/imod (flueben) samt navn, adresse osv. når disse oplysninger submittes skal de bare lagres i en post i databasen.. Tror nu ikke det er så svært, men som fuldstændig grøn er det :)
Avatar billede detox Nybegynder
04. september 2003 - 18:57 #1
Bruger du ASP eller PHP?
Avatar billede princewhite Nybegynder
04. september 2003 - 19:01 #2
er mest til asp, men det er fuldstændigt underordnet....
Avatar billede detox Nybegynder
04. september 2003 - 19:15 #3
Ja, jeg er nu mere til php. Så hvis du kan bruge php, kan jeg godt hjælpe dig på vej. Har du oprettet database og tabel?
Avatar billede princewhite Nybegynder
04. september 2003 - 19:17 #4
hej igen, PHP er fint, har intet oprettet :) for jeg påtaget mig en opgave jeg håbede jeg kunne finde ud af / eller lære, men det ser ikke ud til det, ihvertfald ikke på så kort tid.. Derfor har jeg virkelig behov for hjælpe fra bunden :) håber det ok, og mange tak for hjælpen
Avatar billede detox Nybegynder
04. september 2003 - 19:24 #5
Ok, så håber jeg du har adgang til phpMyAdmin, da det vil forenkle processen noget. Jeg skal lige spise, måske du kunne se på den her side angående oprettelse af database:
http://www.webcafe.dk/artikler/sql/
Avatar billede princewhite Nybegynder
04. september 2003 - 19:27 #6
har luret dem men kan ikke finde sammenhængen mellem phpadmin og de artikler eller hvilket værktøj de laves i :)
men læser dem lige igen :)
Avatar billede detox Nybegynder
04. september 2003 - 19:58 #7
Jeg kan forstå du er på et webhotel. Så er der sikkert allerede opretttet en database og formentligt er det osse muligt at bruge phpMyAdmin eller lign.
Avatar billede princewhite Nybegynder
04. september 2003 - 20:02 #8
der er database uden tabeller g Phpmyadmin :)
Avatar billede detox Nybegynder
04. september 2003 - 20:04 #9
Jeg har genbrugt formen fra forrige spørgsmål med nogle få rettelser:

<html>
<head>
<Title>Er du for eller imod</title>
</head>
<body>
<form name="imod" method="post" action="imod.php" >
<table align="center" border="1" >
    <tr>
        <td>Er du for eller imod?</td>

        <td>for: <input name="valg" type="radio" value="for" checked>
        imod: <input name="valg" type="radio" value="imod"></td>
    </tr>
    <tr>
        <td>Navn: </td>
        <td> <input type="text"  name="navn" > </td>
    </tr>
    <tr>
        <td> Adresse: </td>
        <td> <input type="text"  name="adresse" > </td>
    </tr>
    <tr>
        <td> Postnummer: </td>
        <td> <input type="text"  name="postnummer" > </td>
    </tr>
    <tr>
        <td> Email: </td>
        <td> <input type="text"  name="email" > </td>
    </tr>
    <tr>
        <td> Land: </td>
        <td><input type="text"  name="land" > </td>
    </tr>
    <tr>
        <td> Alder: </td>
        <td><input type="text"  name="alder" ></td>
    </tr>
    <tr>
   
        <td colspan="2">
<input type="submit" value="Send den videre">

</td>
    </tr>
</table>
</form>
</body>
</html>
Avatar billede princewhite Nybegynder
04. september 2003 - 20:07 #10
ok, men hvordan skaber jeg databasen eller det kommer måske :)
Avatar billede detox Nybegynder
04. september 2003 - 20:11 #11
Du har en database, så du mangler bare en tabel. Gå i phpMyadmin og kør denne query:

CREATE TABLE `meniger` (
`id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`navn` VARCHAR( 30 ) NOT NULL ,
`adresse` VARCHAR( 50 ) NOT NULL ,
`postnr` SMALLINT( 4 ) UNSIGNED NOT NULL ,
`email` VARCHAR( 30 ) NOT NULL ,
`land` VARCHAR( 20 ) NOT NULL ,
`alder` TINYINT UNSIGNED NOT NULL ,
`valg` TINYINT( 1 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
Avatar billede princewhite Nybegynder
04. september 2003 - 20:20 #12
og nu spørger jeg sikker ekstremt dum, men hvor skal jeg køre den henne??
Avatar billede princewhite Nybegynder
04. september 2003 - 20:20 #13
doohh kom til at klippe din tekst med *G*
Avatar billede princewhite Nybegynder
04. september 2003 - 20:21 #14
nu er den oprettet helt fint, skal teksten som du har rettet så bare postes?
Avatar billede princewhite Nybegynder
04. september 2003 - 20:25 #15
nu ser det ud til at virke :) men kan du fortælle mig hvordan jeg trækker infoen ud af databasen?
Avatar billede detox Nybegynder
04. september 2003 - 20:27 #16
Ja, men vi mangler lige en side til at modtage dataene fra formen og smide dem i tabellen. I den forbindelse skal du connecte til databasen fra php, så der har du brug for brugernavn, password og databasenavn (som du naturligvis ikke skal poste her!).
Avatar billede princewhite Nybegynder
04. september 2003 - 20:29 #17
har alle tre dele :)
Avatar billede detox Nybegynder
04. september 2003 - 20:35 #18
Du kommer lige til at gå i phpMyAdmin og omdøbe tabellen. Den skal naturligvis hedde: 'meninger' og ikke 'meniger'. Så hvis du navigerer hen til tabellen i phpMyAdmin og vælger: 'operations' får du mulighed for at omdøbe.
Avatar billede detox Nybegynder
04. september 2003 - 20:37 #19
Jeg har ændret en smule mere i formen. Her er den reviderede udgave:

<html>
<head>
<Title>Er du for eller imod</title>
</head>
<body>
<form name="imod" method="post" action="imod.php" >
<table align="center" border="1" >
    <tr>
        <td>Er du for eller imod?</td>

        <td>for: <input name="valg" type="radio" value="1" checked>
        imod: <input name="valg" type="radio" value="0"></td>
    </tr>
    <tr>
        <td>Navn: </td>
        <td> <input type="text"  name="navn" > </td>
    </tr>
    <tr>
        <td> Adresse: </td>
        <td> <input type="text"  name="adresse" > </td>
    </tr>
    <tr>
        <td> Postnummer: </td>
        <td> <input type="text"  name="postnr" > </td>
    </tr>
    <tr>
        <td> Email: </td>
        <td> <input type="text"  name="email" > </td>
    </tr>
    <tr>
        <td> Land: </td>
        <td><input type="text"  name="land" > </td>
    </tr>
    <tr>
        <td> Alder: </td>
        <td><input type="text"  name="alder" ></td>
    </tr>
    <tr>
   
        <td colspan="2">
<input type="submit" name="submit" value="Send den videre">

</td>
    </tr>
</table>
</form>
</body>
</html>
Avatar billede detox Nybegynder
04. september 2003 - 20:40 #20
Og her er så imod.php

<?php
if (isset($_POST['submit'])) {
    foreach ($_POST as $val) {
        if ($val == "") echo "Alle felter skal være udfyldt!";
    }
    $valg = $_POST['valg'];
    $navn = $_POST['navn'];
    $adresse = $_POST['adresse'];
    $postnr = $_POST['postnr'];
    $email = $_POST['email'];
    $land = $_POST['land'];
    $alder = $_POST['alder'];
   
$s = mysql_connect("localhost", "brugernavn", "password") //her indsætter du dine data
      or die("Could not connect: " . mysql_error());
    $db = mysql_select_db('databasenavn') //og her dit navn på databasen
      or die("Ingen database " . mysql_error());
    $query = "INSERT INTO meninger VALUES ('', '$navn', '$adresse', $postnr, '$email', '$land', $alder, $valg)";
    mysql_query($query) or die(mysql_error());
    echo "Data er modtaget!";
}
?>
Avatar billede detox Nybegynder
04. september 2003 - 20:43 #21
Der mangler lidt validering på de modtagne data. Jeg har lavet et tjek på at alle felter er udfyldt, men ikke på om fx postnr eller alder reelt er tal.
Avatar billede princewhite Nybegynder
04. september 2003 - 20:45 #22
skal localhost erstattes?
Avatar billede detox Nybegynder
04. september 2003 - 20:45 #23
Nej
Avatar billede detox Nybegynder
04. september 2003 - 20:46 #24
formentlig ikke...
Avatar billede detox Nybegynder
04. september 2003 - 20:47 #25
Du kan så hive data ud af tabellen alt efter, hvordan du vil præsentere dem. Om du vil vise alle data eller måske en opgørelse over for/imod, etc.
Avatar billede princewhite Nybegynder
04. september 2003 - 20:51 #26
når jeg trykker submit nu sendes jeg ind imod.php som er en blank side, men ser ikke ud til at der registreres nogle data..
Avatar billede detox Nybegynder
04. september 2003 - 20:58 #27
Næ, den skulle gerne vise: "Data er modtaget!", hvis alt går som det skal. Du får ingen fejlmelding af nogen art?
Avatar billede princewhite Nybegynder
04. september 2003 - 20:58 #28
tror ikke det meningen, men i creat table står der "meniger" men i imod.php står der "INTO meninger" -- altså med N

Har prøvet at erstatte det, men uden held..
Avatar billede detox Nybegynder
04. september 2003 - 21:00 #29
Du så åbenbart ikke mit indlæg kl. 20.35
Avatar billede princewhite Nybegynder
04. september 2003 - 21:01 #30
har den fået til at virke nu :) weeee... Ved du kan man bare lave nogle af menuerne om, såsom land, således man får valgmuligheder, uden at skulle ændre alt muligt andet ??
Avatar billede princewhite Nybegynder
04. september 2003 - 21:02 #31
Lol sorry.. den røg altså i farten, beklager meget.. smider du også lige et svar så du kan få points :)
Avatar billede detox Nybegynder
04. september 2003 - 21:04 #32
Hedder den nu 'meninger' eller 'meniger'? Hvad vil du ændre, jeg er ikke helt med?
Avatar billede princewhite Nybegynder
04. september 2003 - 21:04 #33
hehe ændrede det til meniger, og så virkede det :)
Avatar billede detox Nybegynder
04. september 2003 - 21:06 #34
Her et lille eksempel på hvordan du kan hive resultater ud fra tabellen:

<?php
$s = mysql_connect("localhost", "brugernavn", "password")
      or die("Could not connect: " . mysql_error());
    $db = mysql_select_db('databasenavn')
      or die("Ingen database " . mysql_error());

$query = "SELECT COUNT(*) FROM meninger";
$res = mysql_query($query) or die(mysql_error());
$antal = mysql_result($res,0);
$query = "SELECT SUM(valg) FROM meninger";
$res = mysql_query($query) or die(mysql_error());
$for = mysql_result($res,0);
$imod = $antal-$for;
echo "For: $for<br />Imod: $imod";
?>
Avatar billede detox Nybegynder
04. september 2003 - 21:07 #35
'meniger' LOL - ja, hvorfor ikke. Men så husk at rette det i mit sidste eksempel osse!
Avatar billede detox Nybegynder
04. september 2003 - 21:10 #36
Et helt andet aspekt er om man skal have lov at stemme flere gange.
Avatar billede princewhite Nybegynder
04. september 2003 - 21:24 #37
smider du lige et svar?? :) så du kan få point altså.. ved du om man eksportere data til en almideligt access database?
Avatar billede detox Nybegynder
04. september 2003 - 21:30 #38
Ok. Det mener jeg godt du kan. Jeg har prøvet det den modsatte vej. Der brugte jeg mysqlfront, hvor der så skulle oprettes forbindelse til begge databaser. Derefter var det rimeligt enkelt at eksportere. Så man kan vel osse den anden vej. En anden mulighed er måske at lave et dump fra phpMyAdmin i fx csv, hvis altså access kan læse en komma (eller tabulator) separeret fil.
Avatar billede princewhite Nybegynder
04. september 2003 - 21:32 #39
ok vil jeg prøve.. Bliver nødt til at spørge om den sidste ting :) er det muligt f.ex. at lave en option i land således at lande kan vælges udfra en liste?
Avatar billede detox Nybegynder
04. september 2003 - 21:36 #40
Ja, det kan man godt. Hvilke lande skal med?
Avatar billede princewhite Nybegynder
04. september 2003 - 21:41 #41
alle de europæiske og scandinaviske og en others. Men hvis du gider kan du bare sige hvad jeg skal gøre :) takker
Avatar billede detox Nybegynder
04. september 2003 - 21:44 #42
Jeg har tilfældigvis en tabel med 209 lande. Den har du brug for jeg prøver lige at ligge den op til download.
Avatar billede princewhite Nybegynder
04. september 2003 - 21:50 #43
det ville være super cool :)
Avatar billede detox Nybegynder
04. september 2003 - 21:50 #44
Avatar billede detox Nybegynder
04. september 2003 - 21:51 #45
Den skal du så bare importere v.h.a. phpMyAdmin.
Avatar billede detox Nybegynder
04. september 2003 - 21:53 #46
Så har jeg rettet formen til:

<html>
<head>
<Title>Er du for eller imod</title>
</head>
<body>
<form name="imod" method="post" action="imod.php" >
<table align="center" border="1" >
    <tr>
        <td>Er du for eller imod?</td>

        <td>for: <input name="valg" type="radio" value="1" checked="checked" />
        imod: <input name="valg" type="radio" value="0" /></td>
    </tr>
    <tr>
        <td>Navn: </td>
        <td> <input type="text"  name="navn"/> </td>
    </tr>
    <tr>
        <td> Adresse: </td>
        <td> <input type="text"  name="adresse" /> </td>
    </tr>
    <tr>
        <td> Postnummer: </td>
        <td> <input type="text"  name="postnr" /> </td>
    </tr>
    <tr>
        <td> Email: </td>
        <td> <input type="text"  name="email" /> </td>
    </tr>
    <tr>
        <td> Land: </td>
        <td><select name="land">
<?
$s = mysql_connect("localhost", "sveegaard", "h.2OWYmYe")
    or die("Could not connect: " . mysql_error());
$db = mysql_select_db('sveegaard')
    or die("Ingen database " . mysql_error());
    $res = mysql_query("SELECT land FROM ip_lk") or die(mysql_error());
    while ($row = mysql_fetch_assoc($res)) {
        $land = $row['land'];
?>
        <option value="<?=$land?>"><?=$land?></option>
<? }?>
        </select></td>
    </tr>
    <tr>
        <td> Alder: </td>
        <td><input type="text"  name="alder" /></td>
    </tr>
    <tr>
   
        <td colspan="2">
<input type="submit" name="submit" value="Send den videre" />

</td>
    </tr>
</table>
</form>
</body>
</html>

NB: Husk den skal hedde .php til efternavn.
Avatar billede detox Nybegynder
04. september 2003 - 21:59 #47
Hmm, du skal selvfølgelig have rettet, der hvor jeg har indsat mit brugernavn og kode (som jeg lige har ændret! - hehe)
Avatar billede detox Nybegynder
04. september 2003 - 22:19 #48
Her er osse lige en tilføjelse til modtag.php, der tjekker om postnr og alder er tal:

<?php
if (isset($_POST['submit'])) {
    foreach ($_POST as $val) {
        if ($val == "") {
            echo "Alle felter skal være udfyldt!";
            die();
        }
    }
    $valg = $_POST['valg'];
    $navn = $_POST['navn'];
    $adresse = $_POST['adresse'];
    $postnr = $_POST['postnr'];
    $email = $_POST['email'];
    $land = $_POST['land'];
    $alder = $_POST['alder'];
    if (!is_numeric($postnr) || !is_numeric($alder)) {
        echo "Postnr. og alder skal være tal!";
        die();
    }
   
    $s = mysql_connect("localhost", "bruger", "pass") //*** Rettes!
      or die("Could not connect: " . mysql_error());
    $db = mysql_select_db('database')//*** Rettes!
      or die("Ingen database " . mysql_error());
    $query = "INSERT INTO meniger VALUES ('', '$navn', '$adresse', $postnr, '$email', '$land', $alder, $valg)";
    mysql_query($query) or die(mysql_error());
    echo "Data er modtaget!";
}else{
    echo "submit er ikke sat!";
}
?>
Avatar billede detox Nybegynder
04. september 2003 - 23:04 #49
Spiller det?
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