Avatar billede dl Nybegynder
16. september 2004 - 19:47 Der er 22 kommentarer og
1 løsning

error in SQL syntax near where MenuID, hvorfor

jeg har en database.
som jeg har en connection til.

Databasen indholder:  id(tal), MenuID(tal), menuName(str), Lnikname(str) osv ...

Når jeg så trykker på et link: da ændre adressen til: ... index.php?menu=1

Derefter skal lave et udtræk fra min database på en overskrift til disse menu punkter jeg skal lave.

JEg har denne kode til udtræk fra databasen:

<?php
  $menu = $_GET["menu"];
  $result = mysql_query("select MenuName where MenuID = '$menu' ") or die(mysql_error());

  $row    = mysql_fetch_array($result);
  echo $row[MenuName];
                       
?>

Men jeg få fejlen: You have an error in your SQL syntax near 'where MenuID = '1' ' at line 1.

Hvad kan fejlen være, og hvis jeg kun skal lave et udtræk, bruger jeg så en forkert kode til det?

//dl
Avatar billede erikjacobsen Ekspert
16. september 2004 - 20:14 #1
mysql_query("select MenuName from enellerandentabel where MenuID = '$menu' ")
Avatar billede dl Nybegynder
16. september 2004 - 20:33 #2
ja, k, nu kommer fejlen ikke.
Men den skriver sku heller ikke noget navn på menuoverskriften.

har nu denne kode
<?php
  $menu = $_GET["menu"];
  $result = mysql_query("select MenuName where MenuID = '$menu' ") or die(mysql_error());

  $row    = mysql_fetch_array($result);
  echo $row[MenuName];
                       
?>

//dl
Avatar billede erikjacobsen Ekspert
16. september 2004 - 20:35 #3
Prøv at se om id'et er der

  if ($row  = mysql_fetch_array($result)) {
    echo $row[MenuName];
  } else {
    echo "Nixen bixen";
  }
Avatar billede erikjacobsen Ekspert
16. september 2004 - 20:35 #4
Hov - du har vel en "from ...." nu i din sql?
Avatar billede dl Nybegynder
16. september 2004 - 20:40 #5
den sige: "Nixen bixen" hehe

menu, bliver hentet udfra noget som jeg vidre sender i min adresse i IE.

så hvad mener du med form.
Jeg skal ikke bruge nogen form, det hele skal køre ud fra links.

//dl

PS. hvad gør jeg så?
Avatar billede erikjacobsen Ekspert
16. september 2004 - 20:43 #6
Du har en "from..." i din select sætning, formentlig ;)

Hvis du har

  index.php?menu=1

så har du nok ikke en post med MenuID=1
Avatar billede dl Nybegynder
16. september 2004 - 20:44 #7
jo, op til flere.
Avatar billede rune.osterdal.com Nybegynder
17. september 2004 - 01:23 #8
ehm, dl...
Du spørger Erik hvad du skal med form.. men Erik siger FROM...
mysql_query("SELECT MenuName FROM tabelnavn WHERE MenuID = '$menu'")...

Derudover.. du siger at du har flere poster hvor MenuID er lig 1? Er MenuID ikke din primærnøgle? Du vil da få problemer hvis flere forskellige menupunkter har samme id.

eller har jeg helt misforstået dig?
Avatar billede dl Nybegynder
17. september 2004 - 08:00 #9
okay. jeg prøver lige at forklar mig noget bedre.

jeg har en database i mysql: se sådan ud
  Feltnavn  Datatype Attributter    Nulværdi        Standardværdi Ekstra Handling
  id        int(11)  Nej            auto_increment             
  MenuID    int(10)  Nej            1               
  MenuName      varchar(50)  Nej                 
  MenuPunktName  varchar(50)  Nej                 
  Link          varchar(255)  Nej                 
  SubpunktID    int(10)      Nej  0               
  Notat          varchar(255)  Nej                 


mit data som ligger i denne database er:

  id MenuID MenuName      MenuPunktName Link              SubpunktID  Notat
  1 1      Weber Clubben  Historie      Ret Download fil  0          Link: Download 
  2 1      Weber Clubben  bitch bitch2                    0          jaja

Det er ID der er min primærnøgle.
Når jeg klikker på et link, så sender jeg værdien af menu ( menu=1 ) afsted til næste side.
Værdien for Menu fortæller min webside, hvilken menupnkter den skal tage udtræk på.

Jeg skal nu bruge en php kode som kan give mig over skriften( alså> MenuName idatabasen ) ud fra et punkt værdien af menu = menuID(i database ).


Jeg håber det hjælp.

//dl

PS. jeg er ikke hjemme hele weekenden. Men jeg kan skrive tilbage igen mandag, og måske også i dag.
Avatar billede erikjacobsen Ekspert
17. september 2004 - 09:49 #10
Hvis din
  if ($row  = mysql_fetch_array($result)) {
ryger ned i else-delen, så er der ingen rækker, der passer. Kalder du din fil med
  ....?menu=1
?
Avatar billede dl Nybegynder
19. september 2004 - 19:22 #11
...?menu=1  er den værdi jeg skal søge efter i min database. i det database felt som hedder MenuID.

Men database er ud som dette, samt nogle andre menupunkter men lige meget.

  id(primær)  MenuID MenuName     
  1            1      Weber Clubben 
  2            1      Weber Clubben

databasenavn: menusystem

Hvordan gør jeg det?`
Jeg ved snart ikke rigtig hvordan jeg så skal forklare det.

:(

//dl
Avatar billede erikjacobsen Ekspert
19. september 2004 - 19:25 #12
Du har forklaret det fint nok, men jeg tror der er noget du overser et eller
andet sted. Har du et link til siden?
Avatar billede dl Nybegynder
19. september 2004 - 19:33 #13
se http://80.165.155.231
jeg har ændret min index fil til index1.php, så kan du se kilde koden.
jeg har også lige ændret min kilde kode, så den passer med denne adresse ( 80.165.155.231 ).

du kan også se min database her: http://80.165.155.231/phpMyAdmin/index.php

Denne hele ligger localt.. så bare køre løs. ;)
Avatar billede erikjacobsen Ekspert
19. september 2004 - 19:40 #14
Ja, foreløbig ok, men jeg kan ikke se kildeteksten. Hvordan ser sql-sætningen ud?
Avatar billede dl Nybegynder
19. september 2004 - 20:26 #15
<table border="1" align="center" cellpadding="0" cellspacing="0" width="100%">
    <tr>
        <td width="50%"> <!-- MenuOverskrift -->
            <Center>
                <?php
                    $menu = $_GET["menu"];
                    $result = mysql_query("select MenuName where MenuID = '$menu' ");
                   
                    if ($row = mysql_fetch_array($result)) {
                            echo $row[MenuName];
                      } else {
                        echo "Nixen bixen";
                        echo "".$menu."";
                    }

   
                ?>

            </Center>
        </td> <!-- MenuOverskrift -->
        <td width="50%" rowspan="2">  indhold </td>
      </tr>
      <tr>
          <td width="50%">menupunkt<br> </td>
    </tr>
</table>
Avatar billede dl Nybegynder
19. september 2004 - 20:36 #16
øverste kode: er i en fil som hedder  menusystem.php

denne kode er index1.php
Avatar billede dl Nybegynder
19. september 2004 - 20:36 #17
<html>
    <head>
        <title>Tølløse Camping & Weber Club - menusystem</title>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
        <meta name="description" content="Tølløse Camping & Weber Club">
        <meta name="Keywords" content="Tølløse, Camping, Weber, Club">
        <meta name="robots" content="index, nofollow, noarchive">
        <link rel="stylesheet" type="text/css" href="/system/style.css">
    </head>
    <body>

        <?php
            include($_SERVER["DOCUMENT_ROOT"] . "/system/db_ind.inc");
            mysql_select_db("mySQL") or die(mysql_error());
        ?>   

        <table class="Border" align="center" cellpadding="0" cellspacing="0" width="95%">
            <tr>
                  <td width="100%" colspan="2">Overskrift</td>
            </tr>
              <tr>
                  <td class="NavigationTopMenu" width="100%" colspan="2">Navigation    <a href="http://80.165.155.231/index1.php?menu=1">link: Menu 1</a>  </td>
<!--&amp;submenu=0 -->
              </tr>
        </table>

        <table Border="0" align="center" cellpadding="0" cellspacing="0" width="95%">
            <tr>
                  <td width="100%" colspan="2"> <!-- indhold af side -->
               
                    <?php
                        $menu = $_GET["menu"];
                        if (!isset($menu)){
                            include($_SERVER["DOCUMENT_ROOT"] . "/forside.php");
                        }

                        if (isset($menu)){
                            include($_SERVER["DOCUMENT_ROOT"] . "/menusystem.php");
                        }
                    ?>

                </td>  <!-- indhold af side -->
            </tr>
        </table>


        <table class="Border" align="center" cellpadding="0" cellspacing="0" width="95%">
            <tr>
                <td> bund </td>
            </tr>
        </table>

        <?php

        mysql_close("menusystem");

        ?>


    </body>
</html>
Avatar billede erikjacobsen Ekspert
19. september 2004 - 21:09 #18
Og alt det vi har skrevet om "from" (som du misforstod som "form") har du bare ignoreret?
http://dev.mysql.com/doc/mysql/en/SELECT.html
Den skal lige have tabelnavnet at vide.
Avatar billede dl Nybegynder
19. september 2004 - 21:33 #19
Jeg tror vist ikke jeg forstod disse ord helt:
Du har en "from..." i din select sætning, formentlig ;)

Men nu har jeg sku da fået det til at virke.
Tak, for hjælpen.

:)
Avatar billede dl Nybegynder
19. september 2004 - 21:34 #20
ja, jeg kan godt se, hvad i mener du.
Ved ikke om det er noget: men jeg sidder om aftenen og prøver at lære dette sprog.

men erikjacobsen>>  læg et svar.
Avatar billede erikjacobsen Ekspert
19. september 2004 - 21:57 #21
ellers tak, jeg samler slet ikke på point
Avatar billede dl Nybegynder
19. september 2004 - 22:06 #22
Andre som har været med i dette indlæg, som ønsker dem.
Ellers bliver de trukket tilbage.

//dl
Avatar billede dl Nybegynder
20. september 2004 - 21:17 #23
ikke, de bliver hermed trukket tilbage.
//dl
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