Hente og bruge variabel fra adresselinjen

Her kan du få hjælp og stille spørgsmål til MySQL/MySQLi!
Besvar
Piggie
Begynder
Indlæg: 7
Tilmeldt: 18. feb 2015, 16:24

Hente og bruge variabel fra adresselinjen

Indlæg af Piggie » 18. feb 2015, 16:30

Hej folkens

Google har besluttet sig til at ikke at være min ven i dette spørgsmål, så inden jeg går ud og og slår nogen ihjel i frustration, så håber jeg at nogen kan give en hjælpende hånd.

I 'gamle' dage, der smed man en variabel op i adresselinjen, som kunne hentes ned, og via den kunne man hente de data som hørte til variablen.
Altså f.ex. en side med titler, hvor man derefter på en anden side kan hente titel, tekst, forfatter, whatever.

Det gjorde man jo sidst jeg legede med det, med $_GET, men det fungerer jo lissom ikke længere.

Så jeg håber at der findes et par kloge og hjælpsomme mennesker, der kan guide mig i den rigtige retning.

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg: 709
Tilmeldt: 21. jun 2012, 23:40
Kontakt:

Re: Hente og bruge variabel fra adresselinjen

Indlæg af scootergrisen » 18. feb 2015, 16:42

$_GET virker fint i PHP.

Kode: Vælg alt

http://example.com/?name=Hannes

Kode: Vælg alt

<?php

echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!';

?>

Kode: Vælg alt

Hello Hannes!

Piggie
Begynder
Indlæg: 7
Tilmeldt: 18. feb 2015, 16:24

Re: Hente og bruge variabel fra adresselinjen

Indlæg af Piggie » 18. feb 2015, 16:45

jooo... men det er altså ikke det som er mit problem ;-)

Det skal hentes fra databasen, for Hanne hedder Petersen til efternavn, er 38 år og elsker lakridser.

Så når jeg gerne vil have fat i resten af Hannes data, så kan jeg ikke få det til at fungere, når kaldet til databasen er med mysqli.

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg: 709
Tilmeldt: 21. jun 2012, 23:40
Kontakt:

Re: Hente og bruge variabel fra adresselinjen

Indlæg af scootergrisen » 18. feb 2015, 16:50

Så må du jo vise din kode.

Piggie
Begynder
Indlæg: 7
Tilmeldt: 18. feb 2015, 16:24

Re: Hente og bruge variabel fra adresselinjen

Indlæg af Piggie » 18. feb 2015, 16:56

Det er sådan lidt miskmask, fordi det er en gammel side, som jeg prøver at rette lidt på.

Men den originale kode ser sådan her ud

Kode: Vælg alt

<?php

if(isset($_GET['id']))
{
   
$id = $_GET['id'];
$query = "SELECT * FROM brevkasse WHERE id=$id";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
echo "<hr/>";
echo "<h2>".$row['title']."</h2>";
echo "<b>Spørgsmål</b><br/>".$row['question']."<br/><br/>";
echo "<b>Svar</b><br/>".$row['answer']."<br/><br/>";
echo "<a onmouseover='self.status=document.referrer;return true' href='javascript:history.go(-1)'>Tilbage til oversigten</a>";
}

else{

 echo "<h2>Brevkassesp&oslash;rgsm&aring;l</h2>";

 $query = "SELECT * FROM brevkasse ORDER BY id DESC";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
        echo "<a href='brevkassen.php?id=$row[id]'>".$row['title']."</a><br />";
}
}
?>
Jeg kan godt få tingene til at virke når det bare er ligeud hente og bringe fra databasen, men lige netop den her, den vil altså ikke - og hvis jeg ikke var gråhåret i forvejen, så blev jeg det sgu nu, suk.

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg: 709
Tilmeldt: 21. jun 2012, 23:40
Kontakt:

Re: Hente og bruge variabel fra adresselinjen

Indlæg af scootergrisen » 18. feb 2015, 17:07

Den måde du bruger MySQL på i din PHP kode er forældet så det vil nok være en god ide og skrive hele koden om også bruge MySQLI eller PDO.

Også test om du overhovedet får noget resultat inden du forsøger at vise resultat.

Piggie
Begynder
Indlæg: 7
Tilmeldt: 18. feb 2015, 16:24

Re: Hente og bruge variabel fra adresselinjen

Indlæg af Piggie » 18. feb 2015, 17:51

jamen altså, suk, det er jo det som jeg prøver på - men hvor jeg ikke kan hitte ud af at få den variabel med. Jeg er udemærket klar over at det skal skrives om - det synes jeg osse at jeg har givet udtryk for. Men om det skal skrives om eller startes forfra, så løser det stadig ikke mit problem om at jeg ikke umiddelbart kan finde noget som tydeligt lige omhandler det her.

Jeg søger hjælp, guides, links, til noget som lige præcis drejer sig om at få variablen med tilhørende data med, og da jeg ikke har kunne google mig frem til noget som lignede noget brugbart, så prøvede jeg herinde.

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg: 709
Tilmeldt: 21. jun 2012, 23:40
Kontakt:

Re: Hente og bruge variabel fra adresselinjen

Indlæg af scootergrisen » 18. feb 2015, 19:00

Sikkert fordi der ikke er noget i databasen med det id.

Prøv og læs lidt i manualen og ret din kode så godt du kan så kan jeg kigge på den når du har arbejdet lidt på den selv.

Jeg bruger den objekt orienteret mysqli syntax : http://php.net/manual/en/mysqli.query.php

Piggie
Begynder
Indlæg: 7
Tilmeldt: 18. feb 2015, 16:24

Re: Hente og bruge variabel fra adresselinjen

Indlæg af Piggie » 18. feb 2015, 19:17

jo, id'et eksisterer, for det fungerer jo med det gammeldaws kode.

Jeg har siddet og stirret mig blind på den pågældende side (og flere andre) det meste af dagen, og jeg kan ærligt talt ikke hitte hovede eller hale i det. Jeg har aldrig været supergod til at kapere manualer, min hjerne kan lidt bedre forstå eksempler... så umiddelbart er jeg ekstremt lost på hvad filan jeg skal rette og til hvad :(

Findes der ikke nogen gode overskuelige eksempler et sted?

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg: 709
Tilmeldt: 21. jun 2012, 23:40
Kontakt:

Re: Hente og bruge variabel fra adresselinjen

Indlæg af scootergrisen » 18. feb 2015, 19:49

Jeg havde selv svært ved at finde mysqli objekt orienteret eksempler da jeg ville lære det fordi de fleste eksempler handler om den kode der nu er udgået i PHP.

Du kan prøve noget i den her stil.

Kode: Vælg alt

<?php

$server   = '';
$bruger   = '';
$kode     = '';
$database = '';
$table    = 'brevkasse';

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

    $get_id = $_GET['id'];

    $mysqli = new mysqli($server, $bruger, $kode, $database);

    if ($mysqli->connect_errno > 0) {

        echo 'Kunne ikke forbinde MySQL serveren : ' . $mysqli->connect_errno . ' : ' . $mysqli->connect_error;

    } else {

        if (!$mysqli->set_charset("utf8")) {

        } else {

        }

        if ($stmt = $mysqli->prepare("SELECT * FROM `$table` WHERE `id` = $get_id")) {

            $stmt->execute();

            if ($stmt->bind_result($id, $title, $question, $answer)) {

                while ($stmt->fetch()) {

                    $tableindhold .= ''
                        . '<tr>'
                        . '<td>' . $id . '</td>'
                        . '<td>' . $title . '</td>'
                        . '<td>' . $question . '</td>'
                        . '<td>' . $answer . '</td>'
                        . '</tr>';

                }

            }

            $stmt->close();

        }

        $mysqli->close();

    }

    if (isset($tableindhold)) {

        echo '<table>' . $tableindhold . '</table>';

    }

}

?>

Piggie
Begynder
Indlæg: 7
Tilmeldt: 18. feb 2015, 16:24

Re: Hente og bruge variabel fra adresselinjen

Indlæg af Piggie » 18. feb 2015, 20:02

Takker - det prøver jeg :-)

Når man er en gammel trunte, så synes jeg at mysqli'en er meeeeeget anderledes at holde styr på, og det gør det jo næsten værre at man har lært det andet først.

jepperask
Geni
Geni
Indlæg: 378
Tilmeldt: 4. nov 2012, 17:57

Re: Hente og bruge variabel fra adresselinjen

Indlæg af jepperask » 18. feb 2015, 23:00

Jeg ved ikke helt om jeg har forstået hvad du spørger om, men jeg gør ofte det at jeg kalder en funktion i en fil, som returnerer et MySQLi result-objekt.
Fx kunne jeg ønske mig at vise domain.dk/books.php?id=24, hvor siden så skal hente oplysningerne om bogen med id = 24 og generere noget html ud fra det.

getStuffFromDatabase.php

Kode: Vælg alt

<?php
function getUserInformation($id) {
	$con = mysqli_connect($host, $username, $password, $database);
	$query = "SELECT * FROM tablename WHERE (id = $id)";
	$sqlObject = mysqli_query($con, $query);
	mysqli_close($con);
	return $sqlObject;
}
books.php

Kode: Vælg alt

<?php
include 'getStuffFromDatabase.php';

if(isset($_GET['id'])) {
	$id = $_GET['id'];
	$sql = getUserInformation($id);
	
	//drop while-loop hvis du ved du kun får én række.
	while ($row = mysqli_fetch_array($sql)) {
		//Nu har du så et array for hver række returneret fra databasen, som kunne se sådan her ud:
		
		$kolonne1 = $row[0]; (id)
		$kolonne2 = $row[1]; (title)
		$kolonne3 = $row[2]; (question)
		$kolonne4 = row[3]; (answer)
		// osv..
		
		//Indsæt dit table-halløj her, hvor du nu kan bruge variablerne som du ønsker.
	}
}
Men jeg er også relativt ny til PHP, men nu har du da ihvertfald et andet bud. :-)

Piggie
Begynder
Indlæg: 7
Tilmeldt: 18. feb 2015, 16:24

Re: Hente og bruge variabel fra adresselinjen

Indlæg af Piggie » 22. feb 2015, 14:32

Cool - takker

Jeg må prøve mig lidt frem :-)

Besvar