2x een array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny kempen

Danny kempen

01/10/2008 09:30:00
Quote Anchor link
Dit is mijn huidige array. Nu wil ik nog een array in deze array gebruiken. Weet iemand hoe ik dit moet doen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

if (isset($_POST['o_opslaan']) && is_array($_POST['toevoegen']))
{

     foreach($_POST['toevoegen'] AS $key => $producten
     {
     echo $producten;
     }
}


?>
 
PHP hulp

PHP hulp

18/11/2024 03:42:42
 
- SanThe -

- SanThe -

01/10/2008 09:33:00
Quote Anchor link
Iets duidelijker graag.
 
Danny kempen

Danny kempen

01/10/2008 09:38:00
Quote Anchor link
SanThe schreef op 01.10.2008 09:33:
Iets duidelijker graag.


Dit is de (oude) situatie. Nu wil ik een array in een array.(zie voorbeeld 2)


Voorbeeld 1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

if (isset($_POST['o_opslaan']) && is_array($_POST['toevoegen']))
{

     foreach($_POST['toevoegen'] AS $key => $producten)
     {

     echo $producten;
     }
}


?>



Voorbeeld 2 (Dit voorbeeld werkt niet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

if (isset($_POST['o_opslaan']) && is_array($_POST['toevoegen'])  && is_array($_POST['aantal']))
{

     foreach($_POST['toevoegen'] AS $key => $producten AND $_POST['aantal'] AS $key => $aantal)
     {

     echo $producten;
     }
}


?>
 
- SanThe -

- SanThe -

01/10/2008 09:40:00
Quote Anchor link
Die AND gaat niet. Je zal twee aparte foreach moeten maken.
 
Eddy E

Eddy E

01/10/2008 09:46:00
Quote Anchor link
Gebruik iets als $i

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if (isset($_POST['o_opslaan']) && is_array($_POST['toevoegen'])  && is_array($_POST['aantal']))
{

      $count = count($_POST['toevoegen'];
      for($i = 0; $i == $count; $i++)
          {

          echo "Rij " . $i . ": " . $_POST['aantal'][$i] . " " . $_POST['toevoegen'][$i] . "<br>";
          // geeft Rij 1: 23 kopjes<br>
          }
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Eddy E
 
Jurgen assaasas

Jurgen assaasas

01/10/2008 10:03:00
Quote Anchor link
bedoel je array_merg()?
 
Danny kempen

Danny kempen

01/10/2008 10:04:00
Quote Anchor link
Hoi mensen, ik heb nu de volgende code:

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
<?php

foreach($_POST['toevoegen'] AS $key => $producten)    
    {
        
        $conn=odbc_connect('hsdb','','');

        $sql="SELECT * FROM Producten WHERE product = $producten ";
        $rs=odbc_exec($conn,$sql);     
        
        while (odbc_fetch_row($rs))
        {
        
        $product=odbc_result($rs, "product");
        $omschrijving=odbc_result($rs, "omschrijving");
        $kostprijs=odbc_result($rs, "kostprijs");
        
        echo "
        <table border='0' cellpadding='0' cellspacing='0' class='text_kop3'>
        <tr>
            <td width='100'>$product</td>
            <td width='400'>$omschrijving</td>
            <td width='100'>€&nbsp;$kostprijs</td>
            <td width='100'>
            "
;
            foreach($_POST['aantal'] AS $key => $aantal)    
            {

            echo " ".$aantal;
            }

            echo "
            </td>
        </tr>
        </table>
        "
;
        }
    }


?>


Het resultaat is:

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
<?php
echo "
<table>
<tr>
<td width='100'>Product</td>
<td width='100'>Omschrijving</td>
<td width='100'>Prijs</td>
<td width='100'>aantal</td>
</tr>
<tr>
<td width='100'>x</td>
<td width='100'>x</td>
<td width='100'>x</td>
<td width='100'>xx</td>
</table>"
;
?>


In heb venster prijs laat hij telkens de array zien. Hier moet echter per product het aantal komen. Nu krijg ik de hele array te zien per product aantal. Hoe moet ik dit oplossen?
Gewijzigd op 01/01/1970 01:00:00 door Danny kempen
 
- SanThe -

- SanThe -

01/10/2008 10:13:00
Quote Anchor link
Ik denk dat je probeert om $_POST['toevoegen'] en $_POST['aantal'] tegelijkertijd te doorlopen. Echter, weet je zeker dat ze beiden net zoveel elementen bevatten.
Zo ja..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
foreach($_POST['toevoegen'] AS $key => $producten)    
{

    echo $_POST['aantal'][$key] .  ' ' .  $producten;
}

?>
 
Danny kempen

Danny kempen

01/10/2008 10:58:00
Quote Anchor link
Thx. Het werkt.
 
Danny kempen

Danny kempen

20/10/2008 18:42:00
Quote Anchor link
Hoe kan ik deze gegevens in een array zetten?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$uit
= $row['uit'];
$thuis = $row['thuis'];

foreach($uit AS $key => $row['uit'])    
{

echo $uit;
}


?>



Dit is mijn hele code:

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
<?php

$result
= mysql_query("SELECT * FROM wedstrijden WHERE afgelast = 'ja'  AND DATE(FROM_UNIXTIME(`datum`))>=CURRENT_DATE() ");

if (mysql_num_rows($result) >= 1)
{

echo "
<table border='0' cellpadding='0' cellspacing='0' align='center' width='510' class='nieuws_header'>
<tr>
         <td class=\"headlines_title\">Afgelastingen</td>
</tr>
</table>"
;

   while($row = mysql_fetch_array($result))
   {

        $uit = $row['uit'];
        $thuis = $row['thuis'];

        foreach($uit AS $key => $row['uit'])    
        {

        echo $uit;
        }

        
        $result = mysql_query("SELECT * FROM teams WHERE id = '".$uit."'  ");

        if (mysql_num_rows($result) >= 1)
        {

            while($row = mysql_fetch_array($result))
            {

            $uit = $row['naam'];
            }
        }
  

        $result = mysql_query("SELECT * FROM teams WHERE id = '".$thuis."'  ");

        if (mysql_num_rows($result) >= 1)
        {

            while($row = mysql_fetch_array($result))
            {

            $thuis = $row['naam'];
            }
        }

        
        echo "
        <table border'0'  cellpadding='0' cellspacing='0' align='center' width='510' class='nieuws_inhoud'>
        <tr>
              
              <td width='120'>"
.$uit."  &nbsp;&nbsp;-&nbsp;&nbsp; ".$thuis."</td>
        </tr>
        </table> "
;
        }

echo "
<table border='0' cellpadding='0' cellspacing='0' align='center' width='510'>
<tr>
       <td class='bottom_background'></td>
</tr>
</table>"
;
}


?>
 
Joren de Wit

Joren de Wit

20/10/2008 19:14:00
Quote Anchor link
Je foreach loop klopt niet, $uit en $row['uit'] zijn toch precies dezelfde variabelen? Als dat een array betreft zou het altijd zoiets worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
foreach($row['uit'] as $key => $value)
{

  // Doe iets met $key en $value
}
?>
 
Danny kempen

Danny kempen

20/10/2008 19:23:00
Quote Anchor link
Blanche schreef op 20.10.2008 19:14:
Je foreach loop klopt niet, $uit en $row['uit'] zijn toch precies dezelfde variabelen? Als dat een array betreft zou het altijd zoiets worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
foreach($row['uit'] as $key => $value)
{

  // Doe iets met $key en $value
}
?>


Ik krijg een foutmelding terwijl de variable wel een waarde heeft. ($row['uit'])?
Warning: Invalid argument supplied for foreach()

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
foreach($row['uit'] AS $key => $value)
        {

          echo $value;
        }

?>
 

20/10/2008 19:32:00
Quote Anchor link
Is $row['uit'] wel een array?
 
Danny kempen

Danny kempen

20/10/2008 19:39:00
Quote Anchor link
Karl schreef op 20.10.2008 19:32:
Is $row['uit'] wel een array?


Nee, hoe zet ik deze in een array?
 
Joren de Wit

Joren de Wit

20/10/2008 20:22:00
Quote Anchor link
Wat wil je precies bereiken? Ik snap het hele doel van die foreach loop daar niet...

Wil je de waarde van $row['uit'] weergeven? Dan kun je die gewoon echoën.
 
Danny kempen

Danny kempen

20/10/2008 20:24:00
Quote Anchor link
Ik wil de array buiten de while gaan gebruiken. Ik weet alleen niet hoe ik dit moet gaan doen?
 
Joren de Wit

Joren de Wit

20/10/2008 20:29:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$data
= array();
while($row = mysql_fetch_assoc($result))
{

   $data[] = $row;
}

?>

Dit zet alle records die je met je query opgehaald hebt, in de array $data?

Verder zie ik dat je in je while loop weer andere queries aan het uitvoeren bent om aanvullende data op te halen. Gebruik hiervoor gewoon 1 query met een JOIN, dan ben je veel sneller klaar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
  w.id
  uit.naam AS naam_uit,
  thuis.naam AS naam_thuis
FROM
  wedstrijden AS w
JOIN
  teams AS uit
    ON uit.id = w.uit
JOIN
  teams AS thuis
    ON
        thuis.id = w.thuis
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.