MySQLI

P3d3rs3n

New Member
Hei! Jeg driver å leker meg litt på localhost. Har i all tid benyttet meg av MySQL, men har nå valgt å gå over til MySQLI. Dette har ført med seg ett problem, som får meg til å rive meg i håret.

database.php
Kode:
<?php
$db = new mysqli("localhost", "username", "password", "table");

if ($db->connect_errno) {
    printf("Connect failed: %s\n", $db->connect_error);
    exit();
}
?>

index.php
Kode:
<?php
session_start();

include ("database.php");

$l = mysqli_query($db,"SELECT * FROM users WHERE id = '$_SESSION[id]'");
$l = mysqli_fetch_array($l);
?>

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>

<script language="javascript" type="text/javascript">
var timeout = setInterval(reloadQueryHIGH, 2000);
function reloadQueryHIGH () {
    $('#high').load('jQueryHIGH.php');
}
</script>

<div id="high"></div>

<div id="left_menu">
<?php include("left_menu.php"); ?>
</div>

jQueryHIGH.php
Kode:
<?php
include("database.php");

session_start();

$l = mysqli_query($db,"SELECT * FROM users WHERE id = '$_SESSION[id]'");
$l = mysqli_fetch_array($l);

if($l[online] > time() - 60*10){
?>

<script language="javascript" type="text/javascript">
$(document).ready(function(){
    $('#left_menu').load('Sources/Include/left_menu.php');
});
</script>

<?php
}
?>

left_menu.php
Kode:
<?php
session_start();

include ("database.php");

echo('' .$l[username]. '');

left_menu.php blir lastet inn fint og fungerer under page load, men med en gang load function kjører etter 2 sekunder, så forsvinner innholdet i alle mysqli variabler som skrives ut i echo.

$l[username] viser brukernavn på page load, men ikke på load function. Alt annet innhold som ren tekst osv fungerer utmerket.

Håper på en hjelpende hånd. På forhånd takk!
 

leiheim

Member
left_menu som du henter andre gangen bruker variabelen $l[username], men den er ikkje deklarert i left_menu, den er deklarert i index.php, derfor vil den ikkje klare å skrive ut noko. Første gang går det fint, fordi index.php blir henta samtidig, det blir den ikkje andre gang.

Lag ei eige fil som inneheld
include ("database.php");
$l = mysqli_query($db,"SELECT * FROM users WHERE id = '$_SESSION[id]'");
$l = mysqli_fetch_array($l);

og inkluder den i left_menu, så skal det nok virke.

PS: Du bør vel kanskje og bruke PDO istadenfor mysqli
 

P3d3rs3n

New Member
Hei, leiheim!

Tusen takk, for raskt svar. Det ser faktisk ut til at dette løste problemet.
Jeg som prøvde å deklarere $l[username] i left_menu.php, database.php og lignende, uten hell.

PDO har jeg kun hørt om, ingen erfaringer med. Får ta å lese meg opp litt. Er det langt fra MySQLI?
 
Topp