<?php
mysql_connect("localhost", "root", "usbw");
mysql_select_db("europese unie");
$id = $_GET['Land'];
$query = "SELECT `Land`, `Oppervlakte`, `Inwoners`, `Klimaat`, `Motto`, `UTC` FROM `algemene informatie` WHERE `Land` = '$id'";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
$land = $row[0];
echo "$land";
print("<h2>$id</h2>");
print("<br />");
die(mysql_error())
?>
when i tried to run this code i expected to echo the first land that came up with this query instead i got nothing. i am not a very experienced PHP or Mysql user nor is english my first language so pleas do not hold annything against me.
Solved
Taken from comments:
"well the adress is localhost:8080/details.php?Land=%20Belgie
and $id = $_GET['Land'];
is the id so Belgie should be $id
but as var_dump($result)
it keeps giving bool(false)
"
(space)Belgie
and since your column doesn't contain the word Belgie with a space, it will not find it; least that's what I think is happeningThat %20
is a space btw. That could be the problem. You could make use of the trim()
function.
Use:
$id = trim($_GET['Land']);
OP:
thank you print_r($row); now gives Array ( [0] => Belgie [1] => 31 [2] => 11 [3] => gematigd zeeklimaat [4] => Eendracht maakt macht [5] => 1 ) i can finaly proceed
Sidenote: Your present code is open to SQL injection. Use mysqli_*
functions. (which I recommend you use and with prepared statements, or PDO)
mysql_*
functions are deprecated and will be removed from future PHP releases.
Footnotes:
mysql_*
functions deprecation notice:
http://www.php.net/manual/en/intro.mysql.php
This extension is deprecated as of PHP 5.5.0, and is not recommended for writing new code as it will be removed in the future. Instead, either the mysqli or PDO_MySQL extension should be used. See also the MySQL API Overview for further help while choosing a MySQL API.
These functions allow you to access MySQL database servers. More information about MySQL can be found at » http://www.mysql.com/.
Documentation for MySQL can be found at » http://dev.mysql.com/doc/.
Quote out the variables.
echo $land;
print("<h2>" . $id . "</h2>");
Do not use mysql_connect()
this is going to become outdated, use mysqli_connect()
.
I.e.:
$connection = new mysqli('host', 'username', 'password', 'db table', 'portnumber');
if (mysqli_connect_errno()){
printf("<b>Connection failed:</b> %s
", mysqli_connect_error());
exit;
}
run you query through mysqli object and remember to use injection prevention or you will get people hacking you site.
e.g.
http://www.phphaven.com/article.php?id=65
Hope that helps