Avatar billede bqnke Nybegynder
17. november 2009 - 14:03 Der er 17 kommentarer og
1 løsning

problem med php og mysql.

Hej eksperter kan virklig ikke forstå hvorfor denne kode ikke virker.

når jeg bruger den og vil oprette en kode så bliver der hverken oprettet koden i databasen og den skriver ingen mysql fejl. for at sige det lige
ud sker der ikke en skid.
har kigget på koden længe og kan ikke finde fejlen det er sikkert bare en lille irreterende fejl men jeg åber i kan hjælpe mig med at finde den.

og jo der er mysql connect i min kode.

if($_GET['do'] == "insert" && isset($_POST['id']))
{
    $todb['dato'] = mysql_real_escape_string($_POST['dato']);
    $todb['katerogiid'] = mysql_real_escape_string($_POST['katerogiid']);
    $todb['kodenavn'] = mysql_real_escape_string($_POST['kodenavn']);
    $todb['kodebeskrivelse'] = mysql_real_escape_string($_POST['kodebeskrivelse']);
    $todb['koden'] = mysql_real_escape_string($_POST['koden']);
    $todb['kodelink'] = mysql_real_escape_string($_POST['kodelink']);
    $insert_data = mysql_query("INSERT INTO brugere(
                                                dato,
                                                katerogiid,
                                                kodenavn,
                                                kodebeskrivelse,
                                                koden,
                                                kodelink)VALUES(
                                                '".$todb['dato']."',
                                                '".$todb['katerogiid']."',
                                                '".$todb['kodenavn']."',
                                                '".$todb['kodebeskrivelse']."',
                                                '".$todb['koden']."',
                                                '".$todb['kodelink']."')");
    if($insert_data)
    {
        print"Din kode blev oprettet.<br /><br />";
    }
    else
    {
        print "<b>FEJL:</b> ".mysql_error();
    }
}



html :

<form action="?do=insert" method="post">
Dato: <input type="text" name="navn" value="<?=$_POST['dato'];?>" /><br>
Katgoriid: <input type="text" name="alder" value="<?=$_POST['katerogiid'];?>" /><br>
Kodenavn: <input type="text" name="email" value="<?=$_POST['kodenavn'];?>" /><br>
Kodebeskrivelse: <input type="text" name="email" value="<?=$_POST['kodebeskrivelse'];?>" /><br>
koden: <input type="text" name="email" value="<?=$_POST['koden'];?>" /><br>
Kodelink: <input type="text" name="email" value="<?=$_POST['kodelink'];?>" /><br>
<input type="submit" value="Tilf¯j kode" />
</form>
Avatar billede erikjacobsen Ekspert
17. november 2009 - 14:10 #1
Prøv at se om den fortæller dig noget:

    $insert_data = mysql_query("INSERT INTO brugere(
                                                dato,
                                                katerogiid,
                                                kodenavn,
                                                kodebeskrivelse,
                                                koden,
                                                kodelink)VALUES(
                                                '".$todb['dato']."',
                                                '".$todb['katerogiid']."',
                                                '".$todb['kodenavn']."',
                                                '".$todb['kodebeskrivelse']."',
                                                '".$todb['koden']."',
                                                '".$todb['kodelink']."')") or die(mysql_error());
Avatar billede bqnke Nybegynder
17. november 2009 - 14:16 #2
Den fortæller mig stadig intet, virkligt træls.
Avatar billede erikjacobsen Ekspert
17. november 2009 - 14:25 #3
Her du et felt i formen, der hedder 'id' ?
Avatar billede acore Ekspert
17. november 2009 - 14:26 #4
Hvordan får $_POST['id'] en værdi?

Du bruger vist forkert name for kodebeskrivelse i html-delen.
Avatar billede bqnke Nybegynder
17. november 2009 - 14:29 #5
id laver den jo automatisk det er den sat til i databasen.

er ret forvirret lige nu, nogen der kan forklare hvad fejlen er eller give et eksempel på hvordan den vil virke?
Avatar billede erikjacobsen Ekspert
17. november 2009 - 14:37 #6
Du bruger $_POST['id'] - så jeg spørger bare om du har et felt i formen, med navn 'id' ?
Avatar billede bqnke Nybegynder
17. november 2009 - 14:38 #7
det er rigtigt hvad acore sige jeg havde brugt forkerte names i html delen, nu er de ændret så de er rigtigt. om når jeg trykker tilføj kode nu sker der intet.
Avatar billede bqnke Nybegynder
17. november 2009 - 14:38 #8
jeg har ikke et felt i formen med navnet id nej.
Avatar billede erikjacobsen Ekspert
17. november 2009 - 14:44 #9
Så hvordan ser koden ud nu ?
Avatar billede bqnke Nybegynder
17. november 2009 - 14:46 #10
if($_GET['do'] == "insert" && isset($_POST['send']))
{
    $todb['dato'] = mysql_real_escape_string($_POST['dato']);
    $todb['katerogiid'] = mysql_real_escape_string($_POST['katerogiid']);
    $todb['kodenavn'] = mysql_real_escape_string($_POST['kodenavn']);
    $todb['kodebeskrivelse'] = mysql_real_escape_string($_POST['kodebeskrivelse']);
    $todb['koden'] = mysql_real_escape_string($_POST['koden']);
    $todb['kodelink'] = mysql_real_escape_string($_POST['kodelink']);
    $insert_data = mysql_query("INSERT INTO koder (
                                                dato,
                                                katerogiid,
                                                kodenavn,
                                                kodebeskrivelse,
                                                koden,
                                                kodelink)VALUES(
                                                '".$todb['dato']."',
                                                '".$todb['katerogiid']."',
                                                '".$todb['kodenavn']."',
                                                '".$todb['kodebeskrivelse']."',
                                                '".$todb['koden']."',
                                                '".$todb['kodelink']."')") or die(mysql_error());
    if($insert_data)
    {
        print"Din kode blev oprettet.<br /><br />";
    }
    else
    {
        print "<b>FEJL:</b> ".mysql_error();
    }
}
// opret kode slut

?>
<HTML>
<head></head>
<body>
<br>
Opret kode:<br>
<form action="?do=insert" method="post">
Dato: <input type="text" name="dato" value="<?=$_POST['dato'];?>" /><br>
Katgoriid: <input type="text" name="katerogiid" value="<?=$_POST['katerogiid'];?>" /><br>
Kodenavn: <input type="text" name="kodenavn" value="<?=$_POST['kodenavn'];?>" /><br>
Kodebeskrivelse: <input type="text" name="kodebeskrivelse" value="<?=$_POST['kodebeskrivelse'];?>" /><br>
koden: <input type="text" name="koden" value="<?=$_POST['koden'];?>" /><br>
Kodelink: <input type="text" name="kodelink" value="<?=$_POST['kodelink'];?>" /><br>
<input type="submit"  name="send "value="Tilf¯j kode" />
</form>


</body>
</HTML>
Avatar billede erikjacobsen Ekspert
17. november 2009 - 17:02 #11
Du har heller ikke et felt, der hedder "send". Men du har et, der hedder "send ".
17. november 2009 - 17:54 #12
erikjacobsen, det var godt spottet.  Jeg var selv igang med at underspege problemet - du saa "send  " foerst (jeg lavede to mellemrum for at goere det tydeligere.

bqnke - med den rettelse virker koden.  For at teste lavede jeg hjemmesiden

http://christianjorgensen.be/bqnke.php

og en lille databasetabel og fyldte en raekke vaerdier ind.  Jeg fyldte saa formen ud med vaerdierne "dato2", "katerogiid2", osv, og de vaerdier er nu indfyldt, se her:

      dato  katerogiid  kodenavn  kodebeskrivelse  koden  kodelink 
      dato1 kategoriid kodenavn1 kodebeskri kodebeskri kodelink1
      dato2 kategori2 kodenavn2 beskriv2 koden2 kodelink2

Saa pointet er i html koden at rette "send  " til "send".  HTML koden er derefter denne:


Opret kode:<br>
<form action="?do=insert" method="post">

Dato: <input type="text" name="dato" value="<?=$_POST['dato'];?>" /><br>
Katgoriid: <input type="text" name="katerogiid" value="<?=$_POST['katerogiid'];?>" /><br>
Kodenavn: <input type="text" name="kodenavn" value="<?=$_POST['kodenavn'];?>" /><br>
Kodebeskrivelse: <input type="text" name="kodebeskrivelse" value="<?=$_POST['kodebeskrivelse'];?>" /><br>
koden: <input type="text" name="koden" value="<?=$_POST['koden'];?>" /><br>
Kodelink: <input type="text" name="kodelink" value="<?=$_POST['kodelink'];?>" /><br>
<input type="submit"  name="send" value="Tilf&#379;j kode" />
</form>
17. november 2009 - 19:08 #13
Det vil natuligvis kun virke hvis din database tabel har de samme kolonne navne som du bruger i din form.  For eksempel, du har i din form et feltnavn "katerogiid".  Hvis nu den tilsvarende kolonne i database tabellen hedder "kategoriid" virker det naturligvis ikke.
Avatar billede bqnke Nybegynder
17. november 2009 - 19:10 #14
God forklaring men forstår dig ikke 100% .jeg har rette min html kode som du skrev men det løste ikke mit problem.




// opret koder
if($_GET['do'] == "insert" && isset($_POST['ID']))
{
    $todb['dato'] = mysql_real_escape_string($_POST['dato']);
    $todb['katerogiid'] = mysql_real_escape_string($_POST['katerogiid']);
    $todb['kodenavn'] = mysql_real_escape_string($_POST['kodenavn']);
    $todb['kodebeskrivelse'] = mysql_real_escape_string($_POST['kodebeskrivelse']);
    $todb['koden'] = mysql_real_escape_string($_POST['koden']);
    $todb['kodelink'] = mysql_real_escape_string($_POST['kodelink']);
    $insert_data = mysql_query("INSERT INTO brugere(
                                                dato,
                                                katerogiid,
                                                kodenavn,
                                                kodebeskrivelse,
                                                koden,
                                                kodelink)VALUES(
                                                '".$todb['dato']."',
                                                '".$todb['katerogiid']."',
                                                '".$todb['kodenavn']."',
                                                '".$todb['kodebeskrivelse']."',
                                                '".$todb['koden']."',
                                                '".$todb['kodelink']."')");
    if($insert_data)
    {
        print"Din kode blev oprettet.<br /><br />";
    }
    else
    {
        print "<b>FEJL:</b> ".mysql_error();
    }
}
// opret kode slut

?>
<HTML>
<head></head>
<body>
<br>
Opret kode:<br>
<form action="?do=insert" method="post">

Dato: <input type="text" name="dato" value="<?=$_POST['dato'];?>" /><br>
Katgoriid: <input type="text" name="katerogiid" value="<?=$_POST['katerogiid'];?>" /><br>
Kodenavn: <input type="text" name="kodenavn" value="<?=$_POST['kodenavn'];?>" /><br>
Kodebeskrivelse: <input type="text" name="kodebeskrivelse" value="<?=$_POST['kodebeskrivelse'];?>" /><br>
koden: <input type="text" name="koden" value="<?=$_POST['koden'];?>" /><br>
Kodelink: <input type="text" name="kodelink" value="<?=$_POST['kodelink'];?>" /><br>
<input type="submit"  name="send" value="Tilf&#379;j kode" />
</form>
</body>
</HTML>
Avatar billede bqnke Nybegynder
17. november 2009 - 20:59 #15
min kode virker nu.
læg et svar begge 2 så deler i pointne.
17. november 2009 - 21:10 #16
Jamen det var da godt.  (Du var ellers lige ved at blive frustreret.)
Avatar billede erikjacobsen Ekspert
17. november 2009 - 21:38 #17
Nej tak.
Avatar billede bqnke Nybegynder
18. november 2009 - 00:35 #18
alle pointne gik til christian da erik ikke ønskede at modtage point.
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
Kurser inden for grundlæggende programmering

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