2x een array
Iets duidelijker graag.
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)
Voorbeeld 2 (Dit voorbeeld werkt niet
Die AND gaat niet. Je zal twee aparte foreach moeten maken.
bedoel je array_merg()?
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
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'>€ $kostprijs</td>
<td width='100'>
";
foreach($_POST['aantal'] AS $key => $aantal)
{
echo " ".$aantal;
}
echo "
</td>
</tr>
</table>
";
}
}
?>
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'>€ $kostprijs</td>
<td width='100'>
";
foreach($_POST['aantal'] AS $key => $aantal)
{
echo " ".$aantal;
}
echo "
</td>
</tr>
</table>
";
}
}
?>
Het resultaat is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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>";
?>
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
Zo ja..
Thx. Het werkt.
Code (php)
Dit is mijn hele 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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." - ".$thuis."</td>
</tr>
</table> ";
}
echo "
<table border='0' cellpadding='0' cellspacing='0' align='center' width='510'>
<tr>
<td class='bottom_background'></td>
</tr>
</table>";
}
?>
$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." - ".$thuis."</td>
</tr>
</table> ";
}
echo "
<table border='0' cellpadding='0' cellspacing='0' align='center' width='510'>
<tr>
<td class='bottom_background'></td>
</tr>
</table>";
}
?>
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:
Ik krijg een foutmelding terwijl de variable wel een waarde heeft. ($row['uit'])?
Warning: Invalid argument supplied for foreach()
Is $row['uit'] wel een array?
Karl schreef op 20.10.2008 19:32:
Is $row['uit'] wel een array?
Nee, hoe zet ik deze in een array?
Wil je de waarde van $row['uit'] weergeven? Dan kun je die gewoon echoën.
Ik wil de array buiten de while gaan gebruiken. Ik weet alleen niet hoe ik dit moet gaan doen?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$data = array();
while($row = mysql_fetch_assoc($result))
{
$data[] = $row;
}
?>
$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: