---
title: "Men varför funkar inte INSERT här??? Hjälp!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/64497-men-varför-funkar-inte-insert-här-hjälp"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "sys19"
published: "2003-01-11T15:42:35.000Z"
updated: "2003-01-14T14:01:09.000Z"
replies: 14
views: 284
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/64497-men-varför-funkar-inte-insert-här-hjälp"
---

# Men varför funkar inte INSERT här??? Hjälp!

## #1 — sys19, 2003-01-11T15:42Z

Vet inte om det här skall frågas i php-forumet eller MySql men här kommer det i alla fall: Varför ersätts inte posten i tabellen???? Variabeln "$anvandarnamn" tillhör attributet "value" i definitionen av textfältet. Borde det inte gå att jämföra $anvandarnamn med attributet "username" i tabellen? Jag vet att vi är jobbiga men vi är ju noobs! :-)

If-satsen exekveras korrekt. Det har vi testat.

if(isset($spara)){
           //$iv=mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TripleDES,MCRYPT_MODE_CBC),MCRYPT_RAND);
           //$crypttext=mcrypt_encrypt(MCRYPT_TripleDES,$key,$losenord,MCRYPT_MODE_CBC,$iv);
           $dbconn=mysql_connect("localhost","XXX","XXX") or die(mysql_error());
           mysql_select_db("sys19",$dbconn) or die(mysql_error());
           if ($uppdateraok=="OK"){
		   	$sql="UPDATE authuser SET username='$anvandarnamn',password='$losenord',forename='$fornamn',lastname='$efternamn',startdate='$startdatum',enddate='$stopdatum' WHERE username='$anvandarnamn'";
		   	$uppdateraok="NEGATIVE";
		   }
		   else{	
			$sql="INSERT INTO authuser (username,password,forename,lastname,startdate,enddate) VALUES ('$anvandarnamn','$losenord','$fornamn','$efternamn','$startdatum','$stopdatum')";
           }
		   $resultat=mysql_query($sql);
           mysql_close($dbconn) or die(mysql_error());
           }

Permalänk: https://www.webforum.nu/p/64497

## #2 — sys19, 2003-01-11T16:22Z

Flåt. Han går inte alls in i if-satsen... Men varför inte det? :-)

Permalänk: https://www.webforum.nu/p/909756

## #3 — Matte, 2003-01-11T16:40Z

Vilken av if-satserna går den inte in i, och hur ser ditt formulär ut?

Sen räcker det att skriva sitt inlägg i ett forum. Hamnar det i fel forum så flyttar en moderator det till rätt.  :)

Permalänk: https://www.webforum.nu/p/909769

## #4 — sys19, 2003-01-11T17:01Z

Faktum är att den gör ALLTID else-satsen hur mycket vi än vrider och vänder på variablerna. Variabeln uppdateraok sätts till OK då man trycker på knappen uppdatera (som körs i samma dokument via en isset). Hilfe! Sorry att vi spammade med två inlägg... kommer inte att upprepas! :-)

Permalänk: https://www.webforum.nu/p/909785

## #5 — Matte, 2003-01-11T17:28Z

```php
if ($uppdateraok=="OK"){
```

Denna sats måste returnera falskt för att du ska komma in i else-satsen. Det gör den om inte variabeln finns eller om variabeln är något annat än 'OK'. Kan den vara 'ok' eller 'Ok'?

För test:

```php
echo $uppdateraok;
if ($uppdateraok=="OK"){
```

Permalänk: https://www.webforum.nu/p/909805

## #6 — sys19, 2003-01-11T17:48Z

Vi har kollat om den finns innan if-satsen och det gör den märkligt nog inte. Vi har satt den till OK när man trycker på Uppdatera-knappen. Naturligtvis är anledningen att den alltid gör else-satsen då, att den hittar inte variabeln alls. Kan det vara något problem med att sätta den till OK innanför en annan if-sats(den han kör när man trycker på Uppdatera)? Trotts att den ligger i samma .php -dokument? Måste man göra den "global" på något sätt?

Permalänk: https://www.webforum.nu/p/909824

## #7 — Matte, 2003-01-11T18:00Z

Hur ser det ut i formuläret. För den knapp ni trycker på bör det stå:

```
<input type="submit" name="uppdateraok" value="OK";
```

 
Ser att det också finns en variabel $spara. Kommer den från ett 'hidden' fält?

Permalänk: https://www.webforum.nu/p/909836

## #8 — sys19, 2003-01-11T18:07Z

Hmm. SKickar med hela .php sidan så ser du hur det ser ut:

\<?php
session_start();
if ($HTTP_SESSION_VARS\["sessionsid"\]!="OK")
{
header("Location: <http://XXX/inloggning.php>");
exit();
}
?\>
\<html\>

\<head\>
      \<title\>Admin user\</title\>
      \<link rel="stylesheet" type="text/css" href="bakgrund.css"\>
\</head\>

\<body\>
      \<?php
		   if (isset($Uppdatera)){
             $dbconn=mysql_connect("localhost","XXX","XXX") or die(mysql_error());
             mysql_select_db("sys19",$dbconn) or die(mysql_error());
             $sql="SELECT \* FROM authuser WHERE username='$updateknapp'";
             $resultat=mysql_query($sql);
             $kolumn=mysql_fetch_array($resultat);
             $fornamn=$kolumn\["forename"\];
             $efternamn=$kolumn\["lastname"\];
             $anvandarnamn=$kolumn\["username"\];
             //$decrypttext=mcrypt_decrypt(MCRYPT_TripleDES,$key,$kolumn\["password"\],MCRYPT_MODE_CBC,$iv);
             //$losenord=$decrypttext;
             $losenord=$kolumn\["password"\];
             $startdatum=$kolumn\["startdate"\];
             $stopdatum=$kolumn\["enddate"\];
             mysql_close($dbconn) or die(mysql_error());
		   	$uppdateraok="OK";
		   }

           if (isset($ny)){
           $fornamn = "";
           $efternamn = "";
           $anvandarnamn = "";
           $losenord = "";
           $startdatum = "";
           $stopdatum = "";
		   $uppdateraok="NO";
		   }

           if(isset($spara)){
           //$iv=mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TripleDES,MCRYPT_MODE_CBC),MCRYPT_RAND);
           //$crypttext=mcrypt_encrypt(MCRYPT_TripleDES,$key,$losenord,MCRYPT_MODE_CBC,$iv);
           $dbconn=mysql_connect("localhost","sys19","5Bastards") or die(mysql_error());
           mysql_select_db("sys19",$dbconn) or die(mysql_error());
		   if($uppdateraok=="OK"){		
			$sql="UPDATE authuser SET username='$anvandarnamn',password='$losenord',forename='$fornamn',lastname='$efternamn',startdate='$startdatum',enddate='$stopdatum' WHERE username='$anvandarnamn'";
			$uppdateraok=="NO";
			}else{
			$sql="INSERT INTO authuser (username,password,forename,lastname,startdate,enddate) VALUES ('$anvandarnamn','$losenord','$fornamn','$efternamn','$startdatum','$stopdatum')";
		   }
           $resultat=mysql_query($sql);
		   mysql_close($dbconn) or die(mysql_error());
           }  

           $dbconn=mysql_connect("localhost","XXX","XXX") or die(mysql_error());
           mysql_select_db("sys19",$dbconn) or die(mysql_error());
           echo("\<form action=\\"$PHP_SELF\\" method=\\"post\\"\>\\n");
           echo("Förnamn:\</br\>\\n");
           echo("\<input type=\\"text\\" name=\\"fornamn\\" size=\\"30\\" value=\\"$fornamn\\"\>\</br\>\\n");
           echo("Efternamn:\</br\>\\n");
           echo("\<input type=\\"text\\" name=\\"efternamn\\" size=\\"30\\" value=\\"$efternamn\\"\>\</br\>\\n");
           echo("Användarnamn:\</br\>\\n");
           echo("\<input type=\\"text\\" name=\\"anvandarnamn\\" size=\\"30\\" value=\\"$anvandarnamn\\"\>\</br\>\\n");
           echo("Lösenord:\</br\>\\n");
           echo("\<input type=\\"text\\" name=\\"losenord\\" size=\\"30\\" value=\\"$losenord\\"\>\</br\>\\n");
           echo("Startdatum:\</br\>\\n");
           echo("\<input type=\\"text\\" name=\\"startdatum\\" size=\\"30\\" value=\\"$startdatum\\"\>\</br\>\\n");
           echo("Stoppdatum:\</br\>\\n");
           echo("\<input type=\\"text\\" name=\\"stopdatum\\" size=\\"30\\" value=\\"$stopdatum\\"\>\</br\>\\n");
           echo("\<input type=\\"submit\\" name=\\"spara\\" value=\\"Spara\\"\>\\n");
           echo("\<input type=\\"reset\\" name=\\"rensa\\" value=\\"Rensa\\" onreset=\\"reset\\"\>\\n");
           echo("\<input type=\\"submit\\" name=\\"ny\\" value=\\"Ny\\"\>\\n");
           echo("\</form\>");

           $sql="SELECT \* FROM authuser;";
           $recordset=mysql_query($sql,$dbconn) or die(mysql_error());
           while($record=mysql_fetch_array($recordset))
      		{
                echo("Användarnamn: ".$record\["username"\]."\</br\>\\n");
        	echo("Lösenord: ".$record\["password"\]."\</br\>\\n");
        	echo("Förnamn: ".$record\["forename"\]."\</br\>\\n");
        	echo("Efternamn: ".$record\["lastname"\]."\</br\>\\n");
        	echo("Startdatum: ".$record\["startdate"\]."\</br\>\\n");
			echo("Stopdatum: ".$record\["enddate"\]."\</br\>\\n");
        	echo("\<form action=\\"http:/XXX/deladmin.php\\" method=\\"post\\"\>\\n");
			echo("\<input type=\\"hidden\\" name=\\"tabortknapp\\" value=\\"{$record\["username"\]}\\"\>\\n");
                        echo("\<input type=\\"submit\\" value=\\"Ta Bort\\"\>\\n");
                echo("\</form\>");
                echo("\<form action=\\"$PHP_SELF\\" method=\\"post\\"\>\\n");
                            echo("\<input type=\\"hidden\\" name=\\"updateknapp\\" value=\\"{$record\["username"\]}\\"\>\\n");
                            echo("\<input type=\\"submit\\" name=\\"Uppdatera\\" value=\\"Uppdatera\\"\>\\n");
                echo("\</form\>");
                echo("\<p\>-------------------------------------------------------------\</p\>\</br\>");
                }
        mysql_close($dbconn) or die(mysql_error());
?\>
\</body\>

\</html\>

Permalänk: https://www.webforum.nu/p/909844

## #9 — Viktor, 2003-01-11T18:14Z

Inget svar men ett tips :)
Använd gärna &#91;php\] när du skriver in kod, det är lättare att följa den då.
typ
&#91;php\]

```php
$dbconn=mysql_connect("localhost","XXX","XXX") or die(mysql_error()); 
mysql_select_db("sys19",$dbconn) or die(mysql_error());
```

/Viktor

Permalänk: https://www.webforum.nu/p/909852

## #10 — sys19, 2003-01-11T18:15Z

Ok sorry! E inte van att man faktiskt får svar på sådana här siter så jag e lite ovan. Tack för tipset! :-)

Permalänk: https://www.webforum.nu/p/909855

## #11 — Matte, 2003-01-11T18:18Z

Det är den här if-satsen den inte går in i:

```
if(isset($spara)){
```

 
Du skapar inte, eller skickar inte någon variabel $spara. Eftersom den inte finns så blir if-satsen falskt. Prova med att skapa variabeln samtidigt som $uppdateraok:
 

```
$uppdateraok="OK"; 
$spara = 1;
```

Permalänk: https://www.webforum.nu/p/909856

## #12 — sys19, 2003-01-12T13:09Z

Hmm. Nej den if-satsen går den in i. Meningen är alltså att uppdatera-knappen skall endast lyfta upp från databasen till textfälten. 
Men sedan när spara trycks på skall befintlig post skrivas över. Tex om man vill ändra efternamn. Det gör den också om man skriver så här:

```php
if(1){
$sql="UPDATE authuser SET username='$anvandarnamn',password='$losenord',forename='$fornamn',lastname='$efternamn',startdate='$startdatum',enddate='$stopdatum' WHERE username='$anvandarnamn'";
$uppdateraok=="NO"; 
}else{
$sql="INSERT INTO authuser (username,password,forename,lastname,startdate,enddate) VALUES ('$anvandarnamn','$losenord','$fornamn','$efternamn','$startdatum','$stopdatum')";
}
```

Givetvis är då villkoret giltigt eftersom den alltid får en etta. Men då försvinner hela vitsen och logiken.

Permalänk: https://www.webforum.nu/p/910372

## #13 — Matte, 2003-01-12T22:13Z

Då hänger jag med.

När du klickar uppdaterar så hämtas en post och skrivs ut i formuläret, och sen när du klickar spara så uppdateras inte posten utan en ny läggs in?

Förklaringen tror jag är att du inte har något fält 'uppdateraok' i ditt formulär, därför skickas inte heller någon sådan variabel, och därmed finns variabel $uppdateraok inte.

Prova det här:

```
.
.
.
echo("<input type=\"text\" name=\"stopdatum\" size=\"30\" value=\"$stopdatum\"></br>\n"); 
if (isset($uppdateraok)){
   echo("<input type=\"hidden\" name=\"uppdateraok\" value=\"ok\">\n"); 
}
echo("<input type=\"submit\" name=\"spara\" value=\"Spara\">\n"); 
echo("<input type=\"reset\" name=\"rensa\" value=\"Rensa\" onreset=\"reset\">\n"); 
.
.
.
```

Permalänk: https://www.webforum.nu/p/910849

## #14 — sys19, 2003-01-13T20:41Z

När du klickar uppdaterar så hämtas en post och skrivs ut i formuläret men det läggs inte till en ny post i db. Det händer inte ett smack när uppdaterar trycks.
Vi fuskade lite och gjorde en knapp till "ersätt" som  skriver över posten. Det är en ful-lösning som inte stämmer överens med hur det är tänkt. Ska prova ditt förslag.

```php
//Vid tryck på "ersätt" skriv över post
 if(isset($sparaover)){
$dbconn=mysql_connect("localhost","anv","losen") or die(mysql_error());
 mysql_select_db("sys19",$dbconn) or die(mysql_error());	   
$sql="UPDATE authuser SET username='$anvandarnamn',password='$crypttext',forename='$fornamn',lastname='$efternamn',startdate='$startdatum',enddate='$stopdatum' ='$stopdatum' WHERE username='$anvandarnamn'";
$resultat=mysql_query($sql);
mysql_close($dbconn) or die(mysql_error());
			}
```

Permalänk: https://www.webforum.nu/p/911671

## #15 — sys19, 2003-01-14T14:01Z

Ah! Båda varianterna fungerade (ful och fin). Tack för allt engagemang och all hjälp! Utan Salamander skulle vi ha fastnat flertalet gånger. :-D

Permalänk: https://www.webforum.nu/p/912151

---

Tråden på webben: https://www.webforum.nu/amne/php/64497-men-varför-funkar-inte-insert-här-hjälp
