php/mysql problem

Här diskuteras PHP, Perl och mm sånt som rör webutveckling.
Post Reply
End
Posts: 119
Joined: 1 March 2003, 14:22

php/mysql problem

Post by End » 15 March 2003, 22:25

Jag är helt ny på det här, och tänkte test köra mitt första script (som jag tagit ur en bok). Allt verkar rätt, men jag får det inte att funka.

Här är koden:

Code: Select all

<html>
<head><title>Register</title></head>
<body>
<b>ADRESSREGISTER</b></font><br><br>
<font size=6 face=arial><B>ADRESSREGISTER</B></FONT><br><br>
<font size=3 face=arial>

<?php

// Skapa en databaskoppling

$db = mysql_pconnect("localhost", "anv", "pass");
mysql_select_db("registerdb",$db);

if ($submit) {

// Finns posten redan? Gör en uppdatering
if ($id) {
$sql = "UPDATE register SET fornamn='$fornamn',
efternamn='$efternamn',email='$email' WHERE id=$id";
$resultat = mysql_query($sql);
print "Posten för $fornamn blev uppdaterade <br><br>";
print "<a href=$PHP_SELF>Tillbaka</a>";
}

// Om inte posten finns, skapa en ny
else {
$sql = "INSERT INTO register (fornamn,efternamn,email)
VALUES ('$fornamn','$efternamn','$email')";
$resultat = mysql_query($sql);
print "Uppgifterna för $fornamn blev inlagda <br><br>";
print "<a href=$PHP_SELF>Tillbaka</a>";
}

// Borttagning av post
} elseif ($tabort) {
$sql = "DELETE FROM register WHERE id=$id";
$resultat = mysql_query($sql);

print "Posten blev borttagen <br><br>";
print "<a href=$PHP_SELF>Tillbaka</a>";
} else {

// Skriv ut alla poster
if (!$id) {
$resultat = mysql_query("SELECT * FROM register",$db);
while ($kolumn = mysql_fetch_array($resultat)) {
print "<b>Förnamn:</b> ".$kolumn['fornamn']."<br>\n";
print "<b>Efternamn:</b> ".$kolumn['efternamn']."<br>\n";
print "<b>E-mail:</b> ".$kolumn['email']."<br>\n";
?>

<form method="post" action="<?php print $PHP_SELF?>">
<input type=hidden name="id" value="<?php print $kolumn[0] ?>">
<input type="Submit' name="tabort" value="Ta bort">
<input type="Submit" name="andra' value="Ändra">
</form>

<?php
print "<hr noshade size=1 width=250 align=left>";
{
}
?>
<form method="post" action="<?php print $PHP_SELF?>">
<?php
if ($andra) {
$sql = "SELECT * FROM register WHERE id=$id";
$resultat = mysql_query($sgl);
$kolumn = mysql_fetch_array($resultat);
$id = $kolumn["id"];
$fornamn = $kolumn["fornamn"];
$efternamn = $kolumn["efternamn"];
$email = $kolumn["email"];
?>
<input type=hidden name="id" value="<?php print $id ?>">
<?php } ?>
<b>Registera/ändra post</b><br><br>
<b>Förnamn:</b>
<input type="Text" name="fornamn" value="<?php print $fornamn ?>"><br>
<b>Efternamn:</b>
<input type="Text" name="efternamn" value="<?php print $efternamn ?>"><br>
<b>E-mail:</b>
<input type="Text" name="email" value="<?php print $email ?>"><br><br>

<input type="Submit" name="submit" value="Ok">
</form>

<?php } ?>
</body>
</html> 
Med detta får jag svaret Parse error: parse error, unexpected $end in C:\Inetpub\wwwroot\register on line 90 (line 90 är "</html>")

Någon som vet felet?


Vet du inte, så kanske du kan blidra med någon bra sajt om mysql och php ihop. Tack!

User avatar
md2perpe
Posts: 932
Joined: 12 July 2002, 18:27
Location: Hallonbergen, Kungsbodarna

Post by md2perpe » 16 March 2003, 00:37

Du har missat på ett tecken när du skrivit av (om det står rätt i boken). Det finns ett par rader

Code: Select all

{
}
vilka som de står är helt meningslösa (tomt block). Men om du byter ut dem mot

Code: Select all

}
}
blir de direkt mer meningsfulla och "parse error" försvinner.
RTFM: förkortning som är bra att ta till om man vill låtsas tycka att frågan är trivial, fast man egentligen inte själv har ett svar.

marcushjortsberg
Posts: 9
Joined: 4 January 2010, 01:13

Re: php/mysql problem

Post by marcushjortsberg » 4 January 2010, 01:22

Jag har också problem med samma kod....

Men jag kan inte lägga till, radera eller ändra det som finns i databasen. Det går att lägga till rader i tabellen direkt i mysql men inte från själva formuläret...??

jag vill ändra tabellnamnet till anmalan (anmälan), har provat.
Vad är registerdb för något?? Är det tabellnamnet som då bör andras till anmalandb??

Code: Select all

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Anmälan</title>
</head>

<body>
<?php
//Skapa en databaskoppling
$db = mysql_pconnect("localhostl", "anv", "pass");
mysql_select_db("registerdb",$db);
if ($submit) {
//Finns posten redan? Gör en uppdatering
if ($id) {
$sql = "UPDATE anmalan SET fornamn='$fornamn',efternamn='$efternamn',email='$email' WHERE id=$id";
$resultat = mysql_query($sql);
print "Posten för $fornamn blev uppdaterad<br /><br />";
print "<a href=$PHP_SELF>Tillbaka</a>";
}

//Om inte posten finns
else {
$sql = "INSERT INTO anmalan (fornamn,efternamn,email)
VALUES ('$fornamn','$efternamn','$email')";
$resultat = mysql_query($sql);
print "Uppgifterna för $fornamn blev inlagda<br /><br />";
print "<a href=$PHP_SELF>Tillbaka</a>";
}

//Borttagning av post
} elseif ($tabort) {
$sql = "DELETE FROM anmalan WHERE id=$id";
$resultat = mysql_query($sql);
print "Posten blev borttagen<br /><br />";
print "<a href=$PHP_SELF>Tillbaka</a>";
} else {

//Skriv ut alla poster
if (!$id) {
$resultat = mysql_query("SELECT * FROM anmalan",$db);
while ($kolumn = mysql_fetch_array($resultat)) {
print "<b>Förnamn:</b> ".$kolumn['fornamn']."<br />\n";
print "<b>Efternamn:</b> ".$kolumn['efternamn']."<br />\n";
print "<b>E-mail:</b> ".$kolumn['email']."<br />\n";
?>

<form method="post" action="<?php print $PHP_SELF ?>">
<input type="hidden" name="id" value="<?php print $kolumn[0] ?>" />
<input type="submit" name="tabort" value="Ta bort" />
<input type="submit" name="andra" value="Ändra"  />
</form>
<?php
print "<hr noshade size='1' width='250' align='left'>";
}
}
?>
<form method="post" action="<?php print $PHP_SELF ?>">
<?php
if ($andra) {
$sql = "SELECT * FROM anmalan WHERE id=$id";
$resultat = mysql_query($sql);
$kolumn = mysql_fetch_array($resultat);
$id = $kolumn["id"];
$fornamn = $kolumn["fornamn"];
$efternamn = $kolumn["efternamn"];
$email = $kolumn["email"];
?>
<input type="hidden" name="id" value="<?php print $id ?>" />
<?php } ?>
<b>Registrera/ändra post</b><br /><br />
<b>Förnamn:</b>
<input type="text" name="fornamn" value="<?php print $fornamn ?>" /><br />
<b>Efternamn:</b>
<input type="text" name="efternamn" value="<?php print $efternamn ?>" /><br />
<b>E-mail:</b>
<input type="text" name="email" value="<?php print $email ?>" /><br /><br />

<input type="submit" name="submit" value="Ok" />
</form>

<?php } ?>
</body>
</html>

klein
Posts: 4887
Joined: 1 April 2002, 02:00
Location: 43,41,41N, 7,15,47Ö

Re: php/mysql problem

Post by klein » 10 January 2010, 23:41

Orginal inlägget är från 2003 .. Men prov skjut SQL frågan i Mysql prompt först. Sedan finns hyfsade bra php editorer numera, Eclipse och netbearns, båda kan upptäcka syntax fel. Vill man bara pröva kod, så kan man även köra php-cli, testa koden direkt i bash.

Vill du byta namn på en tabell? Det finns ett verktyg som följer med debian / Ubuntu som hetter emma, där kan man SQL arbete. Kör du scriptet på hemma burk eller på webbhotell? Kan vara rättighets problem.
marcushjortsberg wrote:Jag har också problem med samma kod....

Men jag kan inte lägga till, radera eller ändra det som finns i databasen. Det går att lägga till rader i tabellen direkt i mysql men inte från själva formuläret...??

jag vill ändra tabellnamnet till anmalan (anmälan), har provat.
Vad är registerdb för något?? Är det tabellnamnet som då bör andras till anmalandb??

Code: Select all

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Anmälan</title>
</head>

<body>
<?php
//Skapa en databaskoppling
$db = mysql_pconnect("localhostl", "anv", "pass");
mysql_select_db("registerdb",$db);
if ($submit) {
//Finns posten redan? Gör en uppdatering
if ($id) {
$sql = "UPDATE anmalan SET fornamn='$fornamn',efternamn='$efternamn',email='$email' WHERE id=$id";
$resultat = mysql_query($sql);
print "Posten för $fornamn blev uppdaterad<br /><br />";
print "<a href=$PHP_SELF>Tillbaka</a>";
}

//Om inte posten finns
else {
$sql = "INSERT INTO anmalan (fornamn,efternamn,email)
VALUES ('$fornamn','$efternamn','$email')";
$resultat = mysql_query($sql);
print "Uppgifterna för $fornamn blev inlagda<br /><br />";
print "<a href=$PHP_SELF>Tillbaka</a>";
}

//Borttagning av post
} elseif ($tabort) {
$sql = "DELETE FROM anmalan WHERE id=$id";
$resultat = mysql_query($sql);
print "Posten blev borttagen<br /><br />";
print "<a href=$PHP_SELF>Tillbaka</a>";
} else {

//Skriv ut alla poster
if (!$id) {
$resultat = mysql_query("SELECT * FROM anmalan",$db);
while ($kolumn = mysql_fetch_array($resultat)) {
print "<b>Förnamn:</b> ".$kolumn['fornamn']."<br />\n";
print "<b>Efternamn:</b> ".$kolumn['efternamn']."<br />\n";
print "<b>E-mail:</b> ".$kolumn['email']."<br />\n";
?>

<form method="post" action="<?php print $PHP_SELF ?>">
<input type="hidden" name="id" value="<?php print $kolumn[0] ?>" />
<input type="submit" name="tabort" value="Ta bort" />
<input type="submit" name="andra" value="Ändra"  />
</form>
<?php
print "<hr noshade size='1' width='250' align='left'>";
}
}
?>
<form method="post" action="<?php print $PHP_SELF ?>">
<?php
if ($andra) {
$sql = "SELECT * FROM anmalan WHERE id=$id";
$resultat = mysql_query($sql);
$kolumn = mysql_fetch_array($resultat);
$id = $kolumn["id"];
$fornamn = $kolumn["fornamn"];
$efternamn = $kolumn["efternamn"];
$email = $kolumn["email"];
?>
<input type="hidden" name="id" value="<?php print $id ?>" />
<?php } ?>
<b>Registrera/ändra post</b><br /><br />
<b>Förnamn:</b>
<input type="text" name="fornamn" value="<?php print $fornamn ?>" /><br />
<b>Efternamn:</b>
<input type="text" name="efternamn" value="<?php print $efternamn ?>" /><br />
<b>E-mail:</b>
<input type="text" name="email" value="<?php print $email ?>" /><br /><br />

<input type="submit" name="submit" value="Ok" />
</form>

<?php } ?>
</body>
</html>

marcushjortsberg
Posts: 9
Joined: 4 January 2010, 01:13

Re: php/mysql problem

Post by marcushjortsberg » 11 January 2010, 00:51

Ja, det blev lite nya ord och fraser där för mig :wink:

"Men prov skjut SQL frågan i Mysql prompt först"

Jag antar att det innebär att jag ska lägga till koden någonstans i MySQL och se vad den säger....??

Jag är ny inom detta :lol:

"testa koden direkt i bash" ??????

Ingen aaaning om vad det kan betyda.....

Men, men. Jag fortsätter så får jag lära mig eftersom :)

Jag kör på webhotell.

Synd att scripten inte funkar...jag har också tagit det från en bok, som jag köpt för typ ett halvår sedan.....

klein
Posts: 4887
Joined: 1 April 2002, 02:00
Location: 43,41,41N, 7,15,47Ö

Re: php/mysql problem

Post by klein » 15 January 2010, 07:15

Exat! Det är inte ovanligt skolböcker innehåller fel. Så försök och bryta ner problemet i olika del monement.

Förutsatt att du har shell access , så skriver du

Code: Select all

mysql -u<username> -p<password> databasnamn
För köra php i shellet, så skall du installera ett program som heter php5-cli , sedan skriver man bara php <filnamn>

marcushjortsberg wrote:Ja, det blev lite nya ord och fraser där för mig :wink:

"Men prov skjut SQL frågan i Mysql prompt först"

Jag antar att det innebär att jag ska lägga till koden någonstans i MySQL och se vad den säger....??

Jag är ny inom detta :lol:

"testa koden direkt i bash" ??????

Ingen aaaning om vad det kan betyda.....

Men, men. Jag fortsätter så får jag lära mig eftersom :)

Jag kör på webhotell.

Synd att scripten inte funkar...jag har också tagit det från en bok, som jag köpt för typ ett halvår sedan.....

marcushjortsberg
Posts: 9
Joined: 4 January 2010, 01:13

Re: php/mysql problem

Post by marcushjortsberg » 15 January 2010, 12:36

Jag är tacksam för hjälpen!

men vad är shell access?? Ett program?

Jag kör en bärbar med windows xp.

Har försökt att installera phptriad, php, apache osv men något händer med datorn då...det blir "blåskärm" ibland...endast när jag har någon typ av webserver installerad...

Så, vad är shell access??

klein
Posts: 4887
Joined: 1 April 2002, 02:00
Location: 43,41,41N, 7,15,47Ö

Re: php/mysql problem

Post by klein » 15 January 2010, 18:16

Vet inte hur man kör php på Windows.. Antaligen lättast och installera ubuntu på någon äldre stationär dator och sedan SSH till den.

Om du har lite kräm i maskinen , kan du köra en vbox med ubuntu server ..
marcushjortsberg wrote:Jag är tacksam för hjälpen!

men vad är shell access?? Ett program?

Jag kör en bärbar med windows xp.

Har försökt att installera phptriad, php, apache osv men något händer med datorn då...det blir "blåskärm" ibland...endast när jag har någon typ av webserver installerad...

Så, vad är shell access??

User avatar
kjell-e
Posts: 2817
Joined: 21 December 2002, 16:27
Location: Linköping
Contact:

Re: php/mysql problem

Post by kjell-e » 16 January 2010, 01:43

marcushjortsberg wrote: men vad är shell access?? Ett program?

Jag kör en bärbar med windows xp.
Så, vad är shell access??
Det är när du kan köra kommandon i ett terminalfönster. I detta terminalfönster kör ett program som kallas skal. I detta terminalfönster skriver du textkommandon som skalprogrammet ser till att de utförs.

I Linux är det oftast ett skalprogram som heter bash som man använder i terminalfönster. I windows har du command.com.

klein
Posts: 4887
Joined: 1 April 2002, 02:00
Location: 43,41,41N, 7,15,47Ö

Re: php/mysql problem

Post by klein » 18 January 2010, 08:12

Code: Select all

Besserwisser mode On

Numera hetter dock command.com  cmd.com..:-) commmand.com är windows som är baserade på DOS { Win95,Win98,WinMe }

Besserwisser mode off
kjell-e wrote:
marcushjortsberg wrote: men vad är shell access?? Ett program?

Jag kör en bärbar med windows xp.
Så, vad är shell access??
Det är när du kan köra kommandon i ett terminalfönster. I detta terminalfönster kör ett program som kallas skal. I detta terminalfönster skriver du textkommandon som skalprogrammet ser till att de utförs.

I Linux är det oftast ett skalprogram som heter bash som man använder i terminalfönster. I windows har du command.com.

Fader_Berg
Posts: 180
Joined: 2 September 2009, 09:31

Re: php/mysql problem

Post by Fader_Berg » 18 January 2010, 10:10

klein wrote:

Code: Select all

Besserwisser mode On

Numera hetter dock command.com  cmd.com..:-) commmand.com är windows som är baserade på DOS { Win95,Win98,WinMe }

Besserwisser mode off

Code: Select all

Besserwisser mode on
Det ska vara cmd.exe, inte cmd.com. :)

Code: Select all

Besserwisser mode off

erik_persson
Posts: 1474
Joined: 29 August 2002, 15:19

Re: php/mysql problem

Post by erik_persson » 19 January 2010, 22:14

För den som är intresserad av lite DOS-historik så var det, vad jag kommer ihåg så, att "com-filer" var begränsade till ett kod-segment, och därmed inte använde far-jumps, medan "exe-filer" inte hade denna begränsning.

Fader_Berg
Posts: 180
Joined: 2 September 2009, 09:31

Re: php/mysql problem

Post by Fader_Berg » 20 January 2010, 01:23

Någonting i den stilen var det. Debug hette ett program (med flera användningsområden) som levererades med <=W95, (har inte riktigt koll på om de senare versionerna hade den versionen utav debug). Men med den kunde man kompilera lätt assembly-kod till com-filer. Knappast praktiskt, men det var kul att leka med.

Post Reply