Du behöver inte lägga in det i sessionen, enklare att lägga det i länken, så kallad GET-variabel...
http://www.din-sida.com/kommentera.php?nyhetsID=15
Sedan i kommentera.php så hittar du värdet i variabeln:
$_GET['nyhetsID']
15 svar · 315 visningar · startad av Dwarfen
Kanske ska förklara min rubrik lite mera:
Jag postar en nyhet, med ett Id nummer som är unikt för varje nyhet.
Vad jag vill är att man skall kunna kommentera nyheten.
Vad jag har förstått måste man ta det unika ID:et från nyhetstabellen och lägga in det i en ny session? för att sedan hämta det på kommentera sidan.
Men jag förstår inte hur man skall göra?
Någon som kanske har lust att hjälpa mig på vägen?
Du behöver inte lägga in det i sessionen, enklare att lägga det i länken, så kallad GET-variabel...
http://www.din-sida.com/kommentera.php?nyhetsID=15
Sedan i kommentera.php så hittar du värdet i variabeln:
$_GET['nyhetsID']
Ah, förstår vad du menar.
Men hur skall jag göra för att ID=15 skall bli just det ID som nyheten har?
På kommentera sidan tar jag alltså $_GET['nyhetsid'] för att få "tillgång" till rätt IDnummer?
Men hur gör jag för att ID=15 skall bli rätt id nummer?
Du vet ju vilket ID nyheten har eftersom det står i nyhetstabellen. Det är bara att skriva ut det i länken:
echo('<a href="http://www.din-sida.com/kommentera.php?nyhetsID=' . $nyhetsID . '">Kommentera</a>');
Okey, nu är jag med. Iallafall med länkning.
Men hur blir det på nästa sida där jag skall kommentera nyheten?
Sidan blir ju kommentera.php=id?.
Blir det till att använda GET satsen iså fall?
Det blir kommentera.php?id=14
Allt som kommer efter frågetecknet stoppar php automatiskt i en variabel som heter $_GET och så får det namn efter det som står, så här:
test.php?a=12&b=14&c=34&d=hej
Nu skapas variablerna:
$_GET['a'] // har värdet 12
$_GET['b'] // har värdet 14
$_GET['c'] // har värdet 34
echo($_GET['d']); // skriver ut "hej"
Så det enda som behövs är alltså att ha (på kommentera sida)?
echo($_GET['nyhetsid']);
Har försökt med detta, men blank sida...
Måste inte kommentera.php heta något specielt för att den skall passa med Get satsen?
Fick det att fungera, hittade ett stavfel...
Får dock problem när jag försöker slänga in IDnumret (från nyheten) till en annan databas (kommentera)
<?php
$username = '';
$password = '';
$dbName = '';
mysql_connect('localhost', $username, $password) or die (mysql_error());
mysql_select_db($dbName) or die (schyse());
if (isset($_POST['submit'])) {
$sql = "insert into kommentera (nid, kkommentar, values('". $_GET['nyhetsID'] ."', '". $_POST['kkommentar'] ."')";
mysql_query($sql) or die("Fel: ". mysql_error());
}
mysql_close()
?>
Felmedelandet jag får är:
Fel: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'values('', 'hejsan')' at line 1
Ändra sql-satsen till
$sql = "insert into kommentera (nid, kkommentar) values ('". $_GET['nyhetsID'] ."', '". $_POST['kkommentar'] ."')";
Tyckte väl att en ( saknades, lyckades dock inte på egen hand hitta den, tack som fan Peer!
Mer frågor kommer garenterat!
Nu har jag ju kid (auto stegrande) innan nid.
Då borde det ju bli
$sql = "insert into kommetera (nid, kuser, kkommentera) values (''". $_GET['nyhetsID'] ."', '". $_SESSION['kuser'] ."', '". $_POST['kkommentar'] ."')";
Men då blir det kaj, pga att första posten i tabellen är kid. Men denna är ju en räknare som skapar speciela id nummer för varje kommentar...
Hur löser jag detta problem?
"nid" kommer inte alls in i tabellen, det enda som sker är att "kid" ökar, vilket den också skall, men nid är fortfarande orörd.
Hur kan du ha $_GET['nyhetsID'] och $_POST['kkommentar']?
Kommer uppgifterna från ett formulär med post så ska det vara $_POST['nyhetsID']
Det är ett fel i sql-satsen. Använd den här.
$sql = "insert into kommetera (nid, kuser, kkommentera) values ('". $_GET['nyhetsID'] ."', '". $_SESSION['kuser'] ."', '". $_POST['kkommentar'] ."')";
Pedda skrev:
Hur kan du ha $_GET['nyhetsID'] och $_POST['kkommentar']?
Kommer uppgifterna från ett formulär med post så ska det vara $_POST['nyhetsID']
Man kan faktiskt blanda GET och POST. ;)