Avatar billede tobrukDk Novice
21. september 2012 - 20:15 Der er 5 kommentarer og
1 løsning

opslag til siden

Det er sådan, at jeg er nødt til at opbygge et system som facebook, hvor du kan skrive noget et opslag men det er sådan, at slå en database for sig selv, og bruge en database for sig selv. men jeg må have en eller anden måde lavet sådan, at det er det samme. Hvad jeg skulle have nogle brugerdatabase det billede, og det er godkendt billede. og brugerens navn

  CREATE TABLE IF NOT EXISTS `user`  (
  `id_bruger`  int ( 200 ) NOT NULL AUTO_INCREMENT ,
  `rang`  int ( 11 ) NOT NULL ,
  `Brugernavn` varchar ( 255 ) NOT NULL ,
  `password` varchar ( 300 ) NOT NULL ,
  `profilbillede` varchar ( 255 ) NOT NULL ,
  `profilbillede_godkendt`  int ( 2 ) NOT NULL ,
  `Navn` varchar ( 100 ) NOT NULL ,
  `efternavn` varchar ( 200 ) NOT NULL ,
  `profiltekst` LONGTEXT NOT NULL ,
  `elletræ`  int ( 50 ) NOT NULL ,
  PRIMARY KEY ( `id_bruger` )
) ENGINE = MyISAM  DEFAULT CHARSET = latin1 AUTO_INCREMENT = 3  ;

CREATE TABLE IF NOT EXISTS `opslag`  (
  `id_opslag`  int ( 11 ) NOT NULL AUTO_INCREMENT ,
  `text` LONGTEXT NOT NULL ,
  `id_bruger`  int ( 11 ) NOT NULL ,
  PRIMARY KEY ( `id_opslag` )
) ENGINE = MyISAM  DEFAULT CHARSET = latin1 AUTO_INCREMENT = 2  ;



og så har jeg prøve at bygge den her;



<table border="0">
            <?php
            if ($stmt = $mysqli->prepare('SELECT `tekst`, `id_bruger` FROM `opslag`')) {
                $stmt->execute();
                $stmt->store_result();
                $stmt->bind_result($tekst, $id_bruger);

                while ($stmt->fetch()) {
                ?>
                    <tr>
                        <td>

                        </td>
                        <td><?php echo $tekst;?></td>
                    </tr>
                <?php
                }
                $stmt->close();
            } else {
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
            ?>
            </table>




men jeg skal have bygge bruger og opslag samme på en eller anden måde , men kan bare ikke se hvordan jeg skal gøre det?. håber du kan hjælp mig?


Det som jeg vil have ude fra Bruger database er ;

profilbillede
profilbillede_godkendt
brugernavn

men spørger gerne hvis du vil vide mere?
Avatar billede tobrukDk Novice
22. september 2012 - 04:32 #1
er klart , men dog er der kommer andre problemer..

dog vil jeg åben en anden tråde eller lign.
Avatar billede stalle Nybegynder
23. september 2012 - 11:24 #2
Jeg mener du skal kigge på og lave et par JOINS i din sql.

Noget i stil med

'SELECT u.id_bruger, u.profilbillede, u.profilbillede_godkendt, u.brugernavn, opslag.id_bruger, opslag.tekst
FROM user AS u
LEFT JOIN opslag
ON u.id_bruger=opslag.id_bruger'

Det er ikke prøvet af, men mener det vil være noget i den retning du skal have, hvis jeg forstår dig korrekt.

Hver record vil så indeholde informationerne, og SQL har sørget for at kæde det hele sammen for dig, for hver record.

Det er lidt en "quick and dirty" måde og gøre det på, men det burde virke.
Avatar billede tobrukDk Novice
23. september 2012 - 14:58 #3
Jeg har lavet det på en anden måde og det virker helt fint ;)
Avatar billede stalle Nybegynder
23. september 2012 - 16:47 #4
Hvordan har du skruet din løsning sammen, hvis man må være så "fræk" og spørge ?
Avatar billede tobrukDk Novice
24. september 2012 - 00:24 #5
sådan her


<div class="opslag_midt-indhold">
            <?php
                if ($stmt = $mysqli->prepare('SELECT `tekst`, `id_bruger` FROM `opslag`ORDER BY `opslag`.`id_opslag` DESC LIMIT 15')) {
                $stmt->execute();
                $stmt->store_result();
                $stmt->bind_result($tekst, $id_bruger);

                while ($stmt->fetch())
                {
                ?>
                <div class="opslag_bruger_info_profil">
                        <div class="pas-indhold">
                        <?php
                        if($id_bruger == $_SESSION["id"])
                        {
                            if ($stmt_1 = $mysqli->prepare('SELECT `brugernavn`, `profilbillede`, `profilbillede_godkendt` FROM `bruger` WHERE `id_bruger` = ?'))
                            {
                                $stmt_1->bind_param('i', $id);
                                $id = $id_bruger;

                                /* Eksekver forespørgslen */
                                $stmt_1->execute();

                                /* Bind resultatet */
                                $stmt_1->bind_result($brugernavn, $profilbillede, $profilbillede_godkendt);

                                /* Hent rækker og udskriv data */
                                while ($stmt_1->fetch())
                                {
                                    if($profilbillede_godkendt == 0)
                                    {
                                        echo "<a href=\"/profil/$id_bruger/\"><img src=\"/profil/users.png\" alt=\"\" height=\"115\" width=\"100\" border=\"0\"></a>";
                                    }
                                    else
                                    {
                                        echo "<a href=\"/profil/$id_bruger/\"><img src=\"/profil/$profilbillede\" alt=\"\" height=\"115\" width=\"100\" border=\"0\"></a>";
                                    }
                                }
                                $stmt_1->close();
                            }
                        }
                        else
                        {
                            if ($stmt_2 = $mysqli->prepare('SELECT `brugernavn`, `profilbillede`, `profilbillede_godkendt` FROM `bruger` WHERE `id_bruger` = ?'))
                            {
                                $stmt_2->bind_param('i', $id);
                                $id = $id_bruger;

                                /* Eksekver forespørgslen */
                                $stmt_2->execute();

                                /* Bind resultatet */
                                $stmt_2->bind_result($brugernavn, $profilbillede, $profilbillede_godkendt);

                                /* Hent rækker og udskriv data */
                                while ($stmt_2->fetch())
                                {
                                    if($profilbillede_godkendt == 0)
                                    {
                                        echo "<a href=\"/profil/$id_bruger/\"><img src=\"/profil/users.png\" alt=\"\" height=\"115\" width=\"100\" border=\"0\"></a>";
                                    }
                                    else
                                    {
                                        echo "<a href=\"/profil/$id_bruger/\"><img src=\"/profil/$profilbillede\" alt=\"\" height=\"115\" width=\"100\" border=\"0\"></a>";

                                    }
                                }
                                $stmt_2->close();
                            }
                        }
                        ?>
                        <?php echo $tekst;?>
                        </div>
                    </div>
                <?php
                }
                $stmt->close();
            } else {
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
            ?>
            </div>
Avatar billede stalle Nybegynder
24. september 2012 - 03:33 #6
Okay.

Nu skal jeg selvfølgelig ikke bestemme hvordan du skal gøre tingene, men synes det virker unødigt besværligt det du har lavet?

I stedet for at lave 3 forskellige kald til databasen, kan du lave det i ét kald, hvor tingene automatisk er kædet sammen.

SELECT
`opslag`.`id_opslag` AS 'Opslags_ID',
`opslag`.`tekst` AS 'Opslags_tekst',
`opslag`.`id_bruger` AS 'Opslag_Bruger',
`user`.`id_bruger` as 'BrugerInfo_ID',
`user`.`brugernavn` as 'BrugerInfo_Brugernavn',
`user`.`profilbillede` as 'BrugerInfo_ProfilBillede',
`user`.`profilbillede_godkendt` as 'BrugerInfo_ProfilbilledeGodkendt'
FROM `user`
LEFT JOIN `opslag`
ON `user`.`id_bruger` = `opslag`.`id_bruger`
ORDER BY `opslag`.`id_opslag`
DESC LIMIT 15

Du skal med ovenstående godt nok stadig lave et tjek på, om profil-billedet er godkendt i din PHP.

Udovert det, så har jeg lidt svært ved og se hvorfor du har din IF sætning på session[id] - Det lader ikke til, at der er nogen forskel på det du viser.
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