warning mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given

Status
Niet open voor verdere reacties.

Dragonaia

Nieuwe gebruiker
Lid geworden
18 dec 2009
Berichten
4
Hallo Lezer,

Ik krijg de volgende warnings te zien:


Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user '03495'@'octagon.hhs.nl' (using password: NO) in /home/stud/

Warning: mysqli_select_db() expects parameter 1 to be mysqli, boolean given in

Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in /home/stud

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /home/stud

Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in /home/stud

wat ik heb staan is het volgende:
Code:
$db = mysqli_connect($server,$gebruikersnaam);
mysqli_select_db($db, $database);
$sql = "SELECT * FROM projecten WHERE projectID";

Code:
$result = mysqli_query($db, $sql);


$resultaat = "";
while( $regel = mysqli_fetch_array($result) ){
	$project_ID = $regel['projectID'];
	$resultaat .= "<a href='taakoverzicht.php?projectID=$project_ID'>Taken</a>"."<br>";
	$resultaat .= " <strong> Projectnaam: </strong> ".$regel['projectnaam']."</strong> <br>";
	$resultaat .= "<strong> Omschrijving </strong>".$regel['projectomschrijving']." <br /> <br />";	
}
echo $resultaat;
$knoptoevoegen='<input type = "submit" name="Toevoegen" value="Project Toevoegen"/>';
$knopwijzigen='<input type = "submit" name="Wijzigen" value="Wijzigen"/>';
mysqli_close($db);

Ik heb al gelezen wat je hoort in te vullen bij een mysqli, maar ik kom hier niet uit. Ik ben een beginner en lees allerlei verschillende dingen.
Kan iemand me hiermee helpen?

alvast bedankt
 
de eerste warning Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user '03495'@'octagon.hhs.nl' (using password: NO) in /home/stud/
betekent dat je inlog gegevens niet kloppen
mysqli_select_db() mag je alleen gebruiken als je database wilt veranderen ander moet het als de 4de parameter in mysqli_connect .
en dan is alles wel opgelost als het goed is
 
de eerste warning Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user '03495'@'octagon.hhs.nl' (using password: NO) in /home/stud/
betekent dat je inlog gegevens niet kloppen
mysqli_select_db() mag je alleen gebruiken als je database wilt veranderen ander moet het als de 4de parameter in mysqli_connect .
en dan is alles wel opgelost als het goed is

De eerste warning is weg. alleen staat de rest is nog, namelijk:
Code:
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home/stud on line 69

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /home/stud/ on line 73

Warning: mysqli_close() expects parameter 1 to be mysqli, null given in /home/stud on line 114

en wat ik daar heb staan is het volgende:

PHP:
//taken tonen
$sql = "SELECT taken.projectID,taken.taakID,taken.emailadres,taken.taaknaam,taken.taakomschrijving,taken.datumaanmaak,taken.datumeind, taken.voltooid,taken.gebruikersnaam,projecten.projectID
FROM taken INNER JOIN projecten ON taken.projectID=projecten.projectID 
WHERE projecten.projectID = $_GET[projectID]";

if(isset($_POST['submit']))
{
$taaknaam = $_POST['taaknaam'];
$taakomschrijving = $_POST['taakomschrijving'];
$deadline = $_POST['datumeind'];
$status = $_POST['voltooid'];
$aangewezenpersoon = $_POST['geruikersnaam'];
$begindatum = $_POST['datumaanmaak'];
$emailadres = $_SESSION['emailadres'];
}

//controleren of de velden ingevoerd zijn, zoja dan worden de gegevens in de database toegevoegd, anders wordt er niks toegevoegd
if(isset($_POST['taaknaam']) && isset($_POST['taakomschrijving']) && isset($_POST['datumeind']) && isset($_POST['gebruikersnaam']) && isset($_POST['datumaanmaak']) && !empty ($_POST['taaknaam']) && !empty ($_POST['taakomschrijving']) && !empty ($_POST['datumeind']) 
&& !empty ($_POST['gebruikersnaam']) && !empty ($_POST['datumaanmaak'])) 
{
$query2 = mysql_query("INSERT INTO taken(projectID,taaknaam,taakomchrijving,emailadres,gebruikersnaam,voltooid,datumeind,datumaanmaak)
VALUES('$_GET[projectID]','$_POST[taaknaam]','$_POST[taakomschrijving]','$_SESSION[emailadres]', '$_POST[gebruikersnaam]', '$_POST[voltooid]', '$_POST[datumeind]', '$_POST[datumaanmaak]')") or die (mysql_error());
}	

$result2 = mysqli_query($db, $sql);
$resultaat2 = "";
$wijzigenknop = "";
$verwijderenknop = "";
while($takenlijst = mysqli_fetch_array($result2)){
	$taak_ID =$takenlijst['taakID'];
	$project_ID =$takenlijst['projectID'];
	
	
	if(isset($_SESSION['emailadres'])) 
	{
	$email = $takenlijst['email'];
	$emailadres = $_SESSION['emailadres'];
	$resultaat2 .= " <a href='taakbewerken.php?taakID=$taak_ID&projectID=$project_ID&email=$email'>Wijzigen</a>"."<br>";
	$resultaat2 .= " <a href='taakverwijderen.php?taakID=$taak_ID&projectID=$project_ID'>Verwijderen</a>"."<br>";
	}
	else
	{
	echo '';
	}
	$resultaat2 .= " <strong> Taaknaam: </strong> ".$takenlijst['taaknaam']."</strong> <br>";
	$resultaat2 .= "<strong> Omschrijving: </strong>".$takenlijst['taakomschrijving']." <br />";
	$resultaat2 .= "<strong> Email: </strong>".$takenlijst['emailadres']." <br />";	
	$resultaat2 .= "<strong> Deadline: </strong>".$takenlijst['datumeind']." <br />";	
	$resultaat2 .= "<strong> Aanmaakdatum: </strong>".$takenlijst['datumaanmaak']." <br />";
	$resultaat2 .= "<strong> Status: </strong>".$takenlijst['voltooid']." <br />";		
	$resultaat2 .= "<strong> Aangewezen persoon: </strong>".$takenlijst['gebruikersnaam']." <br /> <br />";
}
echo $resultaat2;
//knoppen voor toevoegen van taken
$veldtaaknaam='<td>Taaknaam:</td><td><input type = "text" name="taaknaam"/></td><br>';
$veldtaakomschrijving='<td>Taakomschrijving: </td><td><textarea rows="5" cols="16" name="taakomschrijving" </textarea></td><br>';
$velddeadline='<td>Deadline:</td><td><input type = "text" name="deadline"/></td><br>';
$veldstatus=
'<td>Status:</td>
<td><select name="status">
<option value="Voltooid">Voltooid</option>
<option value="Onvoltooid">Onvoltooid</option>   
</select></td>
<br />'
;
$veldaangewezenpersoon='<td>Aangewezen persoon:</td><td><input type = "text" name="aangewezenpersoon"/></td><br>';
$knopopslaan='<td><input type = "submit" name= "submit" value="Opslaan" /></td>';
$knopleegmaken='<td><input type = "reset"  name="reset" value="Leegmaken" /></td>';

mysqli_close($db);
?>

en hij geeft aan dat de eerste fout hier zit: $result2 = mysqli_query($db, $sql);

Ik wilde database niet veranderen. Sterker nog. Ik heb een aparte class aangemaakt waar ik alle gegevens van de db heb gezet en waar deze verbinding in hoort te staan namelijk:

PHP:
	function __construct($_selectQuery){
		$this->selectQuery = $_selectQuery;	
	}
	
	function db_connect(){
		$db = mysqli_connect($this->server,$this->gebruikersnaam,$this->password);	
		mysqli_select_db($db, $this->database);		
		$selectQuery = $this->selectQuery;				
		$this->result = mysqli_query($db, $selectQuery);
		mysqli_close($db);		
	}

Weet iemand wat ik kan doen?
 
Laatst bewerkt door een moderator:
Hallo Dragonaia,

Voor je eerste en tweede probleem in beide queries gebruik je $_GET[projectID], is $_GET[projectID] niet toevallig null, omdat deze niet bestaat. Je gebruikt overal POST alleen voor projectID gebruik je GET, dus stuur je die wel als GET mee? Moet waarschijnlijk ook $_POST[projectID] zijn.

Bij nader inzien: het schijnt zo te zijn dat $db null is (foutmelding 3). $db is in de functie db_connect() een locale variabele en niet geldig buiten de functie! In het eerste stukje code wordt $db geen waarde toegekend.

Mvg,
Peter
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan