Help met UPDATE query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Steven

Steven

06/12/2005 16:58:00
Quote Anchor link
Ik heb een klein scriptje dat 1 record in een tabel moet updaten maar het lukt niet...ik krijg elke keer deze query:
UPDATE roles SET label = '' WHERE id = 14
Hij vult dus gewoon niks in :s
Dit is de code...plz help.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php

$username
= "root"; // mysql login naam
$password = ""; // mysql wachtwoord
$host = "localhost"; // de host van de mysql database
$database = "gebruikers"; // de naam van de database


if (!@mysql_select_db($database, @mysql_connect($host, $username, $password)))
{

     echo "Database connectie mislukt!";
     exit();
}


$sql = "SELECT id,label FROM roles ORDER BY id";
$res = mysql_query($sql);
$txt = $_POST['txt'];

echo "Klik <a href=\"addrole.php\">hier</a> om een role toe te voegen.<p>";

        if($_GET['actie'] == "Wijzig")
        {



               // code om label te wijzigen
               $update = "UPDATE roles SET label = '" . $txt . "' WHERE id = ".$_GET["ID"]."";
               $ss = mysql_query($update) or die(mysql_error());
               echo "<h1>$update</h1><p>";
               echo "<h1>$txt</h1><p>";
        }


        elseif($_GET['actie'] == "Verwijderen")
        {

               // code om ID te verwijderen
               $delete = "DELETE FROM roles WHERE id = '".$_GET["ID"]."'";
               mysql_query($delete);
               echo "<h1>Label verwijderd.</h1><p>";
        }


     elseif (mysql_num_rows($res) >= 1)
     {

       echo '<TABLE border="1" cellpadding="2" cellspacing="0">';
       echo '<TR><TH>ID <TH>Label <TH>Opties';

       while ($row = mysql_fetch_array($res))
       {

       $row['id'] = ($row['id']);
       $row['label'] = ($row['label']);

       echo '<TR><TD>';
       echo "" . $row['id'] . "</TD>";
       echo '<TD>';
       echo "<form action=main.php method=post><input type=text name=txt value=". $row['label'] ."></form></TD>";
       echo '<TD>';
       echo "<a href=?actie=Wijzig&ID=".$row['id']."&LABEL=".$txt.">Wijzig</a><br><a href=?actie=Verwijderen&ID=".$row['id'].">Verwijderen</a>";
       echo "</TD>";
       }
     }

     elseif (!(mysql_num_rows($res) >= 1)){
       echo "Er zijn geen roles!";
     }


else
{
    echo "Er zijn geen roles!";
}




?>
 
PHP hulp

PHP hulp

27/11/2024 11:30:53
 
Robert Deiman

Robert Deiman

06/12/2005 17:01:00
Quote Anchor link
Echo die $txt eens.. Ik denk dat daar al niets inzit
 
Steven

Steven

06/12/2005 17:31:00
Quote Anchor link
Robert:
Echo die $txt eens.. Ik denk dat daar al niets inzit


Als je goed kijkt doe ik dat al:
echo "<h1>$txt</h1><p>";

en er komt idd niks uit, hoe komt dat?
 
Burdy

Burdy

06/12/2005 21:05:00
Quote Anchor link
Je gebruikt $txt binnen <FORM>, maar dat formulier heeft geen buttons, dus vraag ik me af of
er wel iets gepost wordt.
 
Steven

Steven

06/12/2005 23:13:00
Quote Anchor link
Burdy:
Je gebruikt $txt binnen <FORM>, maar dat formulier heeft geen buttons, dus vraag ik me af of
er wel iets gepost wordt.


Ik gebruik $txt niet binnen form, deze sluit ik al eerder af.
 
Jan Koehoorn

Jan Koehoorn

06/12/2005 23:16:00
Quote Anchor link
Waarom doe je dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$row
['id'] = ($row['id']);
$row['label'] = ($row['label']);
?>
 
Jan Koehoorn

Jan Koehoorn

06/12/2005 23:19:00
Quote Anchor link
Je hebt een while loop waarin je allemaal inputs met dezelfde naam ('txt') aanmaakt. Er staan ook geen dubbele quotes om de naam.

while ($row = mysql_fetch_array($res))
{
$row['id'] = ($row['id']);
$row['label'] = ($row['label']);

echo '<TR><TD>';
echo "" . $row['id'] . "</TD>";
echo '<TD>';
echo "<form action=main.php method=post><input type=text name=txt value=". $row['label'] ."></form></TD>";
echo '<TD>';
echo "<a href=?actie=Wijzig&ID=".$row['id']."&LABEL=".$txt.">Wijzig</a><br><a href=?actie=Verwijderen&ID=".$row['id'].">Verwijderen</a>";
echo "</TD>";
}

Als er meer dan 1 record uit die while loop komt dan zijn de resultaten bij een submit onvoorspelbaar. In gevallen zoals deze kun je beter met de array-notatie werken en je txt velden de naam txt[] geven. Bij een submit krijg je dan een keurige array $_POST['txt'].
Gewijzigd op 06/12/2005 23:21:00 door Jan Koehoorn
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.