Avatar billede tobrukDk Novice
22. april 2012 - 11:11 Der er 16 kommentarer og
1 løsning

problemer med mysqli

Hej

Det er sådan at jeg har problemer med mysqli, den kommer frem med en fejl hvor den siger sådan her

Warning: mysqli_stmt::bind_result() [mysqli-stmt.bind-result]: Number of bind variables doesn't match number of fields in prepared statement in /home/jesperbo/public_html/djinfo.dk/djzbruger.php on line 28


if ($stmt = $mysqli->prepare('SELECT * FROM `brugere` WHERE rank = 1 ORDER BY `brugere`.`id` DESC')) {
            $stmt->execute();
            $stmt->bind_result($id, $djnavn, $profilbillede);
            while ($stmt->fetch()) {
            ?>
            <a href="http://.....dk/profil/<?php echo $id;?>/">
            <div id="brugerdjzbox">
                <h4><?php echo $row["djnavn"];?></h4>
                <div id="pb">
                <img src="http://....dk/profil/<?php echo $profilbillede;?>" alt="<?php echo $djnavn;?>" height="75" width="75">
                </div>
            </div>
            </a>
            <?php
            }
            $stmt->close();
            }
            elseif
                ($result = $mysqli->query("SELECT *FROM `brugere` WHERE rank = 1 ORDER BY `brugere`.`id` DESC")) {
                $row_cnt = $result->num_rows;
                printf("<p>Ingen tilmeldte brugere</p>");
                $result->close();
            }



den siger at fejl ligger her


$stmt->bind_result($id, $djnavn, $profilbillede);


nogle som kan forklare mig hvad jeg gøre galt siden dette ikke virker, jeg er lige snart på mysqli i nat da jeg havde en samtale med en god ven :)
Avatar billede tobrukDk Novice
22. april 2012 - 12:07 #1
gøre bare sådan her ;


<?php
        if ($stmt = $mysqli->prepare('SELECT id, djnavn, profilbillede FROM `brugere` WHERE rank = 1 ORDER BY `brugere`.`id` DESC')) {
            $stmt->execute();
            $stmt->bind_result($id, $djnavn, $profilbillede);
            while ($stmt->fetch()) {
            ?>
            <a href="http://....dk/profil/<?php echo $id;?>/">
            <div id="brugerdjzbox">
                <h4><?php echo $djnavn;?></h4>
                <div id="pb">
                <img src="http://....dk/profil/<?php echo $profilbillede;?>" alt="<?php echo $djnavn;?>" height="75" width="75">
                </div>
            </div>
            </a>
            <?php
            }
            $stmt->close();
            }
            elseif
                ($result = $mysqli->query("SELECT *FROM `brugere` WHERE rank = 1 ORDER BY `brugere`.`id` DESC")) {
                $row_cnt = $result->num_rows;
                printf("<p>Ingen tilmeldte brugere</p>");
                $result->close();
            }
        ?>
Avatar billede tobrukDk Novice
22. april 2012 - 12:16 #2

<?php
            if ($stmt = $mysqli->prepare('SELECT id, djnavn, profilbillede FROM `brugere` WHERE rank = 1 || kategori = 1 ORDER BY `brugere`.`id` DESC')) {
            $stmt->execute();
            $stmt->bind_result($id, $djnavn, $profilbillede);
            while ($stmt->fetch()) {
            ?>
            <a href="http://djinfo.dk/profil/<?php echo $id;?>/">
            <div id="brugerdjzbox">
                <h4><?php echo $djnavn;?></h4>
                <div id="pb">
                <img src="http://djinfo.dk/profil/<?php echo $profilbillede;?>" alt="<?php echo $djnavn;?>" height="75" width="75">
                </div>
            </div>
            </a>
            <?php
            }
            $stmt->close();
            }
            elseif
                ($result = $mysqli->query("SELECT id, djnavn, profilbillede FROM `brugere` WHERE rank = 1 || kategori = 1 ORDER BY `brugere`.`id` DESC")) {
                $row_cnt = $result->num_rows;
                printf("<p>Ingen tilmeldte brugere</p>");
                $result->close();
            }
        ?>

hvis jeg skal have dem ud fra den her kategori ville ikke gøre det ,  hmm
Avatar billede olebole Juniormester
22. april 2012 - 14:44 #3
<ole>

<?php
if ($stmt = $mysqli->prepare('SELECT id, djnavn, profilbillede FROM `brugere` WHERE rank = 1 || kategori = 1 ORDER BY `brugere`.`id` DESC')) {
    $stmt->bind_param('ii', $rnk, $kat);
    $rnk = 1;
    $kat = 1;
    $stmt->execute();
    $stmt->bind_result($id, $djnavn, $profilbillede);
    while ($stmt->fetch()) {
    ?>

Du skal bruge bind_param

/mvh
</bole>
Avatar billede olebole Juniormester
22. april 2012 - 14:45 #4
Ooooops!  =)

<?php
if ($stmt = $mysqli->prepare('SELECT id, djnavn, profilbillede FROM `brugere` WHERE rank = ? || kategori = ? ORDER BY `brugere`.`id` DESC')) {
    $stmt->bind_param('ii', $rnk, $kat);
    $rnk = 1;
    $kat = 1;
    $stmt->execute();
    $stmt->bind_result($id, $djnavn, $profilbillede);
    while ($stmt->fetch()) {
    ?>
Avatar billede tobrukDk Novice
22. april 2012 - 18:55 #5
Okay olebole hvordan ved ? At det skal være rank til 1?? Eller stå det hele inden.på siden ??


// mobil skriver når jeg er hjemme ;)
Avatar billede tobrukDk Novice
22. april 2012 - 19:29 #6
ååhh okat så ved jeg hvad det betyder , det er ligesom at hente en varer . eller hvordan man forklare det.
Avatar billede tobrukDk Novice
22. april 2012 - 19:52 #7
der ske intet, den vise ikke nogen som helst,


<?php
            if ($stmt = $mysqli->prepare('SELECT id, djnavn, profilbillede FROM `brugere` WHERE rank = ? || kategori = ? ORDER BY `brugere`.`id` DESC')) {
                $stmt->bind_param('ii', $rnk, $kat);
                $rnk = 1;
                $kat = 1;
                $stmt->execute();
                $stmt->bind_result($id, $djnavn, $profilbillede);
                while ($stmt->fetch()) {
            ?>
            <a href="http://....dk/profil/<?php echo $id;?>/">
            <div id="brugerdjzbox">
                <h4><?php echo $djnavn;?></h4>
                <div id="pb">
                <img src="http://.....dk/profil/<?php echo $profilbillede;?>" alt="<?php echo $djnavn;?>" height="75" width="75">
                </div>
            </div>
            </a>
            <?php
            }
            $stmt->close();
            }
            elseif
                ($result = $mysqli->query("SELECT id, djnavn, profilbillede FROM `brugere` WHERE rank = 1 || kategori = 1 ORDER BY `brugere`.`id` DESC")) {
                $row_cnt = $result->num_rows;
                printf("<p>Ingen tilmeldte brugere</p>");
                $result->close();
            }
        ?>
Avatar billede tobrukDk Novice
22. april 2012 - 20:18 #8
Du kan lige se min database

http://jesperbok.dk/as.png
Avatar billede olebole Juniormester
22. april 2012 - 20:32 #9
Jeg kan ikke læse din kode. Ekspertens URL-parser smadrer den, så jeg er ikke sikker på, hvad der står.

Derudover skal du prøve at få første del af koden til at virke - uden else if delen. Én ting ad gangen  *o)

Når du får første del til at virke, skal du også bruge Prepared Statements i din if else
Avatar billede tobrukDk Novice
22. april 2012 - 20:38 #10
#9 så du siger til mig at jeg skal slette min elseif??
Avatar billede tobrukDk Novice
22. april 2012 - 21:26 #11

<?php
        if ($stmt = $mysqli->prepare('SELECT id, djnavn, profilbillede FROM `brugere` WHERE rank = ? || kategori = ? ORDER BY `brugere`.`id` DESC')) {
            $stmt->bind_param('ii', $rnk, $kat);
            $rnk = 1;
            $kat = 1;
            $stmt->execute();
            $stmt->bind_result($id, $djnavn, $profilbillede);
            while ($stmt->fetch()) {
        ?>
        <a href="profil/<?php echo $id;?>/">
            <div id="brugerdjzbox">
                <h4><?php echo $djnavn;?></h4>
                <div id="pb">
                <img src="profil/<?php echo $profilbillede;?>" alt="<?php echo $djnavn;?>" height="75" width="75">
                </div>
            </div>
        </a>
        <?php
        }
        $stmt->close();
        }
        ?>


der ske intet overhovedet.. :( på siden¨

Den er helt tom og viser intet overhovedet.. :(
Avatar billede olebole Juniormester
22. april 2012 - 21:49 #12
Du har ikke et felt, der hedder 'kategori' i din DB - det hedder 'katogori'
Avatar billede tobrukDk Novice
22. april 2012 - 22:12 #13
Hold kæft man noget lort, xD

ny fejl kommer her

Warning: mysqli_stmt::bind_result() [mysqli-stmt.bind-result]: Number of bind variables doesn't match number of fields in prepared statement in /home/jesperbo/public_html/hemmelig-hjemmeside/utopiadjschool.php on line 32


$stmt->bind_result($id, $djnavn, $profilbillede);


her ligge fejl henne :D
Avatar billede tobrukDk Novice
22. april 2012 - 22:16 #14
Jeg har løst fejl og jeg havde i en fejl i min sql jeg havde glemt et
"
Avatar billede tobrukDk Novice
22. april 2012 - 22:18 #15
Olebole jeg synes at du skal have de point som er her fordi du har virkelig lærer mig noget omkring mysqli og jeg har fået en bedre forklare over for det , det kan godt være at jeg er stadig ny og det hele men jeg synes det er dejligt at du kan lærer mig min fejl og hvad det er at jeg skal gøre bedre og mv.. :)
Avatar billede tobrukDk Novice
23. april 2012 - 21:00 #16
nååå ja olebole gider ikke have nogle point lukker den bare selv ;)
Avatar billede tobrukDk Novice
23. april 2012 - 21:01 #17
svar selv men kontakt mig på pm hvis det er olebole ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester