Resource id #5: MySQL
<?php
//Sessions starten
session_start();
//Include stuff
include('conf.php');
//'Shortcuts' maken
$sname = $site['name'];
$shost = $site['host'];
$shostb = $site['hostb'];
//Verbinding maken met DB
$link = mysql_connect($database['host'], $database['username'], $database['password']) or die (mysql_error());
mysql_select_db($database['db'],$link) or die(mysql_error());
//Gegevens uit db halen
if(isset($_GET['page'])){
$page['title'] = mysql_query("SELECT title FROM pages WHERE page = $_GET[page]");
}
else{
$page['title'] = mysql_query("SELECT title FROM pages WHERE page = 'index.php'");
}
?>
<!doctype html>
<html lang="nl">
<head>
<meta charset="utf-8" />
<title><?php echo $sname;?>•<?php echo $page['title']?></title>
N'quelqu'un sait pourquoi cela ne fonctionne pas? Ma DB structure est:
page |titre
index.php|index
Désolé, mais je ne peux pas obtenir ce clair. Le var dump de $page['title'] = resource(5)
de type (mysql). Comment puis-je résoudre ce problème? Merci pour l'aide.
Vous devez vous connecter pour publier un commentaire.
mysql_query
retourne une ressource, vous devez utilisermysql_fetch_array
(ou similaires, par exemplemysql_fetch_assoc
) sur la ressource pour obtenir la valeur de titre.Par exemple:
Avertissement: votre requête est vulnérable à une injection SQL.
mysql_fetch_array
encourage les mauvaises pratiques. Il est préférable (et plus efficace aussi) d'utilisermysql_fetch_assoc
, bien que dans ce cas où vous avez seulement besoin d'avoir de 1 terrain de 1 ligne, je voudrais utilisermysql_result
.Vous avez besoin d'utiliser une fonction comme
mysql_fetch_assoc()
oumysql_result()
pour obtenir les données réelles.C'est resourc id retourné par
mysql_query
Utilisationmysql_fetch_assoc
sur la ressource pour obtenir la valeur de titre.Faire en dessous de changements :
C'est dans 4 ans de retard mais mysql_* est obsolète. Vous devez utiliser mysqli_* ou PDO fonctions à la place