Just nu i M3-nätverket
Jump to content

ny webbshop


Micro90

Recommended Posts

Nu försöker jag med en delvis ny variant av webbshop.

 

Har denna sidan:

 

<?php

 

$sql = "SELECT links.fornamn, links.mellannamn, links.efternamn, links.titel, links.beskrivning, links.isbn, links.forlag, links.kategori, links.pris, links.fpris, links.anvandare, bilder.filnamn FROM links LEFT JOIN bilder ON links.id = bilder.bokid ORDER by efternamn";

$result = mysql_query($sql);

 

 

while ($rad = mysql_fetch_array($result)) {

echo " <tr>\n <td><img src=\"bilder/";

if ($rad['filnamn'] == NULL) {

echo "titelbild.gif\"></td>";

} else {

echo $rad['filnamn']."\"></td>"; }

echo " \n <td><span style=\"font-weight: bold; color: #0000cc\">" .$rad['fornamn']."</span>";

echo " \n <span style=\"font-weight: bold; color: #0000cc\">" .$rad['mellannamn']."</span>";

echo " \n <span style=\"font-weight: bold; color: #0000cc\">" .$rad['efternamn']."</span><br>";

echo " \n <span style=\"font-weight: bold; color: #cc0000\">" .$rad['titel']."</span><br>";

echo wordwrap($rad['beskrivning'], 70, "<br>", 1) ."<br>";

echo " ISBN: " . $rad['isbn'] ."<br>";

echo " Förlag: " . $rad['forlag'] ."<br>";

echo " Pris: " . $rad['pris'] ."<br>";

echo " Läs mer om <a href=\"titelinfo.php?namnet={$rad['titel']}\">{$rad['titel']}</a><br>";

echo " Kategori: " . $rad['kategori'] ."<br>";

echo " Lägg denna bok i kundvagnen <a href=\"kundvagn.php?namnet={$rad['titel']}\">{$rad['titel']}</a></td>\n </tr>\n";

}

?>

 

Har gjort en tabell som heter kundvagn med denna strukturen:

 

#

# Struktur för tabell `kundvagn`

#

 

CREATE TABLE kundvagn (

id int(11) NOT NULL default '0',

user varchar(50) NOT NULL default '',

titel varchar(50) NOT NULL default '',

pris varchar(50) NOT NULL default '',

anvandare varchar(50) NOT NULL default ''

) TYPE=MyISAM;

 

Och en sida 'kundvagn.php' som ser ut så här:

 

<?php

session_start(); // Alltid överst på sidan

 

include "conn.php"; // Databasanslutningen

 

?>

<html>

<head>

<title>Untitled</title>

</head>

 

<body><br><br><br><br>

Här ska informationen till kundvagnen läggas in..

 

 

<a href="visakorg.php">visa info</a>

<?php

 

// Innehåll

 

if (isset($_POST['submit'])) {

$sql = "INSERT INTO kundvagn(id, user, titel, pris, anvandare)

VALUES('{$_POST['id']}', '{$_POST['user']}', '{$_POST['titel']}', '{$_POST['anvandare']}', '{$_POST['pris']}', '{$_SESSION['sess_user']}')";

 

mysql_query($sql) or die("SQL: $sql <br>".mysql_error());

}

 

?>

</body>

</html>

 

Men.. det funkar inte.. det läggs inte in info i kundvagnen...

 

 

 

Link to comment
Share on other sites

Jag har förändrat kundvagnssidan lite.. Jag har skalat ner den till ett minimum för att se vad det är som är fel. Men jaj hittar ändå inte felet.

Så här ser sidan ut just nu:

 

<?php

session_start(); // Alltid överst på sidan

 

include "conn.php"; // Databasanslutningen

 

?>

<html>

<head>

<title>Untitled</title>

</head>

 

<body><br><br><br><br>

Här läggs informationen in....

Om du har lagt in en titel, kan du också lägga till en bild.

Det kan du göra <a href="form1.php">här</a>.

 

<a href="visaalla.php">visa info</a>

<?php

 

 

 

// Innehåll

 

if(!isset($_SESSION['sess_user'])) {

echo 'Du måste vara inloggad med rätt användarnamn för att beställa en bok!';

}

else {

if(isset($_POST['submit'])) {

$sql = "INSERT INTO kundvagn(titel,anvandare)

VALUES('{$_POST['titel']}', '{$_SESSION['sess_user']}')";

echo "Inne i if-satsen.<br>";

echo "\$_POST['titel'] har värdet: " . $_POST['titel'] . "<br>";

echo "och sql-frågan ser ut såhär: " . $sql . "<br>";

mysql_query($sql) or die(mysql_error());

echo "Boken är lagd i kundvagnen<br><br>";

}

}

?>

</body>

</html>

 

Men den ger inga meddelanden alls och inget läggs i databasen...

 

Link to comment
Share on other sites

Skriv echo mysql_error(); nedanför sql-inserten så kommer ett eventuellt felmeddelande att skrivas ut.

 

 

_________

TicoRoman - Anfall är bästa försvar

 

Link to comment
Share on other sites

Ah just det, du har ju glömt att köra sql-frågan!

 

$sql = "INSERT INTO kundvagn(titel,anvandare) 
VALUES('{$_POST['titel']}', '{$_SESSION['sess_user']}')";

[b]mysql_query($sql);[/b]

//Visa eventuellt felmeddalande
echo mysql_error(); 

 

 

_________

TicoRoman - Anfall är bästa försvar

 

[inlägget ändrat 2003-05-20 20:17:13 av TicoRoman]

Link to comment
Share on other sites

Får fortfarande inget meddelande...

 

Kan det vara i databasen det är fel:

 

CREATE TABLE kundvagn (

id int(11) NOT NULL auto_increment,

titel varchar(50) default NULL,

anvandare varchar(50) default NULL,

PRIMARY KEY (id)

) TYPE=MyISAM;

 

 

Link to comment
Share on other sites

Kan det vara i databasen det är fel
Nej, det ser rätt ut.

 

Prova med testvärden, typ:

"INSERT INTO kundvagn (titel,anvandare) 
VALUES('lalala', 'gooooo')";

mysql_query($sql);

 

Infogas det?

 

_________

TicoRoman - Anfall är bästa försvar

 

Link to comment
Share on other sites

Den protesterar inte nu heller.. händer inget...

 

Fick detta meddelande på pellesoft

 

Den skriver inte ut ngnting? Isf är ju svaret plättlätt

 

$_POST['submit'] är inte satt.. if (!isset(...)) { ... }

 

 

 

Men jag fattar inte mycket av det...

 

[inlägget ändrat 2003-05-20 20:45:06 av Micro90]

Link to comment
Share on other sites

Den skriver inte ut ngnting? Isf är ju svaret plättlätt

 

$_POST['submit'] är inte satt.. if (!isset(...)) { ... }

Hur skickar du uppgifterna till sidan som ska spara dem?

 

Skriv ut:

print_r($_POST);

för att se om $_POST innehåller något.

 

_________

TicoRoman - Anfall är bästa försvar

 

Link to comment
Share on other sites

Sidan innan ser ut så här:

 

<?php

session_start(); // Alltid överst på sidan

 

include "conn.php"; // Databasanslutningen

?>

 

 

<html>

<head>

<style type="text/css">

.tbl td {

font: 10px Verdana;

padding: 4px;

 

}

</style>

</head>

<body>

<table class="tbl" cellspacing="3">

<?php

 

$sql = "SELECT links.fornamn, links.mellannamn, links.efternamn, links.titel, links.beskrivning, links.isbn, links.forlag, links.kategori, links.pris, links.fpris, links.anvandare, bilder.filnamn FROM links LEFT JOIN bilder ON links.id = bilder.bokid ORDER by efternamn";

$result = mysql_query($sql);

 

 

while ($rad = mysql_fetch_array($result)) {

echo " <tr>\n <td><img src=\"bilder/";

if ($rad['filnamn'] == NULL) {

echo "titelbild.gif\"></td>";

} else {

echo $rad['filnamn']."\"></td>"; }

echo " \n <td><span style=\"font-weight: bold; color: #0000cc\">" .$rad['fornamn']."</span>";

echo " \n <span style=\"font-weight: bold; color: #0000cc\">" .$rad['mellannamn']."</span>";

echo " \n <span style=\"font-weight: bold; color: #0000cc\">" .$rad['efternamn']."</span><br>";

echo " \n <span style=\"font-weight: bold; color: #cc0000\">" .$rad['titel']."</span><br>";

echo wordwrap($rad['beskrivning'], 70, "<br>", 1) ."<br>";

echo " ISBN: " . $rad['isbn'] ."<br>";

echo " Förlag: " . $rad['forlag'] ."<br>";

echo " Pris: " . $rad['pris'] ."<br>";

echo " Läs mer om <a href=\"titelinfo.php?namnet={$rad['titel']}\">{$rad['titel']}</a><br>";

echo " Kategori: " . $rad['kategori'] ."<br>";

echo " Lägg denna bok i kundvagnen <a href=\"kundvagn3.php?namnet={$rad['titel']}\">{$rad['titel']}</a></td>\n </tr>\n";

}

?>

 

</table>

</body>

</html>

 

Var detta rätt:

 

print_r($_POST);

 

Ser konstigt ut när jag skriver det i koden...

 

Link to comment
Share on other sites

Jag förstår inte riktigt var användaren ska klicka för att lägga boken i kundvagnen?

 

print_r($_POST);

 

Ser konstigt ut när jag skriver det i koden...

Det ska se "konstigt" ut, men hur exakt ser det ut?

 

 

_________

TicoRoman - Anfall är bästa försvar

 

Link to comment
Share on other sites

Jag har tänkt mig att användaren ska klicka här:

 

echo " Lägg denna bok i kundvagnen <a href=\"kundvagn3.php?namnet={$rad['titel']}\">{$rad['titel']}</a></td>\n </tr>\n";

 

Och sedan ska koden på kundvagnssidan lägga in det i databasen... men jag kanske har tänkt helt fel...

 

print_r($_POST);

Normalt blir ju 'print' fett och blått i mitt program

Men detta blir inget alls liksom...

 

Link to comment
Share on other sites

Okej, eftersom variabeln inte "postas" så kan du inte komma åt den med $_POST, utan får istället använda $_GET['titel'].

 

Alltså byt ut $_POST mot $_GET på alla ställen där det förekommer, i just den sidan.

 

print_r($_POST); Normalt blir ju 'print' fett och blått i mitt program Men detta blir inget alls liksom...
Lita inte för mycket på hur "ditt" program presenterar koden. Den kanske inte _visar_ alla PHP-kommandon rätt, men det är oviktigt. print_r fungerar oavsett hur det visas i det programmet som du använder.

 

_________

TicoRoman - Anfall är bästa försvar

[inlägget ändrat 2003-05-20 21:33:15 av TicoRoman]

Link to comment
Share on other sites

Har ändrat... så här ser sidan ut nu:

 

<?php

session_start(); // Alltid överst på sidan

 

include "conn.php"; // Databasanslutningen

 

?>

<html>

<head>

<title>Untitled</title>

</head>

 

<body><br><br><br><br>

Här läggs informationen in....

Om du har lagt in en titel, kan du också lägga till en bild.

Det kan du göra <a href="form1.php">här</a>.<br><br>

 

<a href="visaalla.php">visa info</a><br><br>

<a href="visakorg.php">visa korg</a>

 

<?php

 

if(!isset($_SESSION['sess_user'])) {

echo 'Du måste vara inloggad med rätt användarnamn för att beställa en bok!';

}

else {

if(isset($_GET['submit'])) {

$sql = "INSERT INTO kundvagn(titel,anvandare)

VALUES('{$_GET['titel']}', '{$_SESSION['sess_user']}')";

mysql_query($sql);

 

//Visa eventuellt felmeddalande

echo mysql_error();

print_r($_POST);

echo "Inne i if-satsen.<br>";

echo "\$_GET['titel'] har värdet: " . $_GET['titel'] . "<br>";

echo "och sql-frågan ser ut såhär: " . $sql . "<br>";

mysql_query($sql) or die(mysql_error());

echo "Boken är lagd i kundvagnen<br><br>";

 

 

}

}

?>

</body>

</html>

 

Inget händer fortfarande...

 

Link to comment
Share on other sites

Just ja, byt ut if(isset($_GET['submit'])) { mot tex:

 

if(isset($_GET['titel'])) {

 

 

_________

TicoRoman - Anfall är bästa försvar

 

Link to comment
Share on other sites

funkar ändå inte..

konstigt...

 

Prövade att skapa ett fel i koden genom att ta bort ett " och då fick jag i alla fall parse error...

alltid något *s*

 

Men när jag prövar att lägga in en bok, så borde ju meddelandet "Boken är lagd i kundvagnen" komma eftersom denna raden finns:

echo "Boken är lagd i kundvagnen<br><br>";

 

Det är nåt konstigt fel.. antagligen har jag gjort nån simpel tabbe nånstans...

 

Link to comment
Share on other sites

Men när jag prövar att lägga in en bok, så borde ju meddelandet "Boken är lagd i kundvagnen" komma eftersom denna raden finns:

echo "Boken är lagd i kundvagnen<br><br>";

Och det skrivs inte ut?

 

Har du bytt ut det som jag skrev i föregående inlägg?

 

Annars vet jag inte, får kanske ta mig en titt imorgon när jag inte är lika trött..

 

 

_________

TicoRoman - Anfall är bästa försvar

 

Link to comment
Share on other sites

Ja det är utbytt. Koden ser ut så här nu:

 

<?php

 

if(!isset($_SESSION['sess_user'])) {

echo 'Du måste vara inloggad med rätt användarnamn för att beställa en bok!';

}

else {

if(isset($_GET['titel'])) {

$sql = "INSERT INTO kundvagn(titel,anvandare)

VALUES('{$_GET['titel']}', '{$_SESSION['sess_user']}')";

mysql_query($sql);

 

//Visa eventuellt felmeddalande

echo mysql_error();

print_r($_POST);

echo "Inne i if-satsen.<br>";

echo "\$_GET['titel'] har värdet: " . $_GET['titel'] . "<br>";

echo "och sql-frågan ser ut såhär: " . $sql . "<br>";

mysql_query($sql) or die(mysql_error());

echo "Boken är lagd i kundvagnen<br><br>";

 

 

}

}

?>

 

Nog bäst att sova ja..

är bara rädd att jag gjort nåt hellöjligt fel nånstans.. jag är ju ingen hejare på detta precis...

 

Link to comment
Share on other sites

Hade en liten misstanke att det kunde handla om sökvägarna till databasen..

men nu har jag lagt dessa två sidor i rot-katalogen och conn.php ser ut så här:

<?php

// Byt ut mot dina inloggningsuppgifter och databas

$mysql_server = "localhost";

$mysql_user = "användarnamn";

$mysql_password = "lösenord";

$mysql_database = "databas";

$conn = mysql_connect($mysql_server, $mysql_user, $mysql_password);

mysql_select_db($mysql_database, $conn);

/*

Se till att det inte finns några dolda tecken, typ radbyte

eller mellanslag, efter den avslutande PHP-taggen !!!

*/

?>

Men verkar inte vara det heller..

 

Link to comment
Share on other sites

Men, skrivs det ut Boken är lagd i kundvagnen?

 

Dvs kommer den överhuvudtaget in i if-satsen. Vad är det som skrivs ut på sidan? Kopiera allt.

 

 

_________

TicoRoman - Anfall är bästa försvar

 

Link to comment
Share on other sites

Nä det skrivs inte heller ut..

 

Detta skrivs ut:

 

 

Här läggs informationen in.... Om du har lagt in en titel, kan du också lägga till en bild. Det kan du göra här.

 

visa info

 

visa korg

 

Link to comment
Share on other sites

Då går den alltså aldrig in i if(isset($_GET['titel'])) {. Prova att ta bort den och kolla om det fungerar sen.

 

 

_________

TicoRoman - Anfall är bästa försvar

 

[inlägget ändrat 2003-05-21 20:25:21 av TicoRoman]

Link to comment
Share on other sites

Då hände det nåt!

 

Nu fick jag detta meddelandet...

 

Array ( ) Inne i if-satsen.

$_GET['titel'] har värdet:

och sql-frågan ser ut såhär: INSERT INTO kundvagn(titel,anvandare) VALUES('', 'sportis')

Boken är lagd i kundvagnen

 

\n$variabelnamn:

 

Användarnamet kom in i databasen också... men ingen titel...

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...