Avatar billede deicer Nybegynder
22. februar 2011 - 13:45 Der er 7 kommentarer og
1 løsning

Funktion i en form

Hej eksperter

Jeg har en stump PHP kode, hvor jeg henter data fra en tabel og viser det til brugeren:

echo "<table border='1'>
<tr>
<th>Kursus</th>
<th>Ledige pladser</th>

</tr>";

while($row = mysql_fetch_array($result))

{
  echo "<tr>";
  echo "<td>" . $row['KursusNavn'] . "</td>";
  echo "<td>" . $row['Antal'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

Jeg vil gerne lave det således at nå man trykker på Antal tallet, så trækker den 1 fra og opdatere tabellen og viser det nye tal, men hvordan griber jeg dette an?

F.eks
Kursusnavn:  LærPHP
Antal:        15

(Når jeg trykker på "15", så opdateres 'Antal' til 14, og den viser nu:

Kursusnavn:  LærPHP
Antal:        14

Selve 'Antal' feltet skal laves til et link, og der skal på en-eller-anden måde laves en funktion til dette, men hvordan?
Avatar billede jarner Nybegynder
22. februar 2011 - 14:12 #1
Det ville være en fordel at have et unikt id tilknyttet hver række i din tabel i databasen.

Så kunne det være noget a la

while($row = mysql_fetch_array($result))

{
  echo "<tr>";
  echo "<td>" . $row['KursusNavn'] . "</td>";
  echo "<td><a href='dinside.php?traekfra=1&id='" . $row['Id'] . "'>" . $row['Antal'] . "</a></td>";
  echo "</tr>";
  }
echo "</table>";

i Toppen af koden kan du så køre din forespørgsel på tabellen der trækker fra, noget lign:

if (isset($_GET[traekfra]) && $_GET[traekfra]>0){
Kør din mysql kode her - UPDATE tabel SET antal = antal - 1 WHERE id = $_GET[id]
}

Det kan gøres på mange andre måder også. Kan måske være en fordel at gøre med POST-variable i stedet.
Avatar billede deicer Nybegynder
22. februar 2011 - 14:24 #2
Hej jarner

Tak for svaret. Jeg har allerede et unikt id (KursusID) på tabelen.

Min kode ser nu således ud:

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

 
  if (isset($_GET[traekfra]) && $_GET[traekfra]>0)
  {
  mysql_select_db("kurser_db", $con);
mysql_query("UPDATE kurser SET antal = antal - 1 WHERE id = $_GET[kursusID]");
    }
 
  mysql_select_db("kurser_db", $con);

$result = mysql_query("SELECT * FROM kurser");

echo "<table border='1'>
<tr>
<th>Kursus</th>
<th>Ledige pladser</th>

</tr>";

while($row = mysql_fetch_array($result))

{
  echo "<tr>";
  echo "<td>" . $row['KursusNavn'] . "</td>";
    echo "<td><a href='kurser.php?traekfra=1&kursusID='" . $row['kursusID'] . "'>" . $row['Antal'] . "</a></td>";
  //echo "<td>" . $row['Antal'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>

Men jeg får denne fejl :

Use of undefined constant traekfra - assumed 'traekfra'

Mvh
Theis
Avatar billede deicer Nybegynder
22. februar 2011 - 14:46 #3
Je mener selvfølgelig:

.....mysql_query("UPDATE kurser SET antal = antal - 1 WHERE kursusID= $_GET[kursusID]")

Men samme fejl er der forsat.
Avatar billede jarner Nybegynder
22. februar 2011 - 14:50 #4
Prøv if (isset($_GET["traekfra"]) && $_GET["traekfra"]>0)

i stedet for

if (isset($_GET[traekfra]) && $_GET[traekfra]>0)
Avatar billede deicer Nybegynder
22. februar 2011 - 16:41 #5
Hej igen jarner

Ingen forbedre, den gør forsat ikke som forventet.

Hele PHP filen ser nu således ud:

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

if (isset($_GET["traekfra"]) && $_GET["traekfra"]>0)

  {
mysql_select_db("kurser_db", $con);
mysql_query("UPDATE kurser SET Antal = Antal - 1 WHERE kursusID = $_GET[kursusID]");
    }
 
  mysql_select_db("kurser_db", $con);

$result = mysql_query("SELECT * FROM kurser");

echo "<table border='1'>
<tr>
<th>Kursus</th>
<th>Ledige pladser</th>
<th>kursusID</th>

</tr>";

while($row = mysql_fetch_array($result))

{
  echo "<tr>";
  echo "<td>" . $row['KursusNavn'] . "</td>";
  echo "<td> <a href='kurser.php?traekfra=1&kursusID='" . $row['kursusID'] . "'>" . $row['Antal'] . "</a></td>";
  echo "<td>" . $row['kursusID'] . "</td>";
echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>

Tabellen kommer fint frem, og viser også KursusID. Men når jeg vil trykke på 'Antal' linket, så kommer dette : http://localhost/php/kurser.php?traekfra=1&kursusID=

Det er som om at den mangler kursusID i enden?
Avatar billede jarner Nybegynder
22. februar 2011 - 17:18 #6
Du må debugge dig lidt frem til løsningen, jeg har ikke skrevet noget af koden fuldt ud. Se om dit kursusID kommer frem i tabellen eller se om det kommer med print_r($row) el lign.
Ellers kan du slå debug til i php.ini så den udskriver alle fejl.
Avatar billede deicer Nybegynder
22. februar 2011 - 18:26 #7
Der var et ' for meget efter &kursusID i denne linje:

echo "<td> <a href='kurser.php?traekfra=1&kursusID='" . $row['kursusID'] . "'>" . $row['Antal'] . "</a></td>";

Den skal være således:
echo "<td> <a href='kurser.php?traekfra=1&kursusID=" . $row['kursusID'] . "'>" . $row['Antal'] . "</a></td>";

Læg et svar, så for du points, og mange tak for hjælpen, jarner.

Mvh
Theis
Avatar billede jarner Nybegynder
22. februar 2011 - 19:40 #8
Så lidt :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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