Avatar billede uvoller Novice
18. marts 2003 - 11:38 Der er 24 kommentarer og
2 løsninger

If og Else hvorfor duer det ikke

Hejsa eksperter

Jeg skal lave en side som skal tilføje nogle nye data i en db, men jeg kan ikke få det til at virke. Mine data er ok, dem får jeg skrevt fint ud på skærmen. Så vil jeg se om der er oprettet en bruger i min db med samme navn, hvis det er tilfældet skal der skrives en kommando ud på skærmen, og ellers skal den bare lægge de indtastede data ned i min db. har vedlagt lidt kode, da det må være der det går galt:

Nyklub sættes =1 når der trykkes på gem knappen

if ($nyklub == 1)
    {
        $forbindelse = mysql_connect("localhost", "root");
        mysql_select_db("sportsstaevne", $forbindelse);

        $resultat = mysql_query("select KlubID from klub where Navn = '$kontakt' ");
   
        if ($resultat)
        {
            echo "Brugernavn er taget venligst vælg et andet";
        }
       
        echo $klub;
        echo $adresse;
        echo $Post;
        echo $by;
        echo $email;
        echo $telefon;
        echo $kontakt;
        echo $pass;
        echo $gentagpass
       
        elseif (!$resultat)
        {
            $insert="INSERT INO klub VALUES(NULL, '$klub', '$adresse', '$Post', '$by', '$email', $telefon', '$kontakt, '$pass')";
        }
    }
Jeg kan ikke få den til at acceptere min else linje siger der er en parse error, ligeledes ved jeg ikke om min linje til at sætte ind i db er rigtig.

Håber at mine indrykninger er ok, ser meget dårligt ud i denne her boks.
Avatar billede medions Nybegynder
18. marts 2003 - 11:41 #1
if ($nyklub == 1)
    {
        $forbindelse = mysql_connect("localhost", "root");
        mysql_select_db("sportsstaevne", $forbindelse);

        $resultat = mysql_query("select KlubID from klub where Navn = '$kontakt' ");
   
        if ($resultat)
        {
            echo "Brugernavn er taget venligst vælg et andet";
        } elseif (!$resultat) {
            $insert="INSERT INO klub VALUES(NULL, '$klub', '$adresse', '$Post', '$by', '$email', $telefon', '$kontakt, '$pass')";
        } else {
        echo $klub;
        echo $adresse;
        echo $Post;
        echo $by;
        echo $email;
        echo $telefon;
        echo $kontakt;
        echo $pass;
        echo $gentagpass
    }
    }

//>Rune
Avatar billede exp Juniormester
18. marts 2003 - 11:42 #2
Goddammit medions - jeg havde NØJAGTIG samme forslag!!! Er bare lidt for langsom... :o/
Avatar billede medions Nybegynder
18. marts 2003 - 11:44 #3
exp> LOL :o)

//>Rune
Avatar billede uvoller Novice
18. marts 2003 - 11:47 #4
Jeg bliver imponeret over jeres hurtige svar tider hver gang jeg bruger dette udemærkede forum. Men jeg får en parse error i linje som er linjen lige efter echo $gentagpass
hvorfor gør jeg det, kan ikke gennemskue det.
Avatar billede erikjacobsen Ekspert
18. marts 2003 - 11:51 #5
echo $gentagpass;
Avatar billede erikjacobsen Ekspert
18. marts 2003 - 11:53 #6
Men jeg tror nu da nok løsningen bør være

if ($nyklub == 1)
{
    $forbindelse = mysql_connect("localhost", "root");
    mysql_select_db("sportsstaevne", $forbindelse);

    $resultat = mysql_query("select KlubID from klub where Navn = '$kontakt' ");
   
        if ($resultat)
        {
            echo "Brugernavn er taget venligst vælg et andet";
        }
       
        echo $klub;
        echo $adresse;
        echo $Post;
        echo $by;
        echo $email;
        echo $telefon;
        echo $kontakt;
        echo $pass;
        echo $gentagpass;
       
        if (!$resultat)
        {
            $insert="INSERT INO klub VALUES(NULL, '$klub', '$adresse', '$Post', '$by', '$email', $telefon', '$kontakt, '$pass')";
        }
    }
Avatar billede erikjacobsen Ekspert
18. marts 2003 - 11:54 #7
Og så alternativt:
...
    if ($resultat)
        {
            echo "Brugernavn er taget venligst vælg et andet";
        } else  {
            $insert="INSERT INO klub VALUES(NULL, '$klub', '$adresse', '$Post', '$by', '$email', $telefon', '$kontakt, '$pass')";
        }
       
        echo $klub;
        echo $adresse;
        echo $Post;
        echo $by;
        echo $email;
        echo $telefon;
        echo $kontakt;
        echo $pass;
        echo $gentagpass;
...
Avatar billede uvoller Novice
18. marts 2003 - 12:01 #8
Jeg har lige prøvet erikjacobsens alternative forslag, men den skriver are at brugernavnet er taget, selv om det ikke står i db.
Avatar billede tefcke Nybegynder
18. marts 2003 - 12:01 #9
parse error er i 98% gangene et glemt semi-kolon i den linje før php siger der er fejl-linjen
Avatar billede tefcke Nybegynder
18. marts 2003 - 12:03 #10
je er langt fra sikker, men mysql_query returnerer en mysql ressource, er du sikker på du kan bruge den som boolsk algebra i din if og i din else?
Avatar billede uvoller Novice
18. marts 2003 - 12:07 #11
Neeeeej nu du siger det, det har jeg faktisk ikke tænkt over. Er der en anden måde hvorpå jeg kan kontrollere om der er oprettet en post med samme navn ?

Problemet med glemt ; er vel egentligt det samme som hvis man koder i c, c++ eller Java så kommer det som en fejlmeddelse i linjen efter
Avatar billede erikjacobsen Ekspert
18. marts 2003 - 12:10 #12
if (mysql_num_rows($resultat)>0)
Avatar billede tefcke Nybegynder
18. marts 2003 - 12:13 #13
du kan vel bare udvide det du har nu.
Du trækker en sql-tabel ud med mysql_query(), så mangler du vel at putte det i et array (el. lign.) med mysql_fetch_array() og en whil løkke.

Og til sidst hvis ´navn´ i din tabel er primary key kan du tilgå ´navn´ i dit array med:
$result_array[0]['navn']
Avatar billede tupsy Nybegynder
18. marts 2003 - 12:16 #14
INSERT INO klub
=
INSERT INTO klub
Avatar billede uvoller Novice
18. marts 2003 - 12:31 #15
Det virker fint nu med henholdsvis if (mysql_num_rows($resultat)>0) og else, den skriver bare ikke noget ned i min database, jeg skriver mine data ud på skærmen så de er der ihvertilfælde, og jeg læser også i db når jeg kontrollerer navn, men der er sikkert en fejl i følgedne linje, er der en som kan gennemskue den pls ?
$insert="INSERT INTO klub VALUES(NULL, '$klub', '$adresse', '$Post', '$by', '$email', $telefon', '$kontakt, '$pass')";
NULL er vores primære key, som er en autonummering, ikke den helt optimale måde at lave en db på men det virker forhåbentligt alligevel
Avatar billede erikjacobsen Ekspert
18. marts 2003 - 12:36 #16
du mangler nok en

  mysql_query($insert) or die(mysql_error());
Avatar billede uvoller Novice
18. marts 2003 - 12:49 #17
Nu får jeg en meddelse jeg ikke forstår:
You have an error in your SQL syntax near '', '')' at line 1
min sql linje ser ud som følgende:
$insert = mysql_query("INSERT INTO klub VALUES(NULL, '$klub', '$adresse', '$Post', '$by', '$email', '$telefon', '$kontakt, '$pass')") or die(mysql_error());
og der er sgu mange ) men i hvilken er fejlen, jege er meget taknemlig for hjælpen herinde, da det sparer mig for mange timers frusration, og hjælper mig med at beholde håret på hovedet. Er 30p forresten for lidt med alle de spg jeg har fyret af herinde ?
Avatar billede exp Juniormester
18. marts 2003 - 12:55 #18
$insert = mysql_query("INSERT INTO klub (`id`, `klub`, adresse`, `Post`, `by`, `email`, `telefon`, `kontakt`, `pass`) VALUES(NULL, '$klub', '$adresse', '$Post', '$by', '$email', '$telefon', '$kontakt', '$pass')") or die(mysql_error());
Avatar billede exp Juniormester
18. marts 2003 - 12:56 #19
Der mangler også en apostrof [']:

$insert = mysql_query("INSERT INTO klub VALUES(NULL, '$klub', '$adresse', '$Post', '$by', '$email', '$telefon', '$kontakt', '$pass')") or die(mysql_error());
Avatar billede exp Juniormester
18. marts 2003 - 12:56 #20
begge muligheder burde virke, men umiddelbart ville jeg vælge den sidste...
Avatar billede uvoller Novice
18. marts 2003 - 13:03 #21
Mange tak for hjælpen. Nu er jeg kommet videre, bruget det sidste forslag, men selvfølgelig med den mangleden apostrof. Jeg vil gerne give jer 10 point hver for hjælpen, hvis det er ok, men jeg mangler lige et svar far erikjacobsen før det kan lade sig gøre.
Avatar billede tefcke Nybegynder
18. marts 2003 - 13:31 #22
uvoller >> du er klar over at primær nøgler ikke kan være NULL
Avatar billede uvoller Novice
18. marts 2003 - 13:35 #23
Nej men når jeg sætter den til NULL, og den er sat til autonummering så giver den sig selv et nummer. ar den ihvertilfælde gjort, ved ikke om det er et tilfælde.
Avatar billede erikjacobsen Ekspert
18. marts 2003 - 13:36 #24
Tak, ingen point til mig. Du har ganske ret, uvoller, mht NULL og autoincrement
Avatar billede uvoller Novice
18. marts 2003 - 14:34 #25
Oki i får endnu en gang mange tak for hjælpen.
Jeg giver 15 point til medions og exp, da erikjacobsen har frabedt sig point. Lige et lille side spg, har i linket til en vejledning med henyn til hvordan man får en JS menu til at virke, jeg kan finde en masse sider hvor man kan downloade dem, men ikke noget med hvordan de skal placeres og hvad der evt skal køre i baggrunden af servere osv.
Avatar billede exp Juniormester
18. marts 2003 - 14:45 #26
hvilken JS menu?
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