MySQLI

En tråd i 'PHP, SQL og databaser' startet av P3d3rs3n, 2 Mar 2018.

  1. P3d3rs3n New Member

    Innlegg:
    3
    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!
     
  2. leiheim

    leiheim Member

    Innlegg:
    44
    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
     
    Tonny Kluften liker dette.
  3. P3d3rs3n New Member

    Innlegg:
    3
    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?
     
  4. leiheim

    leiheim Member

    Innlegg:
    44
  5. P3d3rs3n New Member

    Innlegg:
    3
  6. leiheim

    leiheim Member

    Innlegg:
    44
  7. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.964

Del denne siden