Avatar billede teck Nybegynder
03. oktober 2003 - 12:56 Der er 5 kommentarer og
1 løsning

Medtag kategori

Hej, jeg har et stykke kode, der skal smide nogen oplysninger ind i en database, men problemet er bare at den ikke medtager kategori variablen! Koden ser sådan her ud:

<?

if (!$mode) {



echo"

<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">

    <tr>

     
    <td valign=\"top\">
      <p align=\"center\">&nbsp;</p>

      <form action=\"nylink2.php?mode=tilfoj&kat=$kategori\" method=\"post\"><br><br>

      <div align=\"center\">

        <center>

            <table border=\"0\" cellpadding=\"3\" cellspacing=\"0\">
              <tr>
                <td width=\"133\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Titel
                  :</font></td>
                <td width=\"425\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
                  <INPUT TYPE=\"text\" name=\"titel\" class=\"tekstboks\" size=\"36\">
                  </font></td>
              </tr>
              <tr>
                <td height=\"2\" width=\"133\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Filnavn
                  (uden fil adresse):</font></td>
                <td height=\"2\" width=\"425\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
                  <input type=\"text\" name=\"fil\" size=\"36\">
                  </font></td>
              </tr>
              <tr>
                <td width=\"133\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Kategori:</font></td>
                <td width=\"425\">

<select name=\"id\" size=\"1\" style=\"width=250\">
        <option value=\"0\">Vælge kategori</option>";
        include ("connect.php");
        $result = mysql_query("SELECT * FROM kategori order by id");
  while ($row = mysql_fetch_array($result)) {
  $kategori = $row["kategori"];
  $id2 = $row["id"];            
  if ($id2==$kategori){
 
echo "<OPTION value=\"$id2\" selected>$kategori</OPTION>";
}
  else {
    echo "<OPTION value=\"$id2\">$kategori</OPTION>";
}
}

echo"
                </td>
              </tr>
              <tr>
                <td width=\"133\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"></font></td>
                <td width=\"425\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
                  <input type=\"submit\" value=\" Tilf&oslash;j \" class=\"knap\">
                  </font></td>
              </tr>
            </table>

        </center>

      </div>

      </form>

    </td>

  </tr>

  </table>

";




}
if ($mode == "tilfoj") {







include ("connect.php");



// Smider informationerne ind i MySQLen

$titel = nl2br($titel);

$fil = nl2br($fil);



$query = mysql_query("INSERT INTO menu (titel, fil, kategori)" . "VALUES ('$titel','$fil', '$kat')");



        print "

  <center>

  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">

    <tr>

      <td>

        <p align=\"center\">Links tilføjet !</p>

      </center>



<td>

  </tr>

  </table>

";









}

?>

Er der en der kan se fejlen?
Avatar billede ghazaleh Nybegynder
03. oktober 2003 - 13:05 #1
Du vil indsætte $kat, men jeg kan ikke se at du har navngivet noget som $kat eller har jeg overset det?

Din select er derimod navngivet $id
Avatar billede teck Nybegynder
03. oktober 2003 - 13:26 #2
Det jeg vil have er at når man vælge en kategori i select boksen, så bliver navnet på denne kategori indsat i databasen, sammen med den andre variabler! hvordan man gør det, er jeg bare ikke klar over!
Avatar billede ghazaleh Nybegynder
03. oktober 2003 - 13:45 #3
du får din kategori-id ind i variablen $id

Hvis du vil indsætte kategoriens navn, så skal du først hente det inden at du indsætter i "menu" sådan her:

$result = mysql_query("SELECT kategori FROM kategori Where id=$id");
$kat = mysql_fetch_row($result);

men er det ikke bedre at indsætte kategoriens id? For hvis du indsætter navnet, så bliver det jo statisk. Altså hvis du på et tidspunkt ændrer kategoriens navn i kategori-tabellen, så bliver det jo ikke ændret i menu-tabellen.

Jeg ville hellere indsætte kategoriens id og så hente navnet når jeg skulle vise noget fra menu-tabellen, så står kategoriens navn kun et sted
Avatar billede teck Nybegynder
03. oktober 2003 - 13:55 #4
det lyder faktisk som en god ide, kan du eventuelt vise hvordan koden skal se ud, når den skal gemmes i databasen, og når man vil hente links frem fra en speciel kategori?
Avatar billede ghazaleh Nybegynder
03. oktober 2003 - 14:15 #5
Hvis man skal gemme kategori-id i menu-tabellen, så skal du ændre din linie, så der kommer til at stå $id i stedet for $kat:

$query = mysql_query("INSERT INTO menu (titel, fil, kategori)" . "VALUES ('$titel','$fil', '$id')");

Udvælger man en kategori, så kan man skrive:

$result2 = mysql_query("SELECT * FROM menu WHERE kategori=$id");
while ($row = mysql_fetch_array($result2)) { 
  echo("Her er værdierne: $row["titel"] $row["fil"]");
}

Her går jeg ud fra at du har valgt, hvilken kategori-id det er på den foregående side, og indsætter det i variablen $id, og når du har denne id, så kan du jo altid hente kategoriens navn fra kategori-tabellen
Avatar billede teck Nybegynder
03. oktober 2003 - 19:22 #6
mange tak, nu kører det rigtigt godt
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
Computerworld tilbyder specialiserede kurser i database-management

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