Toon posts:

[PHP] Query results uit functie returnen

Pagina: 1
Acties:
  • 26 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik ben nu al geruimte tijd aan het stoeien met het volgende:

Ik heb binnen een functie een query waar een aantal results uit moeten komen (in dit geval 3). Ik krijg echter alleen het eerste result terwijl in gebruik maak van een while loopje. Ik heb ook al de print_r optie geprobeerd maar zonder succes.

Verder lijkt de volgende thread het meest op mijn probleem, maar ik kom er niet uit.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function connectdb()
{
    $DBhost = "xxxx";
    $DBuser = "xxxx";
    $DBpass = "xxxx";
    $DBname = "xxxx";

    mysql_connect($DBhost,$DBuser,$DBpass) or die ("Unable to connect to database");
    mysql_select_db("$DBname") or die ("Unable to select database $DBname");
}

function getitems()
{
    $qItem = mysql_query("SELECT *,DATE_FORMAT(datum, '%d-%m-%Y') AS tijd FROM freelance_item ORDER BY id");
    while ($fItem = mysql_fetch_array($qItem))
    {
        $title = $fItem["title"];
    
    }
    return($title);    
}


connectdb();
echo getitems();

[ Voor 8% gewijzigd door Verwijderd op 29-05-2005 21:40 ]


  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 05-05 12:14
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function getitems()
{
    $title = array();
    $qItem = mysql_query("SELECT *,DATE_FORMAT(datum, '%d-%m-%Y') AS tijd FROM freelance_item ORDER BY id");
    while ($fItem = mysql_fetch_array($qItem))
    {
        array_push($title,$fItem["title"]);
    
    }
    return($title);    
}


$array = getitems();
print_r($array);

Icons are overrated


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Je overschrijft $title steeds...maak er dan een array van ofzo:
PHP:
18
$title[] = $fItem["title"];

Of een string:
PHP:
18
$title .= $fItem["title"];

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Thanx! Dat is al een heel stuk beter...
Dan het volgende probleem:

Ik geef de title array nu als volgt weer:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
$items = getitems($title);
foreach($items as $bla)
{
?>

<div id="item">

    <h1><? echo $bla; ?></h1>

</div>

<?
}
?>


Als ik nu meedere array wil maken vanuit de query
PHP:
1
2
3
4
...
array_push($title,$fItem["title"]);
array_push($company,$fItem["company"]);
...


Hoe zorg er nu voor dat ik de company array ook in het divje kan echo-en ?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Hoort een bepaalde company bij een bepaalde title? Zo ja, waarom haal je ze dan niet in één functie op, in een associatief array?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
-NMe- schreef op zondag 29 mei 2005 @ 22:05:
Hoort een bepaalde company bij een bepaalde title? Zo ja, waarom haal je ze dan niet in één functie op, in een associatief array?
Ja die horen bij elkaar. Associatief? Kan je me misschien in de richting helpen ?

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 06-05 20:22
Verwijderd schreef op zondag 29 mei 2005 @ 22:06:
[...]


Ja die horen bij elkaar. Associatief? Kan je me misschien in de richting helpen ?
Lees eens de manual door, hier vind je bergen informatie over PHP. Zo ook over de diverse mysql functies.

Aan de andere kant zou ik je aanraden om een een goede tutorials of beter nog een goed PHP boek kopen. Ze zijn er ook wel in het Nederlands, zoals de PHP & MySQL bijbel. Daarin worden ook de basis elementen van PHP benhandeld zoals array's en dergelijke.

Verwijderd

Topicstarter
Mja, je hebt echt helemaal gelijk maar toch ... :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Zoiets.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function getItemsEnCompanies()
{
    $title = array();
    $qItem = mysql_query("
        SELECT *,DATE_FORMAT(item.datum, '%d-%m-%Y') AS tijd
        FROM freelance_item AS item
        INNER JOIN companies
        ON item.company_id = companies.id
        ORDER BY id
    ");
    while ($fItem = mysql_fetch_array($qItem))
    {
        $title[$fItem["companynaam"]] = $fItem["title"];
    }
    return($title);    
}

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
uhuh ok iets duidelijk al...

(title en company zitten trouwens gewoon in dezelfde tabel)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zondag 29 mei 2005 @ 22:22:
uhuh ok iets duidelijk al...

(title en company zitten trouwens gewoon in dezelfde tabel)
Dat maakt het des te makkelijker. ;) Je maakt feitelijk gewoon een index aan in de tabel die aan te spreken is met de itemnaam (of de companynaam, dat hangt ervanaf welke van de twee uniek is), en daarmee kun je dan gaan werken. Foreach heeft een mooie constructie waarmee je de key en de value kan gebruiken, dus dat maakt het extra makkelijk. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Of JIJ begrijpt niet precies wat ik bedoel of IK begrijp niet precies wat jij bedoeld :P

Ik heb nu dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
function getitems()
{
    connectdb();
    //$_fItems = array();
    $qItem = mysql_query("SELECT *,DATE_FORMAT(datum, '%d-%m-%Y') AS tijd FROM freelance_item ORDER BY id");
    while($fItem = mysql_fetch_array($qItem))
    {
        $_fItems[$fItem['nid']] = Array('title' => $fItem['title'], 'company' => $fItem['company']);
        return($_fItems);
      }
}


Wat ik aanroept met:

PHP:
1
echo getitems();


Dat is al iets meer in de richting denk ik, maar dan krijg ik Array als ouput...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Gebruik dan ook print_r() in plaats van echo. ;) Verder is die functie wel in orde zo, is een stukje handiger dan zoals ik het geschreven had. :P

Met de tips die je nu gehad hebt moet je er wel uit kunnen komen, het is natuurlijk niet de bedoeling dat we je met elk klein vraagje gaan helpen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.