Vervolg Verjaardagsmail

Status
Niet open voor verdere reacties.

rob59

Gebruiker
Lid geworden
1 okt 2007
Berichten
39
Het versturen van de verjaardagsmail (zie eerder topic) lukt goed.
Maar nu wil ik ook elke dag zelf even kijken of er iemand jarig is.
Ik heb hetvolgende script gemaakt en mezelf even "jarig gemaakt" in de database.
Helaas worden er geen gegevens getoond, enkel de scheidingstekens uit de regel echo. Wat is er fout aan?
Dit is het script
PHP:
<html>
<head>
<title>Jarige leden van vandaag</title>
</head>
<body>
<h2>Jarigen leden vandaag</h2>

<?php

 setlocale (LC_ALL, 'nl_NL');

 include( 'connect_db_strato_avl.php' );
 
 //Datum van vandaag instellen.
 $date_now=date("m-d");
 
 // Select query
 $sql = 'SELECT * FROM `tbverjaardag` WHERE `Lidactueel` = "Ja" ';
 $query = mysql_query($sql) or die(mysql_error());
  
  while($lid = mysql_fetch_object($query)) {
  $date_user = htmlspecialchars($lid->Geboortedatum);
    
  //Gebruikersdatum in stukjes hakken
  $date_user = explode("-", $date_user);
  
  //Datum zonder het jaar onthouden
  $date_user = "$date_user[1]-$date_user[2]";
  
  //Controle op datum
  if($date_now == $date_user)
{
echo $row['Voornaam']. " - ". $row['Achternaam']. " - ". $row['Geboortedatum']. "<br />";
}
}
?>

</body>
</html>
 
Je roept de verkeerde variabele aan. In plaats van $row moest je $lid gebruiken. (Of gewoon $lid $row noemen ;))

PHP:
<html>
<head>
 <title>Jarige leden van vandaag</title>
</head>
<body>
<h2>Jarigen leden vandaag</h2>
<?php
setlocale (LC_ALL, 'nl_NL');

include( 'connect_db_strato_avl.php' );

//Datum van vandaag instellen.
$date_now = date("m-d");

// Select query
$sql = 'SELECT * FROM `tbverjaardag` WHERE `Lidactueel` = "Ja" ';
$query = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_object($query)) {
  $date_user = htmlspecialchars($row['Geboortedatum']);
   
  //Gebruikersdatum in stukjes hakken
  $date_user = explode("-", $date_user);
  
  //Datum zonder het jaar onthouden
  $date_user = "$date_user[1]-$date_user[2]";
  
  //Controle op datum
  if($date_now == $date_user) {
    echo $row['Voornaam'] . $row['Achternaam'] ." - ". $row['Geboortedatum'] ."<br />";
  }
}
?>
</body>
</html>
 
@ Tha Devil

Helaas, het resultaat blijft hetzelfde. Zelfs zijn nu de scheidingstekens verdwenen? :(

Rob
 
@ Tha Devil

Helaas, het resultaat blijft hetzelfde. Zelfs zijn nu de scheidingstekens verdwenen? :(

Wat is het verschil tussen

$date_user = htmlspecialchars($row['Geboortedatum']);

en

$date_user = htmlspecialchars($row->Geboortedatum);
 
Dan gaan we even wat tussen echo's plaatsen
PHP:
<html> 
<head> 
<title>Jarige leden van vandaag</title> 
</head> 
<body> 
<h2>Jarigen leden vandaag</h2> 
<?php 
setlocale (LC_ALL, 'nl_NL'); 

include( 'connect_db_strato_avl.php' ); 

//Datum van vandaag instellen. 
$date_now = date("m-d"); 

// Select query 
$sql = 'SELECT * FROM `tbverjaardag` WHERE `Lidactueel` = "Ja" '; 
$query = mysql_query($sql) or die(mysql_error()); 
while($row = mysql_fetch_object($query)) { 
  $date_user = htmlspecialchars($row['Geboortedatum']); 
  echo 'Geboortedatum van '. $row['Voornaam'] .' '. $row['Achternaam'] .': '. $date_user .'<br />';  
  //Gebruikersdatum in stukjes hakken 
  $date_user = explode("-", $date_user); 
   
  //Datum zonder het jaar onthouden 
  $date_user = "$date_user[1]-$date_user[2]"; 
  echo 'Maand en dag van '. $row['Voornaam'] .' '. $row['Achternaam'] .': '. $date_user .'<br /><br />';   
  //Controle op datum 
  if($date_now == $date_user) { 
    echo $row['Voornaam'] . $row['Achternaam'] ." - ". $row['Geboortedatum'] ."<br />"; 
  } 
} 
?> 
</body> 
</html>
 
@ Tha Devil

Ik krijg nu 453 (van alle actieve leden) dit te zien.

Geboortedatum van :
Maand en dag van : -

Rob
 
Laatst bewerkt:
Hmm blijkbaar wordt de query niet uitgevoerd.

Ik denk dat het komt door het gebruik van mysql_fetch_object. Zelf gebruik ik altijd fetch_array

Het verschil is er niet tussen die met het pijltje en die met de haken.

Probeer dit eens:
PHP:
// Select query 
$sql = 'SELECT * FROM `tbverjaardag` WHERE `Lidactueel` = "Ja" '; 
$query = mysql_query($sql) or die(mysql_error()); 
while($row = mysql_fetch_array($query)) { 
  $date_user = htmlspecialchars($row['Geboortedatum']); 

  //Gebruikersdatum in stukjes hakken 
  $date_user = explode("-", $date_user); 
    
  //Datum zonder het jaar onthouden 
  $date_user = "$date_user[1]-$date_user[2]";

  //Controle op datum 
  if($date_now == $date_user) { 
    echo $row['Voornaam'] . $row['Achternaam'] ." - ". $row['Geboortedatum'] ."<br />"; 
  } 
}
 
@ Tha Devil

Bingo! Het werkt. Nu zal ik de opmaak nog iets verbeteren.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan