Avatar billede prodigy01 Nybegynder
20. oktober 2005 - 13:40 Der er 36 kommentarer og
1 løsning

Gider ikke tilføje..

Jeg er igang med og prøve at lave sådan man kan tilføje forskellige ting til "redaktionen" - men det gider den ikke.
Der står den er tilføjet og melder ingen fejl, men den bliver dog ikke sat ind i databasen.

<?
session_start();
if (session_is_registered("brugernavn"))
{
    include("database.php");
    if ($navn)
    {
    mysql_query("insert into redaktionen set brugernavn = '$brugernavn', navn = '$navn', alder = '$alder', email = '$email', status = '$status'");
        echo "Crew er nu tilføjet!";
    }
    else
    {
        // Du kan lige så god slette else-delen når den nu ikke laver noget...
    }
?>
<form method="POST"  enctype="multipart/form-data"  action="?admin=tilfoej_crew">
  <input type="hidden" name="action" value="tilfoj">
  brugernavn:<br>
  <input name="username" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;">
  <br>
  navn:<br>
  <input name="navn" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;">
  <br>
  alder:<br>
  <input name="alder" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;" size="5">
  <br>
  e-mail:<br>
  <input name="email" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;">
  <br>
  status:<br>
  <select name="status" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;">
    <option value="reporter" selected>reporter</option>
    <option value="journalist">journalist</option>
  </select>
  <br>
  <input type="submit" value="tilf&oslash;j" name="submit" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;">
</form>
<p>
  <?
}
?>
</p>
Avatar billede mjl Nybegynder
20. oktober 2005 - 13:44 #1
mysql_query("INSERT INTO redaktionen (brugernavn, navn, alder, email, status) VALUES ('$brugernavn','$navn','$alder','$email','$status')");
Avatar billede prodigy01 Nybegynder
20. oktober 2005 - 13:48 #2
Virker stadig ikk :/
Avatar billede mjl Nybegynder
20. oktober 2005 - 13:49 #3
Hvilke felter har du i DB'en ud over brugernavn, navn, alder, email, status
Avatar billede nielle Nybegynder
20. oktober 2005 - 13:50 #4
Prøv med noget i denne stil:

<?
session_start();
if (session_is_registered("brugernavn"))
{
    include("database.php");
    if (isset($POST["navn"]))
    {
        $sql = "INSERT INTO redaktionen SET brugernavn = '$brugernavn', navn = '$navn', alder = '$alder', email = '$email', status = '$status'";
        mysql_query() or die(mysql_error());
        echo "Crew er nu tilføjet!";
    }
    else
    {
        // Du kan lige så god slette else-delen når den nu ikke laver noget...
        // Jeg kan se at du stadig ikke har slettet else-delen ;^)
    }
?>
<form method="POST"  enctype="multipart/form-data"  action="?admin=tilfoej_crew">
  <input type="hidden" name="action" value="tilfoj">
  brugernavn:<br>
  <input name="username" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;">
  <br>
  navn:<br>
  <input name="navn" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;">
  <br>
  alder:<br>
  <input name="alder" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;" size="5">
  <br>
  e-mail:<br>
  <input name="email" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;">
  <br>
  status:<br>
  <select name="status" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;">
    <option value="reporter" selected>reporter</option>
    <option value="journalist">journalist</option>
  </select>
  <br>
  <input type="submit" value="tilf&oslash;j" name="submitKnap" style="background-color: #FDFDF3; color: #000000; border: 1px solid C3C2AE;">
</form>
<p>
  <?
}
?>
</p>
Avatar billede nielle Nybegynder
20. oktober 2005 - 13:51 #5
Der er altid en god ide med noget fejlhåndtering a la:

... or die(mysql_error());
Avatar billede mjl Nybegynder
20. oktober 2005 - 13:52 #6
Bruger man ikke kun SET når man bruger UPDATE ????
Avatar billede nielle Nybegynder
20. oktober 2005 - 13:52 #7
... og så skulle det self. have været:

$sql = "INSERT INTO redaktionen SET brugernavn = '$brugernavn', navn = '$navn', alder = '$alder', email = '$email', status = '$status'";
mysql_query($sql) or die(mysql_error());
echo "Crew er nu tilføjet!";
Avatar billede mjl Nybegynder
20. oktober 2005 - 13:53 #8
Der er jo forskel på INSERT og UPDATE...
Avatar billede nielle Nybegynder
20. oktober 2005 - 13:54 #9
MySQL kan vist godt bruge SET i forbindelse med en INSERT. Men det er nu kun standard-SQL at bruge SET i forbindelse med UPDATE.
Avatar billede mjl Nybegynder
20. oktober 2005 - 13:55 #10
...hvad så med en WHERE ??? ellers sættes alle vel til det samme?
Avatar billede nielle Nybegynder
20. oktober 2005 - 13:57 #11
Standard-SQL versionen af:

$sql = "INSERT INTO redaktionen SET brugernavn = '$brugernavn', navn = '$navn', alder = '$alder', email = '$email', status = '$status'";

- ser sådan ud:

$sql = "INSERT INTO redaktionen (brugernavn, navn, alder, email, status) VALUES ('$brugernavn', '$navn', $alder, '$email', '$status')";

Bemærk at der ikke er '-tegn rundt om $alder.
Avatar billede nielle Nybegynder
20. oktober 2005 - 13:58 #12
Det giver ingen mening at have en WHERE på en INSERT. Kun på en UPDATE.
Avatar billede mjl Nybegynder
20. oktober 2005 - 13:59 #13
Nemlig...

Men hvorfor uden på $alder?
Avatar billede nielle Nybegynder
20. oktober 2005 - 13:59 #14
Fordi $alder formentligt er et tal. Der skal kun '-tegn rundet om tekst.
Avatar billede mjl Nybegynder
20. oktober 2005 - 14:01 #15
Okay...tror nu '' er en god ide'!

Nå - men - hvis han har flere felter f.eks. "id" m.fl. ville det jo være godt at vide i sammenhængen, eller?
Avatar billede prodigy01 Nybegynder
20. oktober 2005 - 14:06 #16
Det virker stadig ikke, men hvorfor er det at min ikke virker?
Avatar billede mjl Nybegynder
20. oktober 2005 - 14:15 #17
Hvilke felter har du i DB'en ud over brugernavn, navn, alder, email, status
Avatar billede nielle Nybegynder
20. oktober 2005 - 14:15 #18
Når databasen opføre sig underligt så skyldes det i 9 ud af 10 tilfælde at SQL'en indeholder noget andet end det man tror. Det er derfor en god ide - som debug - at udskrive SQL'en før at man forsøger at udføre den:

$sql = "INSERT INTO redaktionen (brugernavn, navn, alder, email, status) VALUES ('$brugernavn', '$navn', $alder, '$email', '$status')";
echo "DEBUG: " . $sql . "<br>";
mysql_query($sql) or die(mysql_error());
echo "Crew er nu tilføjet!";
Avatar billede prodigy01 Nybegynder
20. oktober 2005 - 14:21 #19
virker ik

DEBUG: INSERT INTO redaktionen (brugernavn, navn, alder, email, status) VALUES ('Prodigy', 'lol', lol, 'lol', 'reporter')
Unknown column 'lol' in 'field list'
Avatar billede nielle Nybegynder
20. oktober 2005 - 14:23 #20
Prøv at skrive noget andet end lol i dit alder-felt. Og så fjern lige de '-tegn rundt om $alder.
Avatar billede nielle Nybegynder
20. oktober 2005 - 14:23 #21
Glem den sidste sætning ... men prøv at skrive et tal i alderfeltet.
Avatar billede nielle Nybegynder
20. oktober 2005 - 14:24 #22
... for dit aæfer-felt er vel defineret som et tal-felt? Og altså ikke et tekst`-felt?
Avatar billede prodigy01 Nybegynder
20. oktober 2005 - 14:30 #23
Nej det er defineret som et tekst-felt..
Avatar billede nielle Nybegynder
20. oktober 2005 - 14:32 #24
Ja, så *skal* det '-tegn rundt om. :^)

Må man spørge: Hvorfor har du defineret et felt, som skal indeholde tal, som et tekst-felt?
Avatar billede prodigy01 Nybegynder
20. oktober 2005 - 14:36 #25
Glemte at deffinere det som et tal-felt, da jeg tilføjede via phpmyadmin..
Avatar billede nielle Nybegynder
20. oktober 2005 - 14:37 #26
Du kan bare lave den om i phpmyadmin.
Avatar billede nielle Nybegynder
20. oktober 2005 - 14:39 #27
... nå men det burde virke med '-tegn rundt om $alder. Har du prøvet?
Avatar billede prodigy01 Nybegynder
20. oktober 2005 - 14:42 #28
DEBUG: INSERT INTO redaktionen (brugernavn, navn, alder, email, status) VALUES ('Prodigy', '34234', '3', '3', 'reporter')
Duplicate entry '0' for key 1

ja, men virker stadig ikke.
Den tror den skal indsætte det brugernavn man er logget ind med :/
Avatar billede nielle Nybegynder
20. oktober 2005 - 14:44 #29
Det lyder som om at du ikke har sat autoincrement på dit id-felt.
Avatar billede prodigy01 Nybegynder
20. oktober 2005 - 14:57 #30
Doh', det var det der var galt!

Smid svar.. =D nielle
Avatar billede nielle Nybegynder
20. oktober 2005 - 14:59 #31
Siden at du nu kun har en enkelt linje i din tabel (et kvalifiseret gæt!) så synes jeg at du skal lave alder om til et tal-felt inden at du går videre.

... og et svar :^)

(ps. jeg deler gerne med mjl som jo har biddraget en del).
Avatar billede nielle Nybegynder
20. oktober 2005 - 14:59 #32
... doh
Avatar billede prodigy01 Nybegynder
20. oktober 2005 - 15:04 #33
tak for hjælp ;)
Avatar billede mjl Nybegynder
20. oktober 2005 - 15:06 #34
Bare lidt for sent!
Avatar billede mjl Nybegynder
20. oktober 2005 - 15:07 #35
Det var derfor, jeg spurgte om du havde andre felter f.eks. "ID"
Avatar billede prodigy01 Nybegynder
20. oktober 2005 - 15:11 #36
ffs.. Jeg er ny her på eksperten, jeg forveksler jeres navne :S
Jeg troede nielle skrev noget af det mjl skrev.
Avatar billede nielle Nybegynder
20. oktober 2005 - 15:15 #37
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