If statement

Status
Niet open voor verdere reacties.

chandlurmark

Gebruiker
Lid geworden
12 mrt 2008
Berichten
58
Hallo allemaal, ik ben een if statement aan het bouwen alleen loop ik een beetje vast.

PHP:
<?php

include '../../sql/connection/dbconnection.php';
$query = "SELECT * FROM nieuwsbrief2 order by nnaam ASC";
$result = mysql_query($query) or die('Error, query failed');

if(mysql_num_rows($result) == "0")
{
echo "<br><p>Geen mensen aangemeld voor de nieuwsbrief.</p>";
}

while($row = mysql_fetch_array($result)){

$naam = $row['nnaam'];
if ($naam === 'Den'){
echo "<h2>Naam Den:</h2>";
echo "$naam";
}
}

?>

Dit heb ik tot nu toe. In nieuwsbrief2 zitten allerlei mensen ook met dezelfde namen. Nu wil ik een if statement hebben die mensen die Den heten laten zien met als kopje NAAM DEN: Alleen wordt het kopje ook steeds meegenomen in de loop, hoe zet je dit uit?
 
Laatst bewerkt:
Zoals je code nu is gaat hij alle resultaten uit de database bijlangs.

Komt hij iets tegen waarbij $naam exact gelijk is aan de string "Den" dan zal hij dit als output geven
HTML:
<h2>Naam Den:</h2> Den

Zit er dus 3x "Den" in je database is dit je output:
HTML:
<h2>Naam Den:</h2>Den<h2>Naam Den:</h2>Den<h2>Naam Den:</h2>Den
Je code doet nu dus alleen iets wanneer $naam "Den" is.
De rest genereert geen output.
 
Ja dat klopt, maar hoe stel je het in dat het kopje 1 x wordt weergegeven en daaronder de resultaten?
 
Zoals je het nu hebt is het een specifiek stuk code om enkel de "den" er uit te halen

Dan kun je net zo goed de query aanpassen dat je enkel die resultaten krijgt.
PHP:
<?php
 
include '../../sql/connection/dbconnection.php';
$query = "SELECT * FROM nieuwsbrief2 WHERE nnaam='Den'";
$result = mysql_query($query) or die('Error, query failed');
 
if(mysql_num_rows($result) == 0) {
  // Geen resultaten
  echo "<br><p>Geen mensen aangemeld voor de nieuwsbrief.</p>";
} else {
  // Er zijn resultaten dus weergeven
  echo '<h2>Naam Den:</h2>';
  while($row = mysql_fetch_assoc($result)){
    echo $row['nnaam'] .'<br />';
  }
}
?>
 
Ja klopt, maar wat als er nu geen Den bestaat in mijn database, dan laat hij toch dat kopje zien .... Ik moet dus het kopje 1x laten tonen als die naam voorkomt in mijn database, maar de records die daarin zitten moeten met een loop meekomen
 
Ja klopt, maar wat als er nu geen Den bestaat in mijn database, dan laat hij toch dat kopje zien

Weet je dat zeker? Als ik de code zo gebruik zou dat niet mogen gebeuren. Er zou dan "<br><p>Geen mensen aangemeld voor de nieuwsbrief.</p>" moeten worden geoutput naar de browser.
 
Je hebt gelijk het werkt wel!! Maar als ik dus verschillende kopjes wil gebruiken moet ik dus ook telkens mij while loop en query kopieren en aanpassen?
 
Niet per sé.

Je zou het zo kunnen doen:
PHP:
<?php
include '../../sql/connection/dbconnection.php';
$query = "SELECT * FROM nieuwsbrief2 ORDER BY nnaam";
$result = mysql_query($query) or die('Error, query failed');

$cur_naam = ""; // Controle variabele
if(mysql_num_rows($result) == 0) {
  // Geen resultaten
  echo "<br><p>Geen mensen aangemeld voor de nieuwsbrief.</p>";
} else {
  // Er zijn resultaten dus weergeven
  while($row = mysql_fetch_assoc($result)){
    if($cur_naam != $row['nnaam']) {
      echo '<h2>Naam '. $row['nnaam'] .':</h2>';
    }
    echo $row['nnaam'] .'<br />';
    $cur_naam = $row['nnaam'];
  }
}
?>
Volgens mij gaat dit het resultaat opleveren dat je zocht.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan