Avatar billede macho Praktikant
01. juli 2004 - 00:35 Der er 10 kommentarer og
1 løsning

Opdatering af felter i database via en hjemmeside?

Hej experter,

jeg har en deltagerliste over et motionsløb i en tabel i MySql. Koden ser sådan her ud (i php):

<?php

$db = mysql_connect("mysql.cliche.dk", "navn", "password");

mysql_select_db("db",$db);

$result = mysql_query("SELECT * FROM tabel WHERE distance=250 ORDER BY koen DESC, foedeaar DESC",$db);

echo "<table cellpadding=0 cellspacing=3 border=0><tr><td><u>Gender</u></td><td><u>Last Name</u></td><td><u>First Name</u></td><td><u>Year of Birth</u></td><td><u>Club</u></td><td><u>Country</u></td><td><u>Running Time</u></td></tr>";

$alternate = "2";

while($myrow = mysql_fetch_row($result)) {

$field1 = $myrow["7"];

$field2 = $myrow["1"];

$field3 = $myrow["0"];

$field4 = $myrow["6"];

$field5 = $myrow["9"];

$field6 = $myrow["5"];

$field7 = $myrow["16"];

if ($alternate == "1") {

$color = "#ffffff";

$alternate = "2";

}

else {

$color = "#eaeaea";

$alternate = "1";

}

echo "<tr bgcolor=$color><td>$field1</td><td>$field2</td><td>$field3</td><td>$field4</td><td>$field5</td><td>$field6</td><td>$field7</td></tr>";

}

echo "</table>";

?>


Nu til mit spørgsmål: Hvordan kan jeg lave en opdatering af felterne i databasen via en hjemmeside? Det er vel noget med UPDATE og INSERT, men jeg aner ikke, hvordan jeg skal få hul på bylden!

Jeg smider gerne flere pts. af, hvis det kan hjælpe på lysten til at svare og yde bistand.
Avatar billede jaw Nybegynder
01. juli 2004 - 01:25 #1
Hvad er det du vil have opdateret? Hvis vi nu laver et eksempel, f.eks. med en form, hvor den værdi i formen vil du have opdateret i det felt i din tabel, der hedder felt1 hvor id-nummeret er 1:

$opdatering = $_POST['opdatering'];
mysql_query("UPDATE tabel SET felt = '$opdatering' WHERE id = '1'");
Avatar billede macho Praktikant
01. juli 2004 - 01:33 #2
Det jeg skal have opdateret er "Running Time": $field7 = $myrow["16"];

Men hvordan sætter jeg det op i en form. Hvor har du id-nummer fra? id-nummer er ikke noget jeg har i db'en.
Avatar billede jaw Nybegynder
01. juli 2004 - 01:36 #3
Nå nej, det var jo også bare et eksempel :)

Men hvis du ikke har noget id-nummer, hvordan vil du så have at den skal finde frem til den rigtige række? Har du et felt der er specifikt, altså f.eks. et navn eller noget?

Og hedder feltet i db'en "Running Time"?
Avatar billede macho Praktikant
01. juli 2004 - 01:39 #4
I db'en har jeg ét specifikt felt, nemlig "startnr".
Feltet, som skal opdateres hedder ikke "Running Time" i db'en, men: "sluttid".
Avatar billede jaw Nybegynder
01. juli 2004 - 01:46 #5
Ok, hvis vi så laver endnu et ekspempel:

--siden med forms:--

<form action='opdater.php' method='post'>
Sluttid:<input type='text' name='slut_tid'>
Startnr.:<input type='text' name='startnummer'>
<input type='submit' name='submit' value='opdater'>
</form>

--opdater.php--
<?

//connect

$startnummer = $_POST['startnummer'];
$slut_tid = $_POST['slut_tid'];

$q = mysql_query("SELECT sluttid FROM tabel WHERE startnr = '$startnummer'")
$row = mysql_fetch_array($q);

$ny_sluttid = $row[sluttid] + $slut_tid;
mysql_query("UPDATE tabel SET sluttid = '$ny_sluttid' WHERE startnr = '$startnummer'");

?>

eller anden metode (nok nemmere):

$startnummer = $_POST['startnummer'];
$slut_tid = $_POST['slut_tid'];

mysql_query("UPDATE tabel SET sluttid = sluttid + $slut_tid WHERE startnummer = '$startnummer'");

Prøv dem af :)
Avatar billede jaw Nybegynder
01. juli 2004 - 01:48 #6
går ud fra, at opdatering ikke skal indsætte en ny sluttid, men lægge sluttiden til den sluttid der allerede står i databasen, ikke?
Avatar billede macho Praktikant
01. juli 2004 - 02:26 #7
Opdateringen skal rent faktisk erstatte den default værdi, som allerede står i feltet: "00:00:00".
Avatar billede jaw Nybegynder
01. juli 2004 - 02:28 #8
Så kan du bare nøjes med:

<?

//connect

$startnummer = $_POST['startnummer'];
$slut_tid = $_POST['slut_tid'];

mysql_query("UPDATE tabel SET sluttid = '$ny_sluttid' WHERE startnr = '$startnummer'");

?>
Avatar billede macho Praktikant
01. juli 2004 - 04:07 #9
Det virker jo helt perfekt! - Dog måtte jeg rette '$ny_sluttid' til '$slut_tid' før det spillede!

Giv mig et svar, så du kan få dine pts. - Tusind tak for hjælpen!
Avatar billede jaw Nybegynder
01. juli 2004 - 04:08 #10
hehe, godt godt :) Så siger jeg også tak :)
Avatar billede macho Praktikant
01. juli 2004 - 04:34 #11
Så blev det også køjetid - hygge og snorke zzzzz....
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