Avatar billede strookers Nybegynder
04. maj 2014 - 11:30 Der er 6 kommentarer

Redbeans php select from database

Jeg er lige gået igang med php orm systemet redbeans php og har problemer med at hente informationer fra databasen i et array som jeg plejer at gøre.

Sådan her ville jeg normalt gøre:

<?php
$conn = mysqli_connect ("localhost","root","","test");

$query = mysqli_query ($conn,"select * from members");
while($result = mysqli_fetch_array($query)){

echo $result['id'];
echo "<br>";
echo $result['firstname'];
echo "<br>";
echo $result['lastname'];
echo "<br>";
echo $result['email'];
echo "<br><br>";

};
?>

Jeg vil gerne have samme informationer ud via redbeans php, men har mange problemer med det. jeg kan få den til at vise en række fra databasen hvis jeg skriver hvilken id det skal vælges fra som vist her:

<?php
require 'rb.phar';
R::setup('mysql:host=localhost;dbname=test','root','');

$members = R::load('members', 1);

echo $members->firstname;
?>

Hvis jeg sletter kommaet og et tallet viser den en fejl.

håber der er nogle der kan hjælpe mig.
Avatar billede madslundholm Novice
04. maj 2014 - 12:44 #1
Kender ikke til Redbeans, men var inde på deres dokumentation. Hvis du vil have alle rækker i databasen skal du bruge R::findAll().
R::load() er kun til at hente en række
Avatar billede strookers Nybegynder
04. maj 2014 - 15:23 #2
det ved jeg godt, men det er hvordan jeg får det ud i et array. den skriver nemlig en fejl hvis jeg bruger koden:

$all = R::findAll('members');
echo $all;

eller på den måde som skulle kunne få de enkelte informationer ud på:

$all = R::findAll('members');
echo $all->firstname;
Avatar billede madslundholm Novice
04. maj 2014 - 17:02 #3
prøv at lave en var_dump på $all så kan du finde ud af hvordan resultatet ser ud
Avatar billede strookers Nybegynder
04. maj 2014 - 17:52 #4
Hvis jeg laver en var dump på denne kode:

$members = R::findAll('members');
var_dump($members);

Kommer dette output:

array (size=2)
  1 =>
    object(RedBeanPHP\OODBBean)[15]
      private 'flagSkipBeau' => boolean false
      private 'properties' =>
        array (size=4)
          'id' => string '1' (length=1)
          'firstname' => string 'Michael' (length=7)
          'lastname' => string 'Kirkegaard' (length=10)
          'email' => string 'michael_k@mail.dk' (length=17)
      private '__info' =>
        array (size=4)
          'type' => string 'members' (length=7)
          'sys.id' => string 'id' (length=2)
          'sys.orig' =>
            array (size=4)
              ...
          'tainted' => boolean false
      private 'beanHelper' =>
        object(RedBeanPHP\BeanHelper\SimpleFacadeBeanHelper)[10]
      private 'fetchType' => null
      private 'withSql' => string '' (length=0)
      private 'withParams' =>
        array (size=0)
          empty
      private 'aliasName' => null
      private 'via' => null
      private 'noLoad' => boolean false
      private 'all' => boolean false
  2 =>
    object(RedBeanPHP\OODBBean)[17]
      private 'flagSkipBeau' => boolean false
      private 'properties' =>
        array (size=4)
          'id' => string '2' (length=1)
          'firstname' => string 'Dennis' (length=6)
          'lastname' => string 'Møller' (length=7)
          'email' => string 'dennis_m@mail.dk' (length=16)
      private '__info' =>
        array (size=4)
          'type' => string 'members' (length=7)
          'sys.id' => string 'id' (length=2)
          'sys.orig' =>
            array (size=4)
              ...
          'tainted' => boolean false
      private 'beanHelper' =>
        object(RedBeanPHP\BeanHelper\SimpleFacadeBeanHelper)[10]
      private 'fetchType' => null
      private 'withSql' => string '' (length=0)
      private 'withParams' =>
        array (size=0)
          empty
      private 'aliasName' => null
      private 'via' => null
      private 'noLoad' => boolean false
      private 'all' => boolean false

Så den har jo fat i de rigtige oplysninger, det er bare hvordan jeg får dem ud hver for sig. har prøvet at echo $members['firstname']; eller $members->firstname; og der er ingen af delene der virker.
Avatar billede strookers Nybegynder
04. maj 2014 - 20:08 #5
Har fået det til at virke. brugte denne kode:

$members = R::find('members');

foreach($members as $result)
{
echo $result->id;
echo "<br>";
echo $result->firstname;
echo "<br>";
echo $result->lastname;
echo "<br>";
echo $result->email;
echo "<br><br>";
};

ellers tak for hjælpen.
Avatar billede madslundholm Novice
04. maj 2014 - 21:02 #6
Det var også det jeg vil have fortalt dig :-)
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