Archief - PHP : Warning: mysql_fetch_object(): supplied argument is not a valid ...

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Imp

Legacy Member
Ik ben voor een clansite aan het php gedeelte ervan bezig.
Nu krijg ik de volgende error : Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Reactor\htdocs\main.php on line 38

Leeftijd:
Taak
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\Reactor\htdocs\main.php on line 40
PHP:
<?PHP
            if ($action == "logout") { unset($_SESSION['gebruikersnaam']);

echo "<TD CLASS='news'>Uitgelogt!</TD>";
echo "</TR><TR><TD CLASS='text1'>Je bent successvol uitgelogt.<br>Click <a href='index.php'>hier</a> om terug te keren naar onze hoofdpagina.<SPAN class=style3> </SPAN></TD>";

}elseif ($action =="secties") {
$query = mysql_query("SELECT * FROM login");
while ($secties = mysql_fetch_object($query))
      $afdeling = "$secties->sectie";
       echo "<a href=\index.php?action=leden&afdeling=$afdeling>$afdeling</a>";


} elseif ($action == "leden") {
$query2 = mysql_query("SELECT * FROM login WHERE sectie = $afdeling");
 while ($leden = mysql_fetch_object($query2));
echo "<h2>$leden->gebruikersnaam</h2>Leeftijd: $leden->leeftijd <br>Taak $leden->taak";
 mysql_free_result($leden);  
} else {
echo " <TD CLASS='news'>Nieuws!</TD>";
echo "</TR><TR><TD CLASS='text1'>Automatish nieuws script waarbij ingelogde leden en leiders hier kunnen posten.<SPAN class=style3> </SPAN></TD>";
}
?>

zero2one

Legacy Member
was fout kbedoelde COLOR=RED

waarom die ' '
ik gok dat sectie bij u gedefineerd staat als char of varchar

als ge zoekt met tekst (dus geen int) dan moede uw zoekvafr tussen ' ' of " " zetten

Imp

Legacy Member
heb het getest maar werkt niet, $afdeling is idd varchar.
maar het probleem krijg ik op men 2 query's, en heb alleen bij de 2de $afdeling gebruikt.
toch bedankt
andy

servi

Legacy Member
PHP:
<?php
$query = mysql_query('SELECT sectie FROM login') or die(mysql_error());
while ($secties = mysql_fetch_object($query)) { // zeer twijfelachtig dat hetgeen je schreef effectief was wat je wou dit lijkt er meer op :
     ?>
<a href="index.php?action=leden&afdeling=<?=$secties->sectie?>"><?=$secties->sectie?></a>
<?php
}

...

$query2 = mysql_query('SELECT * FROM login WHERE sectie = "'.$afdeling.'"') or die(mysql_error());
 while ( $leden = mysql_fetch_object($query2) ) { // while-lus was fout !!!
?>
<h2><?=$leden->gebruikersnaam?></h2>
Leeftijd: <?=$leden->leeftijd?><br />
Taak: <?=$leden->taak?><br />
<?php
}
 mysql_free_result($leden);

waarom dat zoveel mensen mysql_error() toch angstvallig proberen te vermijden blijft me toch een raadsel.

Imp

Legacy Member
werkt nogaltijd niet.
zou iets met die mysql_fetch_object($query)) moetten zijn

sneax

Legacy Member
mysql_error geeft de laatste error weer van uw probleem, ik heb dan ook zelf een functie geschreven waarmee ik mijn queries doe - ik gebruik niet 'mysql_query' maar

do_query()

en dit is do_query:
PHP:
function do_query($query, $dblink)
{
	$result = mysql_query($query, $dblink);
	if ( !$result )
	{
		echo mysql_errno($dblink).'<br />';
		echo mysql_error($dblink).'<br />';
	}
	else
	{
		return $result;
	}
}

ge kunt zo met die error msgs natuurlijk doen wa ge wilt (naar textfile schrijven in production envy en dan een 'mooie' error msg tonen aan de user of whatever) zo hebt ge weinig probs met zulkde dingen

btw ge moet altijd ' en ' rond uw vars gebruiken maar NIET rond dinges van mysql, ik heb zo NOOIT problemen, vb:

SELECT kak, diarree FROM aars WHERE id = '$id'

bijvoorbeeld

die 'blablabla is not a valid mysql result resource' wilt gewoon zeggen dat mysql_query uw dbase ni kon queryien voor whatever reason

Imp

Legacy Member
ik zou niet weten waarom hij die query niet kan uitvoeren, zover ik kan zien is alles juist :cry:

DarkBone

Legacy Member
Wat is de foutboodschap dat mysql_error retourneert ???
We zouden al veel meer geholpen zijn... en gij ook trouwens

Imp

Legacy Member
staat er toch ? :

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Reactor\htdocs\main.php on line 38

Leeftijd:
Taak
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\Reactor\htdocs\main.php on line 40

DarkBone

Legacy Member
Ik vrees da we elkaar nie begrijpen. Lees mijn vraag opnieuw.

Wat is de output van MYSQL_ERROR() !!

Niet de error die PHP retourneert, neen, de error die de functie mysql_error() retourneert in volgend statement:

mysql_query(".....") or die(mysql_error());

:help:

Die error de ge nu krijgt "not a valid result resource" zult ge iedere keer krijgen als er ook maar iets mis is met uw query, maar dat kan zo veel zijn:
- verkeerde kolomnaam
- verkeerde tabelnaam
- haakjes vergeten
- quotes vergeten
- verkeerde operator
- gereserveerd woord
- fout aantal kolommen ten opzichte van aantal waarden
- etc...
Moet ik nog doorgaan?

mysql_error() zal u meer vertellen over WAT er PRECIES is foutgegaan, en vaak zelfs ook WAAR.

Get my point?

Imp

Legacy Member
en waar zou ik die error dan kunnen zien ? want er komt niet meer op dan hetgeen ik gepost heb kijkt anders zelf is : http://81.11.182.84
bij leden en dan counter-strike op da stuk geeft em die error.

DarkBone

Legacy Member
Ge kunt ook altijd uw query echoën voordat je die mysql_fetch_object aanroept, maw voordat de fout zich voordoet. Dan kunt ge ook eventuele fouten in uw query zien (vaak omwille van variabelen die niet opgevuld waren door foute notatie, verkeerd gebruik, etc..)

dJeez

Legacy Member
Ik gok op register_globals (in dit geval $afdeling is leeg) aangezien 't hier blijkbaar weer gaat over de zoveelste die niet weet hoe hij moet debuggen...

DarkBone

Legacy Member
Die mogelijkheid was mij ook al te binnen geschoten, maar aangezien hij voor zijn includes ook met variabelen uit de querystring wertk vermoedde ik dat hij wel zou weten hoe daar mee om te gaan ?

Anyway... da's misschien een beetje naïef gedacht dan :)

Imp

Legacy Member
$afdeling is niet leeg, dat echo'ed de afdeling uit mijn db dus dat is ok.
voor de rest heb ik de error weggekregen maar nu haalt hij niets uit db...

Freakshow

Legacy Member
Imp, delete uw code, en gebruik onderstaande code. Em zal nog altijd een error geven, maar die error zal meer gedetailleerd zijn. Zet hier dan es die error die em geeft...

PHP:
<?PHP 
if ($action == "logout") {
	unset($_SESSION['gebruikersnaam']); 
	echo "<TD CLASS='news'>Uitgelogt!</TD>"; 
	echo "</TR><TR><TD CLASS='text1'>Je bent successvol uitgelogt.<br>Click <a href='index.php'>hier</a> om terug te keren naar onze hoofdpagina.<SPAN class=style3> </SPAN></TD>"; 

} elseif($action =="secties") { 
	$query = mysql_query("SELECT * FROM 'login'") or die(mysql_error()); 
	while($secties = mysql_fetch_object($query)) 
		$afdeling = "$secties->sectie"; 
	echo "<a href=\index.php?action=leden&afdeling=$afdeling>$afdeling</a>";

} elseif($action == "leden") {
	$query2 = mysql_query("SELECT * FROM 'login' WHERE sectie = '$afdeling'") or die(mysql_error());
	while ($leden = mysql_fetch_object($query2));
		echo "<h2>$leden->gebruikersnaam</h2>Leeftijd: $leden->leeftijd <br>Taak $leden->taak";
	 mysql_free_result($leden);

} else { 
	echo " <TD CLASS='news'>Nieuws!</TD>"; 
	echo "</TR><TR><TD CLASS='text1'>Automatish nieuws script waarbij ingelogde leden en leiders hier kunnen posten.<SPAN class=style3> </SPAN></TD>"; 
} 
?>

om het simpel te houden eh ;)

Imp

Legacy Member
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''login'' at line 1

Imp

Legacy Member
'' rond login weg gedaan en nu geeft hij geen error meer, nu haalt hij ook wel nix uit db op dit alleen bij $action leden
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan