Avatar billede fritter25 Nybegynder
28. juli 2003 - 18:54 Der er 10 kommentarer og
1 løsning

Hvorfor kan jeg ikke lægge data ind i databasen

Hejsa.

Jeg vil lave en hjemmeside over hvad jeg har liggende af film, til privat brug. Data skal ligge i en MySQL database, og selv siden skal skrives i PHP. Jeg er allerede løbet ind i det første problem. Når jeg vil oprette en film skal man først indtaste følgende : org_titel, org_undertitel, dk_titel, dk_undertitel samt instruktoer. Problemet er bare, jeg sagtens kan oprette dem, hvis jeg har skrevet noget i alle 5, men hvis jeg underlader at skrive noget i org_titel, så blever der ikke skrevet noget i DB'en. Hvis jeg tilgengæld kun indtaster noget i org_titel, så virker det godt nok.

Jeg tror nok jeg ved hvor problemet ligger, men ved bare ikke hvordan det skal løses. Jeg tror problemet ligger ved forbindelsen til DB'en hvor jeg skriver :

if ($org_titel){ //MÅSKE DETTE KUNNE VÆRE PROBLEMET!!!
   
    $db = mysql_connect("127.0.0.1", "root", "");
    mysql_select_db("Film",$db);
   
    mysql_query("INSERT INTO dvd(org_titel, org_undertitel, dk_titel, dk_undertitel, instruktoer) VALUES ('$org_titel','$org_undertitel
    ','$dk_titel','$dk_undertitel','$instruktoer')");
   
    echo "<center>";
    echo "<BR>";


Hermed resten af koden :


<HTML>
<BODY>
<p align="center"><font size="5" face="Arial Black"><b>Opret DVD FILM</b></font></p>

<body bgcolor="#FFFFCC">
<?

if ($org_titel){
   
    $db = mysql_connect("127.0.0.1", "root", "");
    mysql_select_db("Film",$db);
   
    mysql_query("INSERT INTO dvd(org_titel, org_undertitel, dk_titel, dk_undertitel, instruktoer) VALUES ('$org_titel','$org_undertitel
    ','$dk_titel','$dk_undertitel','$instruktoer')");
   
    echo "<center>";
    echo "<BR>";
}   
?>
<center>
<br><br><br><br>

    <FORM METHOD=POST ACTION=<?echo $PHP_SELF;?>>
   
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Original Titel :</b> <input type="text" name="org_titel" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="40%">
      <p align="right"><i>Original Undertitel : </i></td>
    <td width="60%"><input type="text" name="org_undertitel" size="28"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Dansk Titel :</b> <input type="text" name="dk_titel" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="40%">
      <p align="right"><i>Dansk Undertitel : </i></td>
    <td width="60%"><input type="text" name="dk_undertitel" size="28"></td>
  </tr>
</table>
<br><br>
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Instruktør :</b> <input type="text" name="instruktoer" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<br>

<p><INPUT TYPE=SUBMIT NAME="Ok" VALUE=OK></p>
</FORM>     
</BODY>
</HTML>
Avatar billede detox Nybegynder
28. juli 2003 - 19:28 #1
Brug if($OK){
Avatar billede detox Nybegynder
28. juli 2003 - 19:30 #2
Hmm, if ($Ok) { sæ'fø'li...
Avatar billede detox Nybegynder
28. juli 2003 - 19:34 #3
Eller måske endnu bedre: if (isset($_POST['Ok']));
Avatar billede fritter25 Nybegynder
28. juli 2003 - 20:06 #4
Fantastisk. Funktionen "if (isset($_POST['Ok']));" virkede. Hvad gør den helt nøjagtig? Lav lige et svar, så du kan få nogle point
Avatar billede fritter25 Nybegynder
28. juli 2003 - 20:12 #5
Jeg kunne forresten også godt tænke mig at indsætte nogle checkboxe, hvor man kan vælge hvilken slags lyd der er på dvd'erne eller i hvilket format billedet er. Ved du hvordan disse laves, og hvordan man gemmer dem i DB'en
Avatar billede detox Nybegynder
28. juli 2003 - 20:13 #6
I nyere versioner af php er register_globals slået fra af sikkerhedsmæssige årsager. Man bruger så fx: $_POST['variabel'] når man skal modtage postede variabler.
Læs mere her: http://dk2.php.net/manual/en/language.variables.predefined.php
isset() tjekker om variablen er sat.
Avatar billede detox Nybegynder
28. juli 2003 - 20:23 #7
Det lyder mere som radiobuttons, hvor du kun kan sætte en i hver kategori.
Avatar billede detox Nybegynder
28. juli 2003 - 20:39 #8
Eks form:
---------
<form action="test.php" method="post" name="test">
<table>
<tr><td>Lydkvalitet:</tr></td>
<tr><td>Surround:</td><td><input name="lyd" type="radio" value="surround" checked></td></tr>
<tr><td>Digital 5.1:</td><td><input name="lyd" type="radio" value="digi5.1"></td></tr>
<tr><td><input name="send" type="submit" value="Send"></td></tr>
</table>
</form>
--------
test.php
--------
<?
if (isset($_POST['send'])) {
    $lyd = $_POST['lyd'];
    echo $lyd;
}
?>
----------
Og så kan du bare smide $lyd i databasen på helt normal vis.
Avatar billede fritter25 Nybegynder
28. juli 2003 - 20:46 #9
Ok. Prøver lige. Ved du hvilken type man skal bruge i DB'en. Char, int osv?
Avatar billede fritter25 Nybegynder
28. juli 2003 - 20:50 #10
Tænkte lige. Ved radio buttons kan man da kun vælge en enkelt af dem. Det skal jo være mulit at vælge, hvis lyden er både dts og dd 5.1
Avatar billede detox Nybegynder
28. juli 2003 - 21:44 #11
Ja, så skal du have fat i checkbox.
Eks form:
---------
<form action="test.php" method="post" name="test">
<table>
<tr><td>Lydkvalitet:</tr></td>
<tr><td>DTS:</td><td><input name="lyd[DTS]" type="checkbox" value="1"></td></tr>
<tr><td>Digital 5.1:</td><td><input name="lyd[D51]" type="checkbox" value="1"></td></tr>
<tr><td><input name="send" type="submit" value="Send"></td></tr>
</table>
</form>
---------
test.php
---------
<?
if (isset($_POST['lyd'])) {
    $lyd = $_POST['lyd'];
    foreach($lyd as $key => $val) {
        echo $key . " " . $val . "<br>";
    }
}
?>
----------
Du kan så fx update din database med:
mysql_query("UPDATE film SET $key=$val WHERE id=$id");
og i det tilfælde vil jeg vælge type=TINYINT til de forskellige kolonner repræsenteret af $key
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