Fout in code? (Opgelost)
mbeek - 18/05/2009 10:27 (laatste wijziging 18/05/2009 10:27)
Nieuw lid
Hallo,
Ik heb de volgende code:
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
$aCats = array('hcat', 'scat', 'mcat');
for($catteller=1; $catteller<=3; $catteller++)
{
$soort = $aCats[$catteller - 1];
$querytest = "SELECT id, naam FROM categorie WHERE cat = '" . $catteller . "'";
$resulttest = mysql_query($querytest);
while($row = mysql_fetch_assoc($resulttest))
{
$link = 'categorie.php';
$sign = '?soort=' . $soort . '&';
foreach($aCats AS $id => $sCat)
{
$aSelectedCats = (isset($_GET[$sCat])) ? explode(",", $_GET[$sCat]) : array();
$aSelectedCats = (($id === array_search($soort, $aCats)) and (count($aSelectedCats) === 0)) ? array($row['id']) : $aSelectedCats;
if(isset($_GET['soort']) and ($_GET['soort'] === $soort))
{
if(in_array($row['id'], $aSelectedCats))
{
unset($aSelectedCats[array_search($row['id'], $aSelectedCats)]);
}
elseif($_GET['soort'] === $sCat)
{
$aSelectedCats[] = $row['id'];
}
}
if(count($aSelectedCats) > 0)
{
$link .= $sign . $sCat . '=' . implode(",", $aSelectedCats);
$sign = '&';
}
}
echo '<a href="' . $link . '">' . $row['naam'] . '</a><br />';
$params = array( 'hcat', 'scat', 'mcat');
foreach( $params AS $param ) {
if( isset( $_GET[$param] ) ) {
$aExplodedConditions = explode(",", $_GET[$param]);
$aParams = array();
foreach($aExplodedConditions AS $sParam){
$aParams[] = $sParam;
}
if(in_array($row['id'], $aParams)) {
echo '<a href="' . $link . '"><b>' . $row['naam'] . '</b></a><br />';
} } }
} }
?>
<?php
ini_set ( 'display_errors' , 1 ) ; // 0 = uit, 1 = aan
$aCats = array ( 'hcat' , 'scat' , 'mcat' ) ;
for ( $catteller = 1 ; $catteller <= 3 ; $catteller ++ )
{
$soort = $aCats [ $catteller - 1 ] ;
$querytest = "SELECT id, naam FROM categorie WHERE cat = '" . $catteller . "'" ;
{
$link = 'categorie.php' ;
$sign = '?soort=' . $soort . '&' ;
foreach ( $aCats AS $id => $sCat )
{
$aSelectedCats = ( ( $id === array_search ( $soort , $aCats ) ) and
( count ( $aSelectedCats ) === 0 ) ) ?
array ( $row [ 'id' ] ) : $aSelectedCats ; if ( isset ( $_GET [ 'soort' ] ) and
( $_GET [ 'soort' ] === $soort ) ) {
if ( in_array ( $row [ 'id' ] , $aSelectedCats ) ) {
}
elseif ( $_GET [ 'soort' ] === $sCat )
{
$aSelectedCats [ ] = $row [ 'id' ] ;
}
}
if ( count ( $aSelectedCats ) > 0 ) {
$link .= $sign . $sCat . '=' . implode ( "," , $aSelectedCats ) ; $sign = '&' ;
}
}
echo '<a href="' . $link . '">' . $row [ 'naam' ] . '</a><br />' ;
$params = array ( 'hcat' , 'scat' , 'mcat' ) ; foreach ( $params AS $param ) {
if ( isset ( $_GET [ $param ] ) ) { $aExplodedConditions = explode ( "," , $_GET [ $param ] ) ; foreach ( $aExplodedConditions AS $sParam ) {
$aParams [ ] = $sParam ;
}
echo '<a href="' . $link . '"><b>' . $row [ 'naam' ] . '</b></a><br />' ;
} } }
} }
?>
Het werkt opzich aardig. Het laat een aantal menu items (links) zien:
Bijvoorbeeld:
Audi
Bmw
Mercedes
Het doel is, dat als je een van die items aanklikt dat hij dan dikgedrukt wordt, dus stel je klikt op Audi, dan zou je moeten krijgen:
Audi
Bmw
Mercedes
Dat werkt gedeeltelijk, WANT, als ik nu op bijvoorbeeld AUDI klik krijg ik het volgende:
Audi
Audi
Bmw
Mercedes
Hij laat dan dus ook de niet-dikgedrukte Audi staan, dat moet dus niet. Ik snap dat ik iets fout doe in het onderste gedeelte van mijn code, maar weet niet wat.
Hopelijk kan iemand me helpen!
5 antwoorden
Gesponsorde links
jaronneke - 18/05/2009 10:32 (laatste wijziging 18/05/2009 10:32)
MySQL interesse
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
$aCats = array('hcat', 'scat', 'mcat');
for($catteller=1; $catteller<=3; $catteller++)
{
$soort = $aCats[$catteller - 1];
$querytest = "SELECT id, naam FROM categorie WHERE cat = '" . $catteller . "'";
$resulttest = mysql_query($querytest);
while($row = mysql_fetch_assoc($resulttest))
{
$link = 'categorie.php';
$sign = '?soort=' . $soort . '&';
foreach($aCats AS $id => $sCat)
{
$aSelectedCats = (isset($_GET[$sCat])) ? explode(",", $_GET[$sCat]) : array();
$aSelectedCats = (($id === array_search($soort, $aCats)) and (count($aSelectedCats) === 0)) ? array($row['id']) : $aSelectedCats;
if(isset($_GET['soort']) and ($_GET['soort'] === $soort))
{
if(in_array($row['id'], $aSelectedCats))
{
unset($aSelectedCats[array_search($row['id'], $aSelectedCats)]);
}
elseif($_GET['soort'] === $sCat)
{
$aSelectedCats[] = $row['id'];
}
}
if(count($aSelectedCats) > 0)
{
$link .= $sign . $sCat . '=' . implode(",", $aSelectedCats);
$sign = '&';
}
}
$params = array( 'hcat', 'scat', 'mcat');
foreach( $params AS $param ) {
if( isset( $_GET[$param] ) ) {
$aExplodedConditions = explode(",", $_GET[$param]);
$aParams = array();
foreach($aExplodedConditions AS $sParam){
$aParams[] = $sParam;
}
if(in_array($row['id'], $aParams)) {
echo '<a href="' . $link . '"><strong>' . $row['naam'] . '</strong></a><br />';
}
else
{
echo '<a href="' . $link . '">' . $row['naam'] . '</a><br />';
}
} }
} }
?>
<?php
ini_set ( 'display_errors' , 1 ) ; // 0 = uit, 1 = aan
$aCats = array ( 'hcat' , 'scat' , 'mcat' ) ;
for ( $catteller = 1 ; $catteller <= 3 ; $catteller ++ )
{
$soort = $aCats [ $catteller - 1 ] ;
$querytest = "SELECT id, naam FROM categorie WHERE cat = '" . $catteller . "'" ;
{
$link = 'categorie.php' ;
$sign = '?soort=' . $soort . '&' ;
foreach ( $aCats AS $id => $sCat )
{
$aSelectedCats = ( ( $id === array_search ( $soort , $aCats ) ) and
( count ( $aSelectedCats ) === 0 ) ) ?
array ( $row [ 'id' ] ) : $aSelectedCats ; if ( isset ( $_GET [ 'soort' ] ) and
( $_GET [ 'soort' ] === $soort ) ) {
if ( in_array ( $row [ 'id' ] , $aSelectedCats ) ) {
}
elseif ( $_GET [ 'soort' ] === $sCat )
{
$aSelectedCats [ ] = $row [ 'id' ] ;
}
}
if ( count ( $aSelectedCats ) > 0 ) {
$link .= $sign . $sCat . '=' . implode ( "," , $aSelectedCats ) ; $sign = '&' ;
}
}
$params = array ( 'hcat' , 'scat' , 'mcat' ) ; foreach ( $params AS $param ) {
if ( isset ( $_GET [ $param ] ) ) { $aExplodedConditions = explode ( "," , $_GET [ $param ] ) ; foreach ( $aExplodedConditions AS $sParam ) {
$aParams [ ] = $sParam ;
}
echo '<a href="' . $link . '"><strong>' . $row [ 'naam' ] . '</strong></a><br />' ;
}
else
{
echo '<a href="' . $link . '">' . $row [ 'naam' ] . '</a><br />' ; }
} }
} }
?>
dit zal moeten werken? , niet getest
Martijn - 18/05/2009 10:33
Crew PHP
Ik snap niet helemaal wat je aan het doen bent. Waarom de search en delete dingen? was dat een poging om je dubbele weg te halen?
Alles wat je hoeft te doen, is een while() te maken die alles echoëd, per waarde te kijken of het voorkomt in de link die je had explode, en zo ja maak m dik.
jaronneke - 18/05/2009 10:34 (laatste wijziging 18/05/2009 10:34)
MySQL interesse
om dubbele eruit te halen moet je mysql DISTINCT gebruiken
mbeek - 18/05/2009 10:36
Nieuw lid
Dat van Jaronneke levert ook problemen op.
Kun je me helpen met een code DeviourSoul?
jaronneke - 18/05/2009 10:39
MySQL interesse
Kan je misschien je fouten wat beter omschrijven? je leest eigenlijk op een hele moeilijke manier iets uit wat vele male makkelijker kan.
Gesponsorde links
Dit onderwerp is gesloten .