Invalid argument foreach()
Quote:
Hallo,
Ik heb een vraag, ik krijg namelijk een foreach() error.
Invalid argument supplied for foreach()...
Nu vroeg ik mij af hoe ik dit kan oplossen. En of dit misschien anders kan met een array ofso.
Ik heb een vraag, ik krijg namelijk een foreach() error.
Invalid argument supplied for foreach()...
Nu vroeg ik mij af hoe ik dit kan oplossen. En of dit misschien anders kan met een array ofso.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$a_allSections = UserManagement::findByUsername($username);
if($a_allSections)
{
foreach($a_allSections as $a)
{
<table>
<tr>
<td>[code]<?php echo $a['i_id_pk'];?></td>
<td><?php echo $a['c_user'];?></td>
<td><?php echo $a['company_name'];?></td>
<td><?php echo $a['c_country'];?></td>
<td><?php echo $a['c_time_zone'];?></td>
</tr>
</table>
}
}
else
{
echo 'Er zijn geen velden gevonden die overeen komen met uw account.' . "\n";
}
?>
$a_allSections = UserManagement::findByUsername($username);
if($a_allSections)
{
foreach($a_allSections as $a)
{
<table>
<tr>
<td>[code]<?php echo $a['i_id_pk'];?></td>
<td><?php echo $a['c_user'];?></td>
<td><?php echo $a['company_name'];?></td>
<td><?php echo $a['c_country'];?></td>
<td><?php echo $a['c_time_zone'];?></td>
</tr>
</table>
}
}
else
{
echo 'Er zijn geen velden gevonden die overeen komen met uw account.' . "\n";
}
?>
Quote:
ps ik heb een paar open en sluit tags weggelaten omdat het er hier dan netter uit ziet.
Gewijzigd op 01/03/2012 13:57:15 door Raymond van Os
Dan is $a_allSections geen array en kan je er geen foreach op los laten.
Hoe zorg je ervoor dat dit wordt opgelost dan? er een array van maken?
Lijk me eerder dat je moet checken of UserManagement::findByUsername($username) wel een array teruggeeft, en zo niet, wat het dan wel teruggeeft.
Dus als ik het goed begrijp heb ik maar 1 parameter $username waarvan er geen waarde bekend is. Hoe Doe je dit nu verder?
Gewijzigd op 01/03/2012 14:25:08 door raymond van Os
Ik neem aan dat je hier wel de code van hebt (of de documentatie) zodat je kan zien wat er uit die functie komt.
aan roepen en de gegevens op halen uit de database. Nu hoef ik alleen te weten hoe je de gegevens uitleest en echo't of print.
Code (php)
Gewijzigd op 01/03/2012 14:41:27 door raymond van Os
Verder hoop ik dat je het verschil tussen php en html weet? Je eerste stuk code klopt natuurlijk van geen kanten...
Gewijzigd op 01/03/2012 14:49:51 door gerhard l
Verder krijg ik als ik dit doe
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
public static function findByUsername($username) {
$dbh = new DB_Mysql_Extended;
$query = "SELECT * FROM dc_mail_user_manage WHERE c_user = %1%";
$data = $dbh->prepare($query)->execute($username)->mysql_fetch_array($query);
}
?>
public static function findByUsername($username) {
$dbh = new DB_Mysql_Extended;
$query = "SELECT * FROM dc_mail_user_manage WHERE c_user = %1%";
$data = $dbh->prepare($query)->execute($username)->mysql_fetch_array($query);
}
?>
een fatall error: Call to undefined method DB_MysqlStatement::mysql_fetch_array()
Gewijzigd op 01/03/2012 15:01:05 door raymond van Os
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
public static function findByUsername($username) {
$info = array();
mysql_connect("host","user","pass"); mysql_select_db("db");
$query = mysql_query("SELECT * FROM dc_mail_user_manage WHERE c_user = '".mysql_real_escape_string($username)."'");
if($query !== false){
while($row = mysql_fetch_assoc){
$info[] = $row;
}
}
else{
//error
}
return $info;
}
?>
public static function findByUsername($username) {
$info = array();
mysql_connect("host","user","pass"); mysql_select_db("db");
$query = mysql_query("SELECT * FROM dc_mail_user_manage WHERE c_user = '".mysql_real_escape_string($username)."'");
if($query !== false){
while($row = mysql_fetch_assoc){
$info[] = $row;
}
}
else{
//error
}
return $info;
}
?>
Gewijzigd op 01/03/2012 15:05:49 door gerhard l
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
public static function findByUsername($username) {
$info = array();
$dbh = new DB_Mysql_Extended;
$query = "SELECT * FROM dc_mail_user_manage WHERE c_user = '".mysql_real_escape_string($username)."'";
if($query !== false){
while($row = mysql_fetch_assoc){
$info[] = $row;
}
}
else{
//
}
return $info;
}
?>
public static function findByUsername($username) {
$info = array();
$dbh = new DB_Mysql_Extended;
$query = "SELECT * FROM dc_mail_user_manage WHERE c_user = '".mysql_real_escape_string($username)."'";
if($query !== false){
while($row = mysql_fetch_assoc){
$info[] = $row;
}
}
else{
//
}
return $info;
}
?>
en dit op mijn pagina
dan krijg ik een hele reeks met
Use of undefined constant mysql_fetch_assoc - assumed 'mysql_fetch_assoc'
Maar weet je wel allemaal wat je doet?
En of dit werkt weet ik ook niet
Quote:
class aanmaken
Code (php)
Quote:
object functie uitvoeren
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
function usersOverview() {
$a_allUsers = User::getAllUsersByUsername(5);
return $a_allUsers;
}
?>
function usersOverview() {
$a_allUsers = User::getAllUsersByUsername(5);
return $a_allUsers;
}
?>
Quote:
index.php
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$returnhtml = '';
$a_allUsers = usersOverview();
if($a_allUsers) {
$returnhtml .= '
<table border="0">
<tr>
<th>Gebruikersnaam</th>
</tr>
';
foreach($a_allUsers as $a_user) {
$returnhtml .= '
<tr>
<td>' . $a_user['c_user'] . '</td>
</tr>
';
}
$returnhtml .= '</table>';
} else {
}
echo $returnhtml;
}
?>
$returnhtml = '';
$a_allUsers = usersOverview();
if($a_allUsers) {
$returnhtml .= '
<table border="0">
<tr>
<th>Gebruikersnaam</th>
</tr>
';
foreach($a_allUsers as $a_user) {
$returnhtml .= '
<tr>
<td>' . $a_user['c_user'] . '</td>
</tr>
';
}
$returnhtml .= '</table>';
} else {
}
echo $returnhtml;
}
?>
Quote:
ik hoor het graag als dit nog verder kan worden verbeterd.
Verder alvast bedankt voor alle hulp.
Verder alvast bedankt voor alle hulp.