/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
opdatere database med 2 variabler?
Fra : Kasper Nordal Lund


Dato : 25-07-06 10:54

Hej.

Ved ikke om min overskrift beskriver mit problem, men her prøver jeg igen.

Jeg har lavet en side med en masse navne hvor folk kan melde sig til et
arrangement.

Nanvene kan de ikke gøre noget ved, men de kan melde sig til ved at
sætte hak i en checkbox samt vælge om de kommer 1,2,3 eller 4 personer
fra en select box (eller hvad den nu hedder).

mit problem er nu at få opdateret begge værdier i databasen, her er min
kode:

   <?php
      $result = dbQuery("SELECT * FROM indbydelse WHERE tilmeldt='0' ORDER BY Navn");
      
      echo "<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\">\n";
      
      if (isset($_POST['chkbx'])){

-----------------Her er problemet-----------------------------
      
      foreach ($_POST['chkbx'] as $svar){
      $antal = $_POST['selbx'];
      dbQuery("UPDATE indbydelse SET tilmeldt='1',antal='$antal' WHERE ID = $svar");
      }
      }

---------------------------------------------------------------

       echo "<table><tr><td>";
    echo "Navn:";
       echo "&nbsp\n";
    echo "<br /><br /></td><td>";
       echo "Tilmeldt:";
       echo "&nbsp\n";
       echo "<br /><br /></td><td>";
       echo "Antal:";
       echo "&nbsp\n";
       echo "<br /><br /></td><td>";
       echo "Tilmeld:";
       echo "&nbsp\n";
       echo "<br /><br /></td><td>";
       echo "Antal:";
       echo "<br /><br /></td></tr>";
      while($row = mysql_fetch_assoc($result)){
       $ID = $row['ID'];
    echo "<tr><td>";
    echo $row['Navn'];
       echo "&nbsp\n";
    echo "</td><td>";
       if ($row['tilmeldt'] == 0){
       echo "Nej";}
       else{
       echo "Ja";}
       echo "&nbsp\n";
       echo "</td><td>";
       echo $row['antal'];
       echo "&nbsp\n";
       echo "</td><td>";
       echo "<input type=\"checkbox\" name=\"chkbx[]\" id=\"chkbx[]\" value=\"$ID\">";
       echo "&nbsp\n";
       echo "</td><td>";
       echo "<select name=\"selbx[]\" id=\"selbx[]\">";
       echo "<option value=\"0\">0";
       echo "<option value=\"1\">1";
       echo "<option value=\"2\">2";
       echo "<option value=\"3\">3";
       echo "<option value=\"4\">4";
       echo "</select>";
       echo "</td></tr>";
      }
      $ialt = dbQuery("SELECT SUM(antal) FROM indbydelse");
       echo "<tr><td>";
       echo "<br /><br />";
       echo "Antal tilmeldte ialt: ";
       echo "$ialt";
       echo "<br /><br />";
       echo "<input type=\"submit\" value=\"Opdater\" name=\"submit\"></form>";
       echo "</td></tr>";   

       echo "</table>";
   ?>

Som det er nu virker det ikke, jeg har forsøgt mig med 2 foreach løkker,
men uden held, og med antal ='$_POST[selbx]'
Men jeg kan altså ikke lige gennemskue hvordan det skal laves.

Desuden har jeg probemer med den nederste $ialt som ikke virker fordi der
laves mere end en samtidig forbindelse til databasen (tror jeg nok)
hvordan kommer jeg uden om dette?

Håber i kan hjælpe.

/Kasper

 
 
Martin (26-07-2006)
Kommentar
Fra : Martin


Dato : 26-07-06 12:24

Kasper Nordal Lund wrote:
> Hej.

Hejsa

Når man leger med POST, SESSION osv. variabler - så hvis man får en
fejl, eller rettere den ikke sætter det rigtige ind i databasen - Så er
det en god idé at starte med at fejlsøge ved at udskrive diverse værdier
hvor fejlene kunne ligge. Der bruger man funktionerne print_r() og
var_dump()

>
> mit problem er nu at få opdateret begge værdier i databasen, her er min
> kode:
>
>    <?php
>       $result = dbQuery("SELECT * FROM indbydelse WHERE tilmeldt='0' ORDER BY Navn");
>       
>       echo "<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\">\n";
>       
>       if (isset($_POST['chkbx'])){

Prøv at lave en
echo var_dump($_POST['chkbx']);
lige før if'en
Er den nu også sat?


>
> -----------------Her er problemet-----------------------------
>       
>       foreach ($_POST['chkbx'] as $svar){

Lige før din foreach, så tjekker du lige om chkbx er et array, ellers
fejler din foreach.
Det gøres også med
echo var_dump($_POST['chkbx']);

>       $antal = $_POST['selbx'];
>       dbQuery("UPDATE indbydelse SET tilmeldt='1',antal='$antal' WHERE ID = $svar");
>       }
>       }
>
> Håber i kan hjælpe.

Svært når du ikke fortæller om der kommer en PHP fejl, eller om det
simpelthen bare er dig der har lavet en stavefejl i en variablerne eller
noget ala lign :)

Kasper Nordal Lund (26-07-2006)
Kommentar
Fra : Kasper Nordal Lund


Dato : 26-07-06 16:04


> Svært når du ikke fortæller om der kommer en PHP fejl, eller om det
> simpelthen bare er dig der har lavet en stavefejl i en variablerne eller
> noget ala lign :)

Jeg må have udtrykt mig uklart.

Mit problem er at få variablen $_POST['selbx'] (som virker ok) med ind i
sql sætningen jeg kan jo ikke skrive:

dbQuery("UPDATE indbydelse SET tilmeldt='1', antal='$_POST[selbx]' WHERE
ID = $svar");

Heller ikke:

dbQuery("UPDATE indbydelse SET tilmeldt='1', antal='$_POST[\"selbx\"]'
WHERE ID = $svar");

dbQuery("UPDATE indbydelse SET tilmeldt='1', antal=$_POST['selbx'] WHERE
ID = $svar");

Går heller ikke.

dbQuery("UPDATE indbydelse SET tilmeldt='1'WHERE ID = $svar");

Virker fint, men så får jeg jo ikke antal med.

René Lønstrup (26-07-2006)
Kommentar
Fra : René Lønstrup


Dato : 26-07-06 16:28

Kasper Nordal Lund wrote:
> Mit problem er at få variablen $_POST['selbx'] (som virker ok) med
> ind i sql sætningen jeg kan jo ikke skrive:
>
> dbQuery("UPDATE indbydelse SET tilmeldt='1', antal='$_POST[selbx]'
> WHERE ID = $svar");

dbQuery("UPDATE indbydelse SET tilmeldt='1', antal='" . $_POST['selbx'] . "'
WHERE ID = $svar");


--
Mvh René Lønstrup
web: http://rene.loenstrup.net?r=usenet
email: se om du kan regne den ud..



Kasper Nordal Lund (26-07-2006)
Kommentar
Fra : Kasper Nordal Lund


Dato : 26-07-06 17:00

On Wed, 26 Jul 2006 17:28:13 +0200, René Lønstrup wrote:

> Kasper Nordal Lund wrote:
>> Mit problem er at få variablen $_POST['selbx'] (som virker ok) med
>> ind i sql sætningen jeg kan jo ikke skrive:
>>
>> dbQuery("UPDATE indbydelse SET tilmeldt='1', antal='$_POST[selbx]'
>> WHERE ID = $svar");
>
> dbQuery("UPDATE indbydelse SET tilmeldt='1', antal='" . $_POST['selbx'] . "'
> WHERE ID = $svar");

Takker, det virker.

Nu er problemet bare at jeg får hele arrayet og ikke den ene værdi ind
på denne måde, hvordan får jeg værdierne ud.

Jeg kan ikke lave en foreach i en foreach vel?

Jesper Brunholm (26-07-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 26-07-06 22:56

Kasper Nordal Lund skrev:
> Nu er problemet bare at jeg får hele arrayet og ikke den ene værdi ind
> på denne måde, hvordan får jeg værdierne ud.
>
> Jeg kan ikke lave en foreach i en foreach vel?

Det kan du nu godt (lige såvel som man kan lave flere for() eller
while() løkker inden i hinanden), men det lyder som om du er ved at lave
en StormP-programmering. Prøv at tænke det igennem så du kommer uden om
problemet.

mvh

Jesper Brunholm

Kasper Nordal Lund (27-07-2006)
Kommentar
Fra : Kasper Nordal Lund


Dato : 27-07-06 06:00

On Wed, 26 Jul 2006 23:55:51 +0200, Jesper Brunholm wrote:


> en StormP-programmering. Prøv at tænke det igennem så du kommer uden om
> problemet.

Jeg lavede radio knapper istedet så man kun kan vælge en ad gangen, nu
virker det.




Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste