Hallo,

Ik wil graag een functie maken die de volgende waarden uit een database haalt: id, titel, datum post en auteur. Wanneer ik deze functie invoeg in een pagina, krijg ik de volgende error:
Fatal error: Call to undefined function getListContentMain() in /Applications/MAMP/htdocs/beheer/index.php on line 443


Dit is het script waar de functie in staat:
<?php

//Database connections are made in this file

$conHost = 'localhost';
$conUser = 'blablabla';
$conPass = 'blablabla';

$con = mysqli_connect($conHost, $conUser, $conPass);
	if(mysqli_connect_errno()){
		echo "Er kon geen verbinding worden gemaakt met de database: " . mysqli_connect_error();


function getListContentMain() {
	$dbname = 'content';
	mysqli_select_db($dbname,$con);
	$q = "SELECT * FROM main";
	$result = mysql_query($q,$con);
	
	$ListContentMainData = array();
	while($row = mysql_fetch_array($result));
	
	$ListContentMainData[''] = $row;
	
	return $ListContentData;
	}
}
	?>


Hoe kan ik deze functie verbeteren zodat ik mijn error niet meer krijg?

Jules
Klopt, mysql_query moest ik ook vervangen naar msqli_query en het zelfde met mysql_fetch_array.

nu moet ik alleen de array to string conversion wegwerken. Is hier een simpele functie voor?
Jules Kreutzer op 08/04/2014 14:31:02

nu moet ik alleen de array to string conversion wegwerken. Is hier een simpele functie voor?


Geen idee wat je hiermee bedoelt.
Ik heb nu alleen nog volgende error waar ik niet uit kom:

Notice: Array to string conversion in /Applications/MAMP/htdocs/beheer/index.php on line 443
Array
Hij bedoelt hier waarschijnlijk deze notice mee:
Notice: Array to string conversion in /Applications/MAMP/htdocs/beheer/index.php on line 443
Array

Of terwijl er wordt geprobeerd een array als string weer te geven.
De oplossing is dus de array als array behandelen en een string als een string.
en hoe kan ik hier precies voor zorgen?
En hoe ziet die regel er uit?
Wat bedoel je?

Wat ik uiteindelijk wil is een kolom van 4 rijen waarbij de laatste 5 records worden weergegeven. Ik heb het voor elkaar gekregen om de gegevens te tonen, maar ze worden nu per cel getoond.

De functie ziet er nu als volgt uit:

<?php
include ('connect/connect.php');



function getListContentMain() {
	global $con;
	$dbname = 'content';
	mysqli_select_db($con,$dbname);
	$q = "SELECT * FROM main LIMIT 5";
	$result = mysqli_query($con,$q);
	
	$ListContentMainData = array();
	while($row = mysqli_fetch_array($result)) {
		echo $row['id'];
		echo $row['title'];
		echo $row['date'];
		echo $row['auteur'];
	}
	
	$ListContentMainData[] = $row;
	
	return $ListContentMainData;
	}

	?>


De html van de pagina index.php ziet er als volgt uit:

<html>
<table>
                                            <thead>
                                                <tr>
                                                    <th>Post ID</th>
                                                    <th>Titel</th>
                                                    <th>Datum Post</th>
                                                    <th>Auteur</th>
                                                </tr>
                                            </thead>
                                            <tbody>
                                              <tr>
                                                <td>1test 12014-04-04 21:50:03Jules Kreutzer2test 22014-04-04 21:50:03test account<br />
<b>Notice</b>:  Array to string conversion in <b>/Applications/MAMP/htdocs/beheer/index.php</b> on line <b>444</b><br />
Array</td>
                                                <td>1test 12014-04-04 21:50:03Jules Kreutzer2test 22014-04-04 21:50:03test account<br />
<b>Notice</b>:  Array to string conversion in <b>/Applications/MAMP/htdocs/beheer/index.php</b> on line <b>445</b><br />
Array</td>
                                                <td>1test 12014-04-04 21:50:03Jules Kreutzer2test 22014-04-04 21:50:03test account<br />
<b>Notice</b>:  Array to string conversion in <b>/Applications/MAMP/htdocs/beheer/index.php</b> on line <b>446</b><br />
Array</td>
                                                <td>1test 12014-04-04 21:50:03Jules Kreutzer2test 22014-04-04 21:50:03test account<br />
<b>Notice</b>:  Array to string conversion in <b>/Applications/MAMP/htdocs/beheer/index.php</b> on line <b>447</b><br />
Array</td>
                                              </tr>
                                            </tbody>
                                        </table>
</html>
je returned nu een array. Kortom: meerdere waardes. Je kan die functie wel uitlezen met een foreach:



foreach ( jouwfunctie() AS $result){
echo $veld['naam'];
}
?>

[size=xsmall]Toevoeging op 08/04/2014 15:05:06:[/size]

Dit is denk wat je wilt:


<?php
include 'hier/je/database/map/en/bestandsnaam.php';
$dbname = 'content';
//Connectie staat in de $con
$host = mysqli_select_db($dbname, $connectie);
function getListContentMain($host) {



$query = "SELECT * FROM main";
$result = mysql_query($host, $query);

if($result != null){
$returnValue = '';
while($row = mysql_fetch_array($result));

$returnValue .= $row['veldNaam1'];
$returnValue .= $row['veldNaam2'];
$returnValue .= $row['veldNaam3'];
$returnValue .= $row['etc'];

return $returnValue;
}
} else {
return 'Er kon niets opgehaald worden!';
}
}
@Donny: Achter de while() geen puntkomma en de return uit de loop halen.
@donny, wanneer ik jou code probeer krijg ik een error. Nu heb ik op google gezocht en je zou met de functie implode() een array kunnen omzetten naar een string.

Hoe moet ik dat met mijn functie doen aangezien ik niet echt wijs word van de handleidingen op internet...

Reageren