array laat maar 1 resultaat zien uit de database
Wat doe ik verkeerd?
Code (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
//*Program: prijzen weergeven
function prijs(){
//onderstaand maakt connectie met de database
include ("../include.php");
$query = "SELECT * FROM useraccount, product WHERE useraccount.PIDID = product.PIDID ";
$result = mysql_query($query);
# Query controleren
if( mysql_num_rows( $result ) == 0 )
{
return 'None of the requested data is found.';
}
else
{
while( $rec = mysql_fetch_assoc( $result ) )
{
$totaal[] = $rec['productPRICE'];
}
# Weergaven
foreach( $totaal as $totaalprijs )
{
if($totaalprijs > 0)
{
return $totaalprijs;
}
elseif( $totaalprijs < 0 )
{
return 'Nader overeen te komen';
}
elseif ($totaalprijs == 'prijsPerPartij')
{
return 'Per partij';
}
}
}
}
//-----------------------------------------------
// resultaten echoen op de pagina
echo prijs();
//-----------------------------------------------
?>
//*Program: prijzen weergeven
function prijs(){
//onderstaand maakt connectie met de database
include ("../include.php");
$query = "SELECT * FROM useraccount, product WHERE useraccount.PIDID = product.PIDID ";
$result = mysql_query($query);
# Query controleren
if( mysql_num_rows( $result ) == 0 )
{
return 'None of the requested data is found.';
}
else
{
while( $rec = mysql_fetch_assoc( $result ) )
{
$totaal[] = $rec['productPRICE'];
}
# Weergaven
foreach( $totaal as $totaalprijs )
{
if($totaalprijs > 0)
{
return $totaalprijs;
}
elseif( $totaalprijs < 0 )
{
return 'Nader overeen te komen';
}
elseif ($totaalprijs == 'prijsPerPartij')
{
return 'Per partij';
}
}
}
}
//-----------------------------------------------
// resultaten echoen op de pagina
echo prijs();
//-----------------------------------------------
?>
Gewijzigd op 16/11/2011 12:29:58 door Michiel v
In de foreach() doe je zodra je iets gevonden hebt een return. Dan is de function klaar en heb je inderdaad maar één antwoord.
Wat zou ik dan op de plek van de return moeten zetten. Iets van " . $row['productPRICE'] . "
?
Wat is je doel?
De functie op een andere pagina ophalen. En daar alle gegevens in een listing laten zien.
Toevoeging op 16/11/2011 15:26:35:
hmmm.... kom er niet helemaal uit. Heb je code iets aangepast want het werkte niet helemaal. Nu met de nieuwe code is geeft de array als resultaat het woord "Array". Enig idee hoe dit kan is de array soms leeg?
zie code:
$array = array();
while( $rec = mysql_fetch_assoc( $result ))
{
if($rec['productPRICE'] < 0)
{
$array[] = 'Nader overeen te komen';
}
else
{
$array[] = $rec['productPRICE'];
}
}
return $array;
}
}
Bedankt weer voor je code! Kom er nog steeds niet uit. Onderstaand vindt je de code van de pagina/listing waarin de functie moet worden opgeroepen. Hoe moet ik jou code dan hiertussen plaatsen?
Code (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
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
while ($row = mysql_fetch_array($result)){
echo " <tr style='background:#f3f3f3;'>";
echo " <td align='center' valign='top'><img src='http://'></td>";
echo "<td align='left' valign='top'>[ Aangeboden ] <a href='http://'>" . $row['productNAME'] . "</a><br>";
echo "<div align='left' valign='top'><strong>Van: </strong> " . $row['name'] . "</div> </td>";
echo "<td align='center' valign='top'>" . $row['totalMinimum'] . "</td>";
echo "<td align='left' valign='top'><strong>Prijs: </strong>
<?php
$var = prijs();
if(is_array($var))
{
foreach($var as $value)
{
echo $value . '<br />';
)
{
else
{
echo $var;
}
?>
</td>";
echo "<td align='center' valign='top'>Nederland</td>";
echo "<td align='left' valign='top'>" . $row['createDATUM'] . " </td>";
}
{
?
while ($row = mysql_fetch_array($result)){
echo " <tr style='background:#f3f3f3;'>";
echo " <td align='center' valign='top'><img src='http://'></td>";
echo "<td align='left' valign='top'>[ Aangeboden ] <a href='http://'>" . $row['productNAME'] . "</a><br>";
echo "<div align='left' valign='top'><strong>Van: </strong> " . $row['name'] . "</div> </td>";
echo "<td align='center' valign='top'>" . $row['totalMinimum'] . "</td>";
echo "<td align='left' valign='top'><strong>Prijs: </strong>
<?php
$var = prijs();
if(is_array($var))
{
foreach($var as $value)
{
echo $value . '<br />';
)
{
else
{
echo $var;
}
?>
</td>";
echo "<td align='center' valign='top'>Nederland</td>";
echo "<td align='left' valign='top'>" . $row['createDATUM'] . " </td>";
}
{
?
Code (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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
while ($row = mysql_fetch_array($result)){
echo "<tr style='background:#f3f3f3;'>";
echo "<td align='center' valign='top'><img src='http://'></td>";
echo "<td align='left' valign='top'>[ Aangeboden ] <a href='http://'>" . $row['productNAME'] . "</a><br>";
echo "<div align='left' valign='top'><strong>Van: </strong>" . $row['name'] . "</div></td>";
echo "<td align='center' valign='top'>" . $row['totalMinimum'] . "</td>";
echo "<td align='left' valign='top'><strong>Prijs: </strong>";
$var = prijs();
if(is_array($var))
{
foreach($var as $value)
{
echo $value . '<br />';
)
}
else
{
echo $var;
}
echo "</td>";
echo "<td align='center' valign='top'>Nederland</td>";
echo "<td align='left' valign='top'>" . $row['createDATUM'] . " </td>";
}
?
while ($row = mysql_fetch_array($result)){
echo "<tr style='background:#f3f3f3;'>";
echo "<td align='center' valign='top'><img src='http://'></td>";
echo "<td align='left' valign='top'>[ Aangeboden ] <a href='http://'>" . $row['productNAME'] . "</a><br>";
echo "<div align='left' valign='top'><strong>Van: </strong>" . $row['name'] . "</div></td>";
echo "<td align='center' valign='top'>" . $row['totalMinimum'] . "</td>";
echo "<td align='left' valign='top'><strong>Prijs: </strong>";
$var = prijs();
if(is_array($var))
{
foreach($var as $value)
{
echo $value . '<br />';
)
}
else
{
echo $var;
}
echo "</td>";
echo "<td align='center' valign='top'>Nederland</td>";
echo "<td align='left' valign='top'>" . $row['createDATUM'] . " </td>";
}
?
We komen steeds een stukje verder:). Maar hij geeft nu alle resultaten binnen 1 kolom zie: http://www.voteforthevoice.com/s4new/listingrubriek_test_22santhe1.php
Kijk bij het kopje prijs van de listingpagina.
Groetjes michiel
Ik heb alleen getracht jouw code werkend te maken. Verder heb ik er geen zicht op.
Nu zorgt de volgende code ervoor dat ik de resultaten kan listen met:while ($row = mysql_fetch_array($result)){
en dan oproepen met: ". $row['totalMinimum'] . "
Maar bij mijn functie prijs() zet hij het niet goed in de listing. Hmmmm... misschien nog een idee?
Eerst is het probleem dat ie maar één resultaat laat zien. Nu is het probleem dat ie meerdere resultaten laat zien. En beiden zijn niet okee volgens jou. Mijn conclusie is dan al snel dat je opzet dus verkeerd is. Probeer alles zo simpel en logisch mogelijk te zien.
Om je functie schoon te houden en makkelijker voor hergebruik zou ik geen plain tekst er in zetten, het is mooier als je een array er uit laat komen, stel je wilt het ooit ergens anders gebruiken in een andere form dan kan je dit makkelijk hergebruiken.
Zie code.
Code (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
//*Program: prijzen weergeven
function prijs(){
//onderstaand maakt connectie met de database
include ("../include.php");
$query = "SELECT * FROM useraccount, product WHERE useraccount.PIDID = product.PIDID ";
$result = mysql_query($query);
# Query controleren
if( mysql_num_rows( $result ) == 0 ) {
return false;
} else {
while( $rec = mysql_fetch_assoc( $result ) ) {
$totaal[] = $rec['productPRICE'];
}
}
}
//-----------------------------------------------
// resultaten echoen op de pagina
if( prijs() ){
foreach( prijs() as $totaalprijs ) {
if($totaalprijs > 0) {
echo $totaalprijs;
} elseif( $totaalprijs < 0 ) {
echo 'Nader overeen te komen';
} elseif ($totaalprijs == 'prijsPerPartij') {
echo 'Per partij';
}
}
} else {
echo 'Er zijn geen prijzen gevonden.';
}
//-----------------------------------------------
?>
//*Program: prijzen weergeven
function prijs(){
//onderstaand maakt connectie met de database
include ("../include.php");
$query = "SELECT * FROM useraccount, product WHERE useraccount.PIDID = product.PIDID ";
$result = mysql_query($query);
# Query controleren
if( mysql_num_rows( $result ) == 0 ) {
return false;
} else {
while( $rec = mysql_fetch_assoc( $result ) ) {
$totaal[] = $rec['productPRICE'];
}
}
}
//-----------------------------------------------
// resultaten echoen op de pagina
if( prijs() ){
foreach( prijs() as $totaalprijs ) {
if($totaalprijs > 0) {
echo $totaalprijs;
} elseif( $totaalprijs < 0 ) {
echo 'Nader overeen te komen';
} elseif ($totaalprijs == 'prijsPerPartij') {
echo 'Per partij';
}
}
} else {
echo 'Er zijn geen prijzen gevonden.';
}
//-----------------------------------------------
?>