Gegevens uit database lezen

Status
Niet open voor verdere reacties.

TristanH

Gebruiker
Lid geworden
4 jan 2009
Berichten
23
Beste,

Ik zou graag wat gegevens uit mijn database lezen maar ik heb geen idee hoe ik dit ga doen.

Ik gebruik het (misschien voor jullie wel bekende) cms e107.
Ik zou graag de waarde van "maintenance_flag" uit de db halen maar deze staat als "array"? waarde in een kolom. (als ik het goed heb.)

Nu heb ik geen idee hoe ik dat ga doen. Zou iemand hiermee kunnen helpen?

Hier een afbeelding om het misschien wat makkelijker te maken.

ogx8d2.jpg


Alvast bedankt,
Tristan
 
Makkelijkst is om dat hele text veld met alle sitevoorkeuren op te halen en vervolgens in php? te parsen.
 
Gaat me nog niet helemaal lukken denk ik aangezien e107_name en e107_value meerdere velden hebben.
Vind het er in eerste opzicht een beetje apart uitzien, maar ben ook geen ster in php :_)

Voor de duidelijkheid nog een plaatje dan maar :P (mijn benodigde informatie staat in het omcirkelde)
zswqhd.jpg
 
Vaak helpt iets als var_dump($row); dan nog wel om te kijken met wat voor soort waarde je te maken hebt.

Anders kun je kijken hoe e107 het uitleest of bijvoorbeeld dit script

lijkt erop dat je het gewoon kunt benaderen via $row['e107_value']['install_date']; eventueel eerst een keer de row casten naar een array.
 
$result = mysql_query("SELECT * FROM e107_core")
or die(mysql_error());

$row = mysql_fetch_array( $result );

echo $row['e107_value']['maintenance_flag'];



Vond dit toch redelijk bedacht van mezelf met de aanwijzingen maar nu krijg ik er "a" uit.
Geen idee of ik het hier wel goed doe, heb het van een tutorial.. en geen idee of de SELECT goed is.
 
$result = mysql_query("SELECT * FROM e107_core")
zou dan moeten worden:
Code:
$result = mysql_query('SELECT * FROM e107_core WHERE e107_name="SitePrefs"')

PS wanneer je met een nieuw project begint is het beter om gelijk te kijken naar mysqli_* of pdo om je mysql database te benaderen; mysql_* is namelijk nogal verouderd.
 
Hm op een of andere wijze blijf ik de letter "a" als output krijgen.

bedankt voor de tip :_) Ik zal vanaf de volgende keer eens gaan kijken naar de mysqli_
 
Zou je eens var_dump($row); willen uitvoeren en dan de output hier posten?

Eventueel ook in een loop zodat je alle rows krijgt.

Ik heb eigenlijk nog nooit zo'n manier van data opslaan gezien, ben wel benieuwd of dat makkelijk werkt.
 
Bekijk de var_dump maar even via HIER
Het is nogal veel :_)


Ik heb het dus ook nog nooit gezien, vandaar ook zoveel verwarring.
Ik denk dat het anders wel was gelukt, Blijkbaar werkt het in het e107 cms toch goed.
 
In dat script waar ik net naar linkte gebruiken ze een rare manier maar het schijnt te werken

$row = mysql_fetch_array( $result );

veranderen in
Code:
$row = (array)mysql_fetch_object($result)
 
Nu krijg ik voor alsnog dezelfde output als voorheen.. de "a".



Net toch even diep gaan zoeken en blijkt dat e107 zelf met $pref ofzo werkt..
Misschien heb je hier wat aan: http://gamebenelux.nl/tristantest/class.txt
Daar staat het.. bij het stukje maintanance_flag uiteraard :_)

PHP:
if (varset($pref['maintainance_flag'])
 && strpos(e_SELF, 'admin.php') === FALSE && strpos(e_SELF, 'sitedown.php') === FALSE && strpos(e_SELF, '/secure_img_render.php') === FALSE)
{
	if(!ADMIN || ($pref['maintainance_flag'] == e_UC_MAINADMIN && !getperms('0')))
	{
		// 307 Temporary Redirect
		header('Location: '.SITEURL.'sitedown.php', TRUE, 307);
		exit();
	}
}



--

Heb verder nog even gekeken en kwam op dit wat wel werkte..
PHP:
$result = mysql_query('SELECT * FROM e107_core WHERE e107_name="SitePrefs"')
or die(mysql_error());  

$row = (array)mysql_fetch_object($result);

echo $row['e107_value'];

Dan krijg ik nartuurlijk alles uit e107_value waar wel die maintainance_flag in staat.
Zou het zo misschien ook mogelijk te zijn om de waarde van die maintainance_flag uit te lezen en dan een if constructie te maken?
(Zodat ik als de maintainance_flag niet 0 is.. een offline plaatje weergeef en anders een online plaatje..?)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan