<?php  // Actie voor verbergen
  if ($opdracht == "verberg"){
  echo "verberg";
  }
  if ($opdracht == "bewerk"){
  echo "bewerk";
  }
  if ($opdracht == "verwijder"){
  echo "verwijder";
  }
  // --EINDE ACTIE VERBERGEN
  // Als opdracht leeg is of niet bestaat of er is een foute opdracht opgegeven, dan deze foutmelding geven:
  else{
  echo 'Er is helaas iets fout gegaan, als deze fout zich vaker voor doet, neemt u dan aub contact op met <a href="mailto:[email protected]">Mark vd Linden</a>!
  <br><a href="http://puntnl.markvdlinden.nl/login/jeugd/voorpagina.php">Klik hier om verder te gaan<a>';}
?>


Wat dit doet is moet doen is eerst kijken of opdracht verberg is, zo niet dan kijken of opdracht bewerk is, zo niet dan kijken of opdracht verwijder is, zo niet dan een fout melding geven. Maar hij maakt er dit van:
Kijken of het verberg is, zo ja verberg en foutmelding laten zien
Kijken of het bewerk is, zo ja bewerk en foutmelding laten zien
Kijken of het verwijder is, verwijder laten zien
Opdracht, is niks dan foutmelding laten zien...


Iemand die me hier mee kan helpen?

Mvg, Mark
<?php // Actie voor verbergen
if ($opdracht == "verberg"){
echo "verberg";
}
elseif ($opdracht == "bewerk"){
// $opdracht is niet gelijk aan 'verberg'
echo "bewerk";
}
elseif ($opdracht == "verwijder"){
// $opdracht is niet gelijk aan 'verberg' of 'bewerk'
echo "verwijder";
}
// --EINDE ACTIE VERBERGEN
// Als opdracht leeg is of niet bestaat of er is een foute opdracht opgegeven, dan deze foutmelding geven:
else{
echo 'Er is helaas iets fout gegaan, als deze fout zich vaker voor doet, neemt u dan aub contact op met <a href="mailto:[email protected]">Mark vd Linden</a>!
<br><a href="http://puntnl.markvdlinden.nl/login/jeugd/voorpagina.php">Klik hier om verder te gaan<a>';}
?>

Je moet elseif gebruiken, als die niet aan de eerste voorwaarde voldoet moet die pas kijken naar de 2e voorwaarde, anders niet.
O, kan iemand me eens uitleggen wanneer ik if elseif of else moet gebruiken?
elseif als er meerdere alternatieven zijn. else als er maar 1 alternatief mogelijk is.
Heel simpel:

if -> else
elseif -> anders als
else -> anders

Je krijgt dus:

als(voorwaarde)
anders als (voorwaarde) //voorwaarde 1 is niet waar, probeer optie 2
anders als (voorwaarde) //voorwaarde 1 en 2 zijn niet waar, probeer optie 3
anders //voorwaarde 1,2 en 3 zijn niet waar. Toon deze optie.
miss kun je hier iets mee?


if($pag == 1) {
    echo 'Dit krijg je als $pag 1 is';
}elseif($pag == 2) { 
   echo 'Dit krijg je als $pag 2 is';
}else{
    echo 'Dit krijg je als $pag anders is als 1 of 2';
}


Dus alleen de eerste krijgt een if en de rest een elseif.

Of leg ik het nou allemaal verkeerd uit?
@Oetzie, nee, dat is goed uitgelegd.

Eigelijk moet je een if-elseif-else constructie zien als één blok, waarvan er maar één wordt uitgevoerd.

Bij losse if's kunnen meerdere condities TRUE zijn.
k snap het niet:
ik heb nu dit:
if
{}
elseif{
if{}
else{}
}
en dat pakt hij niet:

<?php
include('../safe_admin.php');
include('../begin.php');

echo '<br><h3>Voorpagina jeugd wijzigen</h3><br>
        <br><h4>Wat op het moment de voorpagina is:</h4>';
$opdracht = $_GET['opdracht'];        
        
// Kijk of id gevult is        
if (isset($_GET['id']) &&  trim($_GET['id']) != '') {
  // Actie voor verbergen
  if ($opdracht == "verberg"){
  echo "verberg";
  }
  // EINDE ACTIE VERBERG
  // Begin actie bewerk
  elseif ($opdracht == "bewerk"){
  echo "bewerk";
  }
  // EINDE ACTIE BEWERK
  // Begin actie verwijder
  elseif ($opdracht == "verwijder"){
$id = $_GET['id'];
              $sql = "
                  DELETE FROM
                      jeugdvoorpagina
                  WHERE
                      id = ' . $id . '
              ";
              
              if(!$res = mysql_query($sql))
              {
                  trigger_error(mysql_error().'<br />In query: '.$sql);
              }
              elseif(mysql_affected_rows() == 0)
              {
                  echo 'Geen records verwijderd. <br />Query: '.$sql;
              }
              else
              {
                  echo 'Er zijn '.mysql_affected_rows().' records verwijderd uit de database.';
              } 
  // --EINDE ACTIE VERWIJDER
  // Als opdracht leeg is of niet bestaat of er is een foute opdracht opgegeven, dan deze foutmelding geven:
  }
  else{
  echo 'Er is helaas iets fout gegaan, als deze fout zich vaker voor doet, neemt u dan aub contact op met <a href="mailto:[email protected]">Mark vd Linden</a>!
  <br><a href="http://puntnl.markvdlinden.nl/login/jeugd/voorpagina.php">Klik hier om verder te gaan<a>';}

// --EINDE ID GEVULT--
// --zo niet dan gewoon een overzicht plaatsen--
else {
  $sql = "SELECT * FROM jeugdvoorpagina";
  $result = mysql_query ($sql);
  if($result)
  {
   while ($array = mysql_fetch_array($result))
   {
   echo '<div style="float: right;">
     <a href="http://puntnl.markvdlinden.nl/login/jeugd/voorpagina.php?opdracht=verberg&id=' . $array['id'] . '">Verbergen</a> | 
     <a href="http://puntnl.markvdlinden.nl/login/jeugd/voorpagina.php?opdracht=bewerk&id=' . $array['id'] . '">Bewerk</a> | 
     <a href="http://puntnl.markvdlinden.nl/login/jeugd/voorpagina.php?opdracht=verwijder&id=' . $array['id'] . '">Verwijder</a>
     </div>
     <h1><b> ' . $array['titel'] . '</b></h1>' . $array['tekst'];
   }
  }
  else
  {
      echo 'Error: ' . mysql_error();
  }
}
// --EINDE OVERZICHT

include('../eind.php');
?> 


Geeft deze foutmelding:

Parse error: syntax error, unexpected T_ELSE in /home/markvdli/domains/markvdlinden.nl/public_html/puntnl/login/jeugd/voorpagina.php on line 51

Wat doe ik nu weer verkeerd, kan geen if in if? Zo nee hoe zou ik dit wle kunnen oplossen dan?
Nested if's zijn zeker wel toegestaan hoor (if in if).

Het probleem is alleen dat je de if van regel 10 nog niet afgesloten hebt, waardoor hij de else op regel 52 niet verwacht.

Maak van regel 52 } else { en kijk wat hij dan doet.
Ja, klopt opgelost! Ik dacht deze eigenlijk net opgelost te hebben, maar niet dus. Bedankt;)
Leer ook maar eens inspringen. Je code is absoluut onoverzichtelijk.

Reageren