Versio

array resultaat wordt maar 1 keer weergegeven

Overzicht Reageren

Michiel v

michiel v

15/11/2011 17:46:59
Quote Anchor link
Ik heb een functie gemaakt waarin ik met een array de gegevens uit de database ophaal. Deze gegevens wil ik bewerken met if en elsif etc...

De functie wil ik dan ophalen in een listingpagina.

Het probleem is dat alleen het eertse resultaat uit de database wordt weergegeven op deze listing pagina!

Wat doe ik verkeerd, haal ik de array verkeerd op?

Zie onderstaand mijn php script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
53
54
55
56
57
58
59
60
61
<?php
//*Program:  prijzen weergeven

function prijs(){

    //onderstaand maakt connectie met de database
    include ("../includes.php");
    $sql = "SELECT * FROM useraccount, product WHERE useraccount.PIDID = product.PIDID ";
    $query = mysql_query($sql,$db);
    $total_results = mysql_num_rows($query); //mysql_num_rows($result) = Geef het aantal rijen in een resultaat
    $query = "SELECT * FROM useraccount, product WHERE useraccount.PIDID = product.PIDID ";
    $result = mysql_query($query);
    
    //-----------------------------------------------

    //array uit de database halen

            
               while($row = mysql_fetch_array($result)){
            
            $array = array();
            $array[] = $row['productPRICE'];  
            $row['productPRICE'] = $totaalprijs;
            $totaalprijs = array($array ['0']);


    //------------------------------------------

    //if els en elsif controlles uitvoeren TOTAAL Prijs

        
  
            foreach ($totaalprijs as $totaal){
 
            if ($totaal > '0')
             {

                     return  "$totaal" ;
                

            }

                elseif ($totaalprijs < '0')
             {

                     return "nader overeen te komen";
             }

                elseif ($totaalprijs == 'prijsPerPartij')
             {

                     return "Per partij";
             }

                 else
             {
                     return "";
             }
            
    }
    }
    }

    //-----------------------------------------------

    // resultaten echoen op de pagina    

        echo prijs();
    //-----------------------------------------------
 
?>
 
PHP hulp

PHP hulp

23/05/2012 21:40:58
Gesponsorde koppelingen:
 
Ger van Steenderen

Ger van Steenderen

15/11/2011 17:58:48
Quote Anchor link
$totaalprijs = array($array ['0']);
Hier zet je elke keer een nieuwe waarde voor het array element
Gewijzigd op 15/11/2011 18:25:33 door Ger van Steenderen
 
Michiel v

michiel v

15/11/2011 18:34:59
Quote Anchor link
Bedankt voor je reactie! Moet ik deze regels dan weglaten? Hij geeft dan een invalid foreach melding.
 
Milo S

Milo S

15/11/2011 19:17:12
Quote Anchor link
Je voert 2 exact dezelfde query's uit. Waarom? Ook kijk je niet of de query wel gelukt is... Verder maak je naar mijn idee een aantal array / vars aan die helemaal niet nodig zijn.
Ik zou zelf eerst dat een aanpassen. Neem voorbeeld aan script hieronder, niet getest, maar lijkt mij logischer...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
53
54
55
<?php
function prijs()
{

    # Database connectie
    include('config.php');
    
    # Query
    $sql =
    "
    SELECT
        *
    FROM
        useraccount,
        product
    WHERE
        useraccount.PIDID = product.PIDID
    "
;
    
    # Query uitvoeren
    if( $res = mysql_query( $sql ) )
    {

        return 'An error occurred while executing the query.';
    }

    # Checken voor resultaten
    elseif( mysql_num_rows( $res ) == 0 )
    {

        return 'None of the requested data is found.';
    }

    else
    {
        # Resultaten doorlopen
        while( $rec = mysql_fetch_assoc( $res ) )
        {

            $totalPrice[] = $rec['productPRICE'];        
        }

        
        # Weergaven
        foreach( $price as $totalPrice )
        {

            if($totaal > 0)
            {

                return $totaal;    
            }

            elseif( $totaalprijs < 0 )
            {

                return 'Nader overeen te komen';
            }

            elseif ($totaalprijs == 'prijsPerPartij')
            {

                return 'Per partij';
            }
        }
    }
}

?>
Gewijzigd op 15/11/2011 19:48:31 door Milo S
 
Michiel v

michiel v

15/11/2011 19:32:46
Quote Anchor link
Beste Milo,

Super bedankt voor je overzichtelijke code.

Ikheb nog de volgende vragen?
1) ik krijg de melding "An error occurred while executing the query. ". Dit komt waarschijnlijk omdat ik nu geen database connectie meer maak.

2) Ik heb de code willen schrijven als een function. om deze zo weer op te roepen in een andere pagina (listing pagina)
 
Milo S

Milo S

15/11/2011 19:41:38
Quote Anchor link
Hallo Michiel,

Overzicht kun je zelf ook maken, gewoon goed inspringen haha.

1) Klopt, ik heb gewoon een standaard stukje code gepakt en jou query enzo er in geplakt. Databaseconnectie moet je even zelf veranderen (regel 5);

2) Oh sorry haha, check me update ;)
 
Michiel v

michiel v

15/11/2011 20:09:45
Quote Anchor link
Beste Milo,

Bedankt weer! Ik blijf fout melding ontvangen. Denk dat ik nu niet goed weet hoe ik de datebste moet koppelen. De volgende gegevens zjn in iedergeval nodig voor de connectie. Weet jij deze goed in je script te zetten? zie onderstaand:


$query = mysql_query($sql,$db);

$query = "SELECT * FROM useraccount, product WHERE useraccount.PIDID = product.PIDID ";
$result = mysql_query($query);


Toevoeging op 15/11/2011 21:54:50:

Hoi Milo,

Ik moet inmiddels verbinding hebben want krijg nu de volgende melding. Maar wat kan er nu nog mis gaan?

Melding:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/voice/domains/voteforthevoice.com/public_html/s4yincludes/prijs8.php on line 31
None of the requested data is found.



Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
function prijs()
{

    # Database connectie
    include ("../includes.php");
    
  
    
    
    # Query
    
    $sql =
    "
    SELECT
        *
    FROM
        useraccount,
        product
    WHERE
        useraccount.PIDID = product.PIDID
    "
;
        
    $sql = mysql_query($sql,$db);
        
    # Query uitvoeren
    if( $res = mysql_query( $sql,$db ) )
    {

        return 'An error occurred while executing the query.';
    }

    # Checken voor resultaten
    elseif( mysql_num_rows( $res ) == 0 )
    {

        return 'None of the requested data is found.';
    }

    else
    {
        # Resultaten doorlopen
        while( $rec = mysql_fetch_assoc( $res ) )
        {

            $totalPrice[] = $rec['productPRICE'];        
        }

        
        # Weergaven
        foreach( $price as $totalPrice )
        {

            if($totaal > 0)
            {

                return  $totaal;    
            }

            elseif( $totaalprijs < 0 )
            {

                return 'Nader overeen te komen';
            }

            elseif ($totaalprijs == 'prijsPerPartij')
            {

                return 'Per partij';
            }
        }
    }
}


    //-----------------------------------------------

    // resultaten echoen op de pagina    

        echo prijs();
    //-----------------------------------------------
?>
 



Overzicht Reageren

Get Adobe Flash player