Avatar billede tobrukDk Novice
07. oktober 2012 - 23:13 Der er 14 kommentarer og
1 løsning

mysqli se om id findes i databasen

Hej


Det er sådan at jeg arbejder med en profil side og det er sådan at det skal være at er man ind på en side hvor man kan se alle bruger så skal jeg ind på bruger 2 som har sin profil 13.20, og skal lige se alle bruger før "kasper" klikker videre derfra. og kl 13.22 har "lotte" så valgt at slette sin profil hvor som har set "kasper" profil 13.20 ikke har opdater siden. så skal det være sådan at når man klik på den og den ikke findes i databasen så skal den bare "sige". fejl 404 siden. hvor her efter bliver sendt derover..


<?php
                    if ($stmt = $mysqli->prepare('SELECT `id`, `rank`, `brugernavn`, `profilbillede`, `profilbillede_godkendt`, `navn`, `efternavn`, `profiltekst`, `alder_d`, `alder_m`, `alder_aar`, `status`, `kon`, `seksualitet` FROM `bruger` WHERE `id` = ?'))
                    {
                    $stmt->bind_param('i', $id);
                    $id = $_GET["id"];

                    $stmt->execute();
                    $stmt->store_result();
                    $stmt->bind_result($id, $rank, $brugernavn, $profilbillede, $profilbillede_godkendt, $navn, $efternavn, $profiltekst, $alder_d, $alder_m, $alder_aar, $status, $kon, $seksualitet);
                   
                        while ($stmt->fetch())
                        {
                            echo "<h1>" . "Velkommen til " . $brugernavn . "'s profil" . "</h1>";
                       
                        if($profilbillede_godkendt == 1)
                        {
                        ?>
                        <img src="/profil-img/<?php echo $profilbillede;?>" alt="<?php echo $brugernavn;?>" height="115" width="100" border="0">
                        <?php
                        }
                        else
                        {
                            echo "<img src=\"/profil-img/users.png\" alt=\"$brugernavn\" height=\"115\" width=\"100\" border=\"0\">";
                        }
                        ?>
                            <ul>
                                <li>Navn: <?php echo $navn;?> <?php echo $efternavn;?></li>
                                <li>Rank:
                                <?php
                                if($rank == 1)
                                {
                                    echo "Bruger";   
                                }
                                if($rank == 2)
                                {
                                    echo "Admin";
                                }
                                ?>
                                </li>
                            </ul>
                            <ul>
                                <li>Alder: <?php echo $alder_d;?>/<?php echo $alder_m;?>-<?php echo $alder_aar;?> -
                                <?php
                                function CalcAge($alder_d , $alder_m, $alder_aar){
                                    $alle_alder = $alder_d . "-" . $alder_m . "-" . $alder_aar; 
                                    $datetime1 = new DateTime("now");
                                    $datetime2 = DateTime::createFromFormat("d-m-Y", $alle_alder);
                                    $interval = $datetime1->diff($datetime2);
                                    return $interval->format('%y');
                                }   
                                echo CalcAge ("$alder_d", "$alder_m", "$alder_aar") .' år';
                                ?>
                                </li>
                                <li>Køn:
                                <?php
                                if($kon == 1)
                                {
                                    echo "Mand";   
                                }
                                elseif($kon == 2)
                                {
                                    echo "Kvinde";
                                }
                                ?>
                                </li>
                            </ul>
                            <ul>
                                <?php
                                if ($stmt_1 = $mysqli->prepare('SELECT `id_status`, `title` FROM `partnerstatus`')) {
                                $stmt_1->execute();

                                /* Bind resultatet */
                                $stmt_1->bind_result($id_status, $title);

                                /* Hent rækker og udskriv data */
                                while ($stmt_1->fetch()) {
                                        if($status == $id_status)
                                        {
                                            echo "<li>Partnerstatus: " . $title . "</li>";   
                                        }
                                }

                                /* Luk statement */
                                $stmt_1->close();

                                }
                                else
                                {
                                    echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                                }
                               
                                    if ($stmt_2 = $mysqli->prepare('SELECT `id_seksualitet`, `title` FROM `Seksualitet`')) {
                                    $stmt_2->execute();

                                    /* Bind resultatet */
                                    $stmt_2->bind_result($id_seksualitet, $title);

                                    /* Hent rækker og udskriv data */
                                    while ($stmt_2->fetch()) {
                                            if($seksualitet == $id_seksualitet)
                                            {
                                                echo "<li>Seksualitet: " . $title . "</li>";   
                                            }
                                    }

                                    /* Luk statement */
                                    $stmt_2->close();

                                } else {
                                    /* Der er opstået en fejl */
                                    echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                                }
                                ?>
                            </ul>
                        <div class="profiltekst">
                            <?php echo $profiltekst;?>
                        </div>
                        <div class="profilopslag">
                        <h2>Opslag for <?php echo $brugernavn;?></h2>
                        <?php
                        if ($stmt_opslag = $mysqli->prepare('SELECT `tekst` FROM `opslag` WHERE `id_bruger` = ?')) {
                            $stmt_opslag->bind_param('i', $id);
                            $id = $_GET['id'];

                            $stmt_opslag->execute();
                            $stmt_opslag->store_result();
                           
                            $stmt_opslag->bind_result($tekst);

                            /* Hent rækker og udskriv data */
                            while ($stmt_opslag->fetch()) {
                            ?>
                            <p><?php echo $tekst;?></p>
                            <?php
                            }

                            /* Luk statement */
                            $stmt_opslag->close();

                        } else {
                            /* Der er opstået en fejl */
                            echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                        }
                        ?>
                        </div>
                        <div class="profilgallery">
                        <h2>Billeder af <?php echo $brugernavn;?></h2>
                        <?php
                            if ($stmt_opslag = $mysqli->prepare('SELECT `title`, `gallery_godkendt` FROM `gallery` WHERE `id_bruger` = ?')) {
                            $stmt_opslag->bind_param('i', $id);
                            $id = $_GET['id'];

                            $stmt_opslag->execute();
                            $stmt_opslag->store_result();
                           
                            $stmt_opslag->bind_result($title, $gallery_godkendt);

                            /* Hent rækker og udskriv data */
                            while ($stmt_opslag->fetch()) {
                            ?>
                            <img src="/gallery/<?php echo $title;?>" alt="<?php echo $brugernavn;?>" height="115" width="100" border="0">
                            <?php
                            }
                            $stmt_opslag->close();

                        } else {
                            /* Der er opstået en fejl */
                            echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                        }
                        ?>                   
                        </div>
                        <?php
                        }

                    $stmt->close();

                    } else {
                        echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                    }
                ?>


Jeg håber det give god mening til hvordan jeg vil have det.

Jeg har prøve sådan her


if($_GET['id'] >= $id){
    echo "du har valgt et gyldigt id";
}else{
    header("HTTP/1.0 404 Not Found");
    echo "fejl : Du har valgt et forkert id";
}




Det skal det siges at min kode har jeg prøve at ligge ind i hvor der stå "du har valgt et gyldigt id", men jeg har også prøve at gøre sådan her


if($_GET['id'] != $id){
    echo "du har valgt et gyldigt id";
}else{
    header("HTTP/1.0 404 Not Found");
    echo "fejl : Du har valgt et forkert id";
}


men så har jeg bare bytte om på dem sådan at det give bedre mening men det hjælper stadig ikke. og jeg kan bare ikke rigtig løse det her problem nu og her. dog håber jeg på at du kan hjælp mig videre med det her!
Avatar billede arne_v Ekspert
08. oktober 2012 - 00:10 #1
Det var godt nok meget kode og ikke saerligt velstruktueret.

Men logikken er vel at at du laver en SELECT og hvis den finder en raekke saa viser du denne ellers laver du en 404.

Jeg tror ioevrigt at en lille forklaring om at bruger ikke eksisterer maaske ville vaere  mere brugervenligt.
Avatar billede tobrukDk Novice
08. oktober 2012 - 01:02 #2
ja okay, det kan jeg godt se. :)

Så hvis det var dig vil du gerne have at vide den her bruges ikke findes mere. :) men er der ikke noget ligesom det gammel mysql num_rows eller ligne i den still som gør at den sige det?
Avatar billede arne_v Ekspert
08. oktober 2012 - 01:12 #3
Avatar billede arne_v Ekspert
08. oktober 2012 - 01:13 #4
Men er det ikke nemmere at erstatte while med if og saa bruge else?
Avatar billede tobrukDk Novice
08. oktober 2012 - 01:34 #5
Jeg har prøve at gøre sådan her

<?php
                    if ($stmt = $mysqli->prepare('SELECT `id`, `rank`, `brugernavn`, `profilbillede`, `profilbillede_godkendt`, `navn`, `efternavn`, `profiltekst`, `alder_d`, `alder_m`, `alder_aar`, `status`, `kon`, `seksualitet` FROM `bruger` WHERE `id` = ?'))
                    {
                    $stmt->bind_param('i', $id);
                    $id = $_GET["id"];

                    $stmt->execute();
                    $stmt->store_result();
                    $stmt->bind_result($id, $rank, $brugernavn, $profilbillede, $profilbillede_godkendt, $navn, $efternavn, $profiltekst, $alder_d, $alder_m, $alder_aar, $status, $kon, $seksualitet);
                    if($_GET["id"] == $id)
                    {
                        while ($stmt->fetch())
                        {
                            echo "<h1>" . "Velkommen til " . $brugernavn . "'s profil" . "</h1>";
                       
                        if($profilbillede_godkendt == 1)
                        {
                        ?>
                        <img src="/profil-img/<?php echo $profilbillede;?>" alt="<?php echo $brugernavn;?>" height="115" width="100" border="0">
                        <?php
                        }
                        else
                        {
                            echo "<img src=\"/profil-img/users.png\" alt=\"$brugernavn\" height=\"115\" width=\"100\" border=\"0\">";
                        }
                        ?>
                            <ul>
                                <li>Navn: <?php echo $navn;?> <?php echo $efternavn;?></li>
                                <li>Rank:
                                <?php
                                if($rank == 1)
                                {
                                    echo "Bruger";   
                                }
                                if($rank == 2)
                                {
                                    echo "Admin";
                                }
                                ?>
                                </li>
                            </ul>
                            <ul>
                                <li>Alder: <?php echo $alder_d;?>/<?php echo $alder_m;?>-<?php echo $alder_aar;?> -
                                <?php
                                function CalcAge($alder_d , $alder_m, $alder_aar){
                                    $alle_alder = $alder_d . "-" . $alder_m . "-" . $alder_aar; 
                                    $datetime1 = new DateTime("now");
                                    $datetime2 = DateTime::createFromFormat("d-m-Y", $alle_alder);
                                    $interval = $datetime1->diff($datetime2);
                                    return $interval->format('%y');
                                }   
                                echo CalcAge ("$alder_d", "$alder_m", "$alder_aar") .' år';
                                ?>
                                </li>
                                <li>Køn:
                                <?php
                                if($kon == 1)
                                {
                                    echo "Mand";   
                                }
                                elseif($kon == 2)
                                {
                                    echo "Kvinde";
                                }
                                ?>
                                </li>
                            </ul>
                            <ul>
                                <?php
                                if ($stmt_1 = $mysqli->prepare('SELECT `id_status`, `title` FROM `partnerstatus`')) {
                                $stmt_1->execute();

                                /* Bind resultatet */
                                $stmt_1->bind_result($id_status, $title);

                                /* Hent rækker og udskriv data */
                                while ($stmt_1->fetch()) {
                                        if($status == $id_status)
                                        {
                                            echo "<li>Partnerstatus: " . $title . "</li>";   
                                        }
                                }

                                /* Luk statement */
                                $stmt_1->close();

                                }
                                else
                                {
                                    echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                                }
                               
                                    if ($stmt_2 = $mysqli->prepare('SELECT `id_seksualitet`, `title` FROM `Seksualitet`')) {
                                    $stmt_2->execute();

                                    /* Bind resultatet */
                                    $stmt_2->bind_result($id_seksualitet, $title);

                                    /* Hent rækker og udskriv data */
                                    while ($stmt_2->fetch()) {
                                            if($seksualitet == $id_seksualitet)
                                            {
                                                echo "<li>Seksualitet: " . $title . "</li>";   
                                            }
                                    }

                                    /* Luk statement */
                                    $stmt_2->close();

                                } else {
                                    /* Der er opstået en fejl */
                                    echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                                }
                                ?>
                            </ul>
                        <div class="profiltekst">
                            <?php echo $profiltekst;?>
                        </div>
                        <div class="profilopslag">
                        <h2>Opslag for <?php echo $brugernavn;?></h2>
                        <?php
                        if ($stmt_opslag = $mysqli->prepare('SELECT `tekst` FROM `opslag` WHERE `id_bruger` = ?')) {
                            $stmt_opslag->bind_param('i', $id);
                            $id = $_GET['id'];

                            $stmt_opslag->execute();
                            $stmt_opslag->store_result();
                           
                            $stmt_opslag->bind_result($tekst);

                            /* Hent rækker og udskriv data */
                            while ($stmt_opslag->fetch()) {
                            ?>
                            <p><?php echo $tekst;?></p>
                            <?php
                            }

                            /* Luk statement */
                            $stmt_opslag->close();

                        } else {
                            /* Der er opstået en fejl */
                            echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                        }
                        ?>
                        </div>
                        <div class="profilgallery">
                        <h2>Billeder af <?php echo $brugernavn;?></h2>
                        <?php
                            if ($stmt_opslag = $mysqli->prepare('SELECT `title`, `gallery_godkendt` FROM `gallery` WHERE `id_bruger` = ?')) {
                            $stmt_opslag->bind_param('i', $id);
                            $id = $_GET['id'];

                            $stmt_opslag->execute();
                            $stmt_opslag->store_result();
                           
                            $stmt_opslag->bind_result($title, $gallery_godkendt);

                            /* Hent rækker og udskriv data */
                            while ($stmt_opslag->fetch()) {
                            ?>
                            <img src="/gallery/<?php echo $title;?>" alt="<?php echo $brugernavn;?>" height="115" width="100" border="0">
                            <?php
                            }
                            $stmt_opslag->close();

                        } else {
                            /* Der er opstået en fejl */
                            echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                        }
                        ?>                   
                        </div>
                        <?php
                        }
                    }
                    else
                    {
                        echo "Hey";
                    }
                   
                    $stmt->close();

                    } else {
                        echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                    }
                ?>
Avatar billede tobrukDk Novice
08. oktober 2012 - 01:39 #6
lidt mere nem måde at se over det hele på


if ($stmt = $mysqli->prepare('SELECT `id`, `rank`, `brugernavn`, `profilbillede`, `profilbillede_godkendt`, `navn`, `efternavn`, `profiltekst`, `alder_d`, `alder_m`, `alder_aar`, `status`, `kon`, `seksualitet` FROM `bruger` WHERE `id` = ?'))
                    {
                    $stmt->bind_param('i', $id);
                    $id = $_GET["id"];

                    $stmt->execute();
                    $stmt->store_result();
                    $stmt->bind_result($id, $rank, $brugernavn, $profilbillede, $profilbillede_godkendt, $navn, $efternavn, $profiltekst, $alder_d, $alder_m, $alder_aar, $status, $kon, $seksualitet);
                    if($_GET["id"] == $id)
                    {
                        while ($stmt->fetch())
                        {
echo "Heeey bruger infomation vil være her";

}
                    }
                    elseif($_GET["id"] != $id)
                    {
                        echo "Hey";
                    }
                   
                    $stmt->close();

                    } else {
                        echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                    }
                ?>
Avatar billede arne_v Ekspert
08. oktober 2012 - 01:54 #7
det tror jeg ikke virker - du bruger $id inden du kalder fetch ??
Avatar billede tobrukDk Novice
08. oktober 2012 - 07:58 #8
Så den skal være efter ??
Avatar billede tobrukDk Novice
08. oktober 2012 - 11:51 #9
Jeg kun også gøre det sådan her


if ($stmt = $mysqli->prepare('SELECT `id`, `rank`, `brugernavn`, `profilbillede`, `profilbillede_godkendt`, `navn`, `efternavn`, `profiltekst`, `alder_d`, `alder_m`, `alder_aar`, `status`, `kon`, `seksualitet` FROM `bruger` WHERE `id` = ?'))
                    {
                    $stmt->bind_param('i', $id);
                    $id = $_GET["id"];

                    $stmt->execute();
                    $stmt->store_result();
                    $stmt->bind_result($id, $rank, $brugernavn, $profilbillede, $profilbillede_godkendt, $navn, $efternavn, $profiltekst, $alder_d, $alder_m, $alder_aar, $status, $kon, $seksualitet);
                 
                        while ($stmt->fetch())
                        {
                        if($_GET["id"] >= $id)
                        {
                            echo "Heey du ";
                        }
                        else
                            echo "<h1>" . "Velkommen til " . $brugernavn . "'s profil" . "</h1>";
                       
                            if($profilbillede_godkendt == 1)
                            {
                            ?>
Avatar billede tobrukDk Novice
08. oktober 2012 - 16:57 #10
Jeg har også prøve at gøre sådan her

http://dk.php.net/manual/en/mysqli-result.num-rows.php


if ($stmt = $mysqli->prepare('SELECT `id`, `rank`, `brugernavn`, `profilbillede`, `profilbillede_godkendt`, `navn`, `efternavn`, `profiltekst`, `alder_d`, `alder_m`, `alder_aar`, `status`, `kon`, `seksualitet` FROM `bruger` WHERE `id` = ?'))
                    {
                    $stmt->bind_param('i', $id);
                    $id = $_GET["id"];

                    $stmt->execute();
                    $stmt->store_result();
                   
                    $row_cnt = $stmt->num_rows;
                   
                    $stmt->bind_result($id, $rank, $brugernavn, $profilbillede, $profilbillede_godkendt, $navn, $efternavn, $profiltekst, $alder_d, $alder_m, $alder_aar, $status, $kon, $seksualitet);
                 
                        while ($stmt->fetch())
                        {
                        if($_GET["id"] != $row_cnt)
                        {
                            echo "Heey du ";
                        }
                        else
                        {
Avatar billede tobrukDk Novice
08. oktober 2012 - 18:49 #11
http://www.eksperten.dk/spm/966314

kigge på den!

KLART HER


<?php
                    if ($stmt = $mysqli->prepare('SELECT `id`, `rank`, `brugernavn`, `profilbillede`, `profilbillede_godkendt`, `navn`, `efternavn`, `profiltekst`, `alder_d`, `alder_m`, `alder_aar`, `status`, `kon`, `seksualitet` FROM `bruger` WHERE `id` = ?'))
                    {
                    $stmt->bind_param('i', $id);
                    $id = $_GET["id"];

                    $stmt->execute();
                    $stmt->store_result();
                    if ($stmt->num_rows>=1) {
                    $stmt->bind_result($id, $rank, $brugernavn, $profilbillede, $profilbillede_godkendt, $navn, $efternavn, $profiltekst, $alder_d, $alder_m, $alder_aar, $status, $kon, $seksualitet);
                        while ($stmt->fetch())
                        {
//INDHOLD!!
}
                else
                {
                    echo "hey";   
                }
                   
                    $stmt->close();

                    } else {
                        echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
                    }
                ?>
Avatar billede arne_v Ekspert
08. oktober 2012 - 20:28 #12
det boer vaere saa simpelt

$stmt = $mysqli->prepare('SELECT `id`, `rank`, `brugernavn`, `profilbillede`, `profilbillede_godkendt`, `navn`, `efternavn`, `profiltekst`, `alder_d`, `alder_m`, `alder_aar`, `status`, `kon`, `seksualitet` FROM `bruger` WHERE `id` = ?'))
$stmt->bind_param('i', $id);
$id = $_GET["id"];
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id, $rank, $brugernavn, $profilbillede, $profilbillede_godkendt, $navn, $efternavn, $profiltekst, $alder_d, $alder_m, $alder_aar, $status, $kon, $seksualitet);
if ($stmt->fetch()) {
    echo "$brugernavn ....";
} else {
    echo "id eksisterer ikke";
}
Avatar billede tobrukDk Novice
08. oktober 2012 - 21:54 #13
lige et svar!
Avatar billede arne_v Ekspert
08. oktober 2012 - 21:55 #14
svar
Avatar billede arne_v Ekspert
08. oktober 2012 - 22:07 #15
Og husk: simpelt er godt
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

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