Page 1 of 1

php/mysql problem

Posted: 15 March 2003, 22:25
by End
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!

Posted: 16 March 2003, 00:37
by md2perpe
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.

Re: php/mysql problem

Posted: 4 January 2010, 01:22
by marcushjortsberg
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>

Re: php/mysql problem

Posted: 10 January 2010, 23:41
by klein
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>

Re: php/mysql problem

Posted: 11 January 2010, 00:51
by marcushjortsberg
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.....

Re: php/mysql problem

Posted: 15 January 2010, 07:15
by klein
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.....

Re: php/mysql problem

Posted: 15 January 2010, 12:36
by marcushjortsberg
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??

Re: php/mysql problem

Posted: 15 January 2010, 18:16
by klein
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??

Re: php/mysql problem

Posted: 16 January 2010, 01:43
by kjell-e
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.

Re: php/mysql problem

Posted: 18 January 2010, 08:12
by klein

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.

Re: php/mysql problem

Posted: 18 January 2010, 10:10
by Fader_Berg
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

Re: php/mysql problem

Posted: 19 January 2010, 22:14
by erik_persson
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.

Re: php/mysql problem

Posted: 20 January 2010, 01:23
by Fader_Berg
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.