[mysql](leek) ik heb een probleem met updaten van een record

Pagina: 1
Acties:

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
Echt veel ervaring heb ik niet, maar heb toch 't nodige naslag werk hier liggen.
En volgens m'n boek hier is mijn query goed.
Echter krijg ik toch een error:
You have an error in your SQL syntax near 'desc='Some background info of what AF is about.', link='about', enabled='false' ' at line 1

Dit is als ik bijv 'about' wil updaten.
Misschien wordt 't iets duidelijker als ik m'n php d'r bij post:
PHP:
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
71
72
73
<?php
mysql_connect("SERVER","USER","PASS");  // make connection to the host: <host>,<user>,<pass>
mysql_select_db("af");                  // select which database

if($_POST['update'])                    // when 'update' is pressed try to run the update query
{
    $query_update = "UPDATE mnu SET item='$item', desc='$desc', link='$link', enabled='$enabled' WHERE id='$id'";   //query for updating 
    mysql_query($query_update) or die(mysql_error());   // Run the update query
    echo "The navigation option <strong>$item</strong> has been updated"; //when there are no errors disply OK
}   else    {                           // if there's no 'update' display the form

$query_adm_mnu = mysql_query("SELECT `id`,`item`,`desc`,`link`,`enabled` FROM `mnu` WHERE 1 ORDER BY `item` ASC LIMIT 0, 30 ");  //query whick makes a selection of the mnu records
while($obj=mysql_fetch_object($query_adm_mnu))  // make $trings of the records
    {
        $id         =       $obj->id;
        $item       =       $obj->item;
        $desc       =       $obj->desc;
        $link       =       $obj->link;
        $enabled    =       $obj->enabled;
        //end of php crap :: beginning of html form
        ?> 
        <form action="" method="post">
            <table width="" border="0" cellspacing="0" cellpadding="0" align="center">
                <tr>
                    <td>
                    Menu item:
                    </td>
                    <td>
                    <input type="text" name="item" value="<?php echo"$item"; ?>">
                    </td>
                </tr>
                <tr>
                    <td>
                    Status Bar text:
                    </td>
                    <td>
                    <input type="text" name="desc" value="<?php echo"$desc"; ?>">
                    </td>
                </tr>
                <tr>
                    <td>
                    Linked to:
                    </td>
                    <td>
                    <input type="text" name="link" value="<?php echo"$link"; ?>">
                    </td>
                </tr>
                <tr>
                    <td valign="top">
                    Menu Item enabled:
                    </td>
                    <td>
                    <?php
                    $query_mnu_enb = mysql_query("SELECT `id`,`enabled` FROM `mnu` WHERE 1 AND `id` = '$id' AND `enabled` LIKE 'true' LIMIT 0, 30 "); //checks is 'enabled' is true
                    $tellen = mysql_num_rows($query_mnu_enb);   // count the number of rows 
                    if ($tellen == 0)                           // if there no rows found which match the query set radio to false
                        {
                            echo"<INPUT TYPE=\"radio\" NAME=\"enabled\" VALUE=\"true\" >set $item on<BR>";
                            echo"<INPUT TYPE=\"radio\" NAME=\"enabled\" VALUE=\"false\" CHECKED>set $item off<BR>";
                        } else {                                // if there is a result of the query set radio to true
                            echo"<INPUT TYPE=\"radio\" NAME=\"enabled\" VALUE=\"true\" CHECKED>set $item on<BR>";
                            echo"<INPUT TYPE=\"radio\" NAME=\"enabled\" VALUE=\"false\">set $item off<BR>";
                        }
                     ?>
                    </td>
                </tr>
            </table>
            <input type="hidden" name="id" value="<?php echo"$id"; ?>">
                <div align="center"><input type="submit" value="Update <?php echo"$item";?>" name="update<?php // echo "$id";?>"></div>
            </form>
            <hr noshading width="500px">
    <?php }     }
?>


Wat doe ik fout? ik kom er gewoon niet meer uit.
Hopelijk snap je een beetje wat 't :X script moet doen.

ja ik weet het; dit is geen 'nette' php / sql code, ik probeer 't ook maar te leren. overigens zijn suggesties welkom

ja ik ben er van bewust dat er aardig wat typvouten in m'n //comment tags zitten :D

[ Voor 22% gewijzigd door himlims_ op 09-04-2003 14:53 ]

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Kun je je beperken tot het posten van enkle de relevante code?

De fout zal hem dus in je SQL query zitten.
Lees ook de Quickstart eens (Welkom in P&W -> Quickstart (update 2/10/2002))

Je gebruikt als veldnaam desc zie ik, maar desc is een reserved word.
Je zult dus, of backticks moeten gebruiken, of je veld een andere naam geven.

[ Voor 54% gewijzigd door whoami op 09-04-2003 14:55 ]

https://fgheysels.github.io/


  • sjroorda
  • Registratie: December 2001
  • Laatst online: 18:13
DESC is een reserverd word (ORDER BY name DESC bijv.); maak de kolomnaam anders.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

En desc is waarschijnlijk een verboden woord, welke je niet zo maar mag gebruiken.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

of maak er zoiets van:
code:
1
`desc`='iets'

:)

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
Verwijderd schreef op 09 April 2003 @ 14:56:
of maak er zoiets van:
code:
1
`desc`='iets'

:)
bedankt al vast voor 't meej denken
maar ik ben er nog wel van bewust dat ik geen 'functies' kan gebruiken als $tring
daarom heb ik die desc en $desc nog een keer vervangen door description.
dat maakte geen verschil.
daarnaast heb ik 't een keer geprobeerd zoals Denial aangaf:
door `desc`='$desc, `link`='$link' etc.
en dan dus een keer doormiddel van:
`description='$description, `link='$link' etc.
(dit heb ik dan overal toegepast - zelf tabel gedropt en een nieuwe gemaakt met de naam description)
in iedergeval blijf ik de zelfde 'error' krijgen

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

en als je ze dan eens stuk voor stuk update.. dus eerst alleen het item met id = .. en zo verder..

dan zie je ook op wel gedeelte de SQL chrashed ..

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

En sowieso hebben we PHP: Variabelen die van buitenaf komen. *lezen!* ook nog. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

Topicstarter
hmmz goed idee Jaspertje
-
en een goed idee was 't, het werkt nu.
ik weet alleen niet waarom 't nu wel werkt :?
(maakt de volgorde waarin je het record update iets uit? dus eerst link en daarna pas het item of zo?)

//edit
offtopic:
ik weet niet of ik 't mag vragen, maar zou er iemand naar m'n php kunnen kijken? en eventuele aanpassingen / tips geven? daar steek je als leek nog altijd 't meeste van op vind ik

[ Voor 60% gewijzigd door himlims_ op 09-04-2003 15:16 ]

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


  • ProgrammerX
  • Registratie: Juli 2002
  • Laatst online: 26-02-2021
[offtopic]
Je gebruikt als veldnaam desc zie ik, maar desc is een reserved word.
Je zult dus, of backticks moeten gebruiken, of je veld een andere naam geven.
DESC is een reserverd word (ORDER BY name DESC bijv.); maak de kolomnaam anders.
En desc is waarschijnlijk een verboden woord, welke je niet zo maar mag gebruiken.
Toch handig he als 3 mensen hetzelfde zeggen ;)

[offtopic]
Pagina: 1