login  Naam:   Wachtwoord: 
Registreer je!
 Forum

meerdere selecteren uit db

Offline kenzo - 13/11/2008 15:35
Avatar van kenzoPHP beginner Hallo,

Ik heb onderstaande code om artikelen uit een database te selecteren, mailen naar leden en artikelen status te geven dat ze niet meer in nieuwsbrief moeten voorkomen.

Dit is de code:

Plaatscode: 35994


Het probleem is dat hij maar 1 lid selecteerd.

Als ik de code in phpmyadmin invoer:

  1. SELECT * FROM cms_leden WHERE nieuwsbrief='1' AND blok='0'



dan krijg ik ongeveer 1000 leden


Waar zit het probleem denken jullie?

Bedankt!

10 antwoorden

Gesponsorde links
Offline Martijn - 13/11/2008 16:00 (laatste wijziging 13/11/2008 16:01)
Avatar van Martijn Crew PHP je mag nummers zonder ' neerzetten. En een @ voor een query zetten is ook niet zo slim, dat onderdrukt de fout, maar tis beter op te lossen

Ook, ik heb je num_rows() deel aangpast, dit klopt wat meer 
  1. $sql = mysql_query("SELECT * FROM cms_leden WHERE nieuwsbrief=1 AND blok=0");
  2. if(mysql_num_rows($sql)==0){echo "Er is geen lid aangemeldt op de nieuwsbrief!";}
  3. else{
  4. while ($obj = mysql_fetch_assoc($sql)) {
  5. $onderwerp = "Shamrock Nieuwsbrief (".date("d-m-Y").")";
  6. include '/home/shamrock/public_html/paginas/beheer/brief.php';
  7. $bericht = ob_get_clean();
  8. mail($obj['email'], $onderwerp, $bericht, $headers);
  9. echo 'E-mail verzonden naar: ' . $obj['gebruikersnaam'] . '<br>';
  10. }
  11. $nieuw = "1";
  12. echo "<br><br><br><b>- Advertenties bijwerken -</b><br><br>";
  13. $sqlupdate = mysql_query("SELECT * from cms_producten WHERE nieuw='".$nieuw."'")or die(mysql_error());
  14. while($listupdate = mysql_fetch_assoc($sqlupdate)) {
  15. $nieuw2 = "0";
  16. echo 'Avertentie: <em>'.$listupdate['type'].'</em> succesvol bijgewerkt: <b>Ja</b><br>';
  17.  
  18. mysql_query("UPDATE cms_producten set nieuw='".$nieuw2."' WHERE nieuw='".$nieuw."'")or die(mysql_error());
  19. }



edit: Ik geloof niet dat ik je ob_ enzo strart. Waarom niet gewoon 1x includen boven je while?
Offline kenzo - 15/11/2008 09:23 (laatste wijziging 15/11/2008 09:32)
Avatar van kenzo PHP beginner Ik heb dat geprobeerd, maar weer krijgt alleen het eerste lid een mail....


Ik snap er echt niets van???


ook raar is dat als ik alleen deze code pak (om de leden dus te laten zien, ik ze wel allemaal zie:

  1. <?PHP
  2.  
  3. $sql = mysql_query("SELECT * FROM cms_leden WHERE nieuwsbrief=1 AND blok=0 AND gebruikersnaam!='Alexander'");
  4. if(mysql_num_rows($sql)==0){echo "Er is geen lid aangemeldt op de nieuwsbrief!";}
  5. else{
  6. while ($obj = mysql_fetch_assoc($sql)) {
  7. echo 'E-mail verzonden naar: ' . $obj['gebruikersnaam'] . '<br>';
  8. }
  9. }
  10. ?>
Offline Kr4nKz1n - 15/11/2008 09:52
Avatar van Kr4nKz1n Onbekend Geef sowieso aan welke velden je wilt gebruiken, en geen * gebruiken.

En wat doet die ob_start(); daar?
Offline kenzo - 15/11/2008 09:56 (laatste wijziging 15/11/2008 10:36)
Avatar van kenzo PHP beginner Het werkt nog niet, maar ik weet wel waar de fout ligt:

  1. include '/home/shamrock/public_html/paginas/beheer/brief.php';
  2. $bericht = ob_get_clean();


Als ik dit weghaal doet hij het wel (alleen include hij de nieuwsbrief zelf (het bestand) dan niet)...


Is dit op een andere mogelijkheid wel te doen?
Offline Martijn - 15/11/2008 12:27
Avatar van Martijn Crew PHP laat is zien wat er in die brief.php staat?
en zet is helemaal bovenaan

error_reporting(E_ALL);
Offline kenzo - 15/11/2008 12:35
Avatar van kenzo PHP beginner Plaatscode: 36197

dit is brief.php

Maar ik denk niet dat het daar aan ligt. Het ene lid dat de brief krijgt, krijgt hem wel goed te zien?
Offline Martijn - 15/11/2008 12:51 (laatste wijziging 15/11/2008 12:51)
Avatar van Martijn Crew PHP haal die ob's er is uit uit je 1e script
Offline kenzo - 15/11/2008 12:55
Avatar van kenzo PHP beginner dan krijg ik een witte pagina te zien en dan wordt hij naar geen lid verzonden.


Als ik error_reporting(E_ALL); ertussen zet geeft hij helemaal geen errors aan
Offline Martijn - 15/11/2008 13:34
Avatar van Martijn Crew PHP je code is niet helemaal netjes

Helemaal onderaan heb je echo ; staan. Daz wat nutteloos. Verder de "". bij echo's mag weg. 'echo $var;' is goed.
En ik zie t even niet wat t is. De error reporting moet helemaal bovenaan je bestand, niet in de while hae
Offline kenzo - 15/11/2008 13:40
Avatar van kenzo PHP beginner ok,

dat van error_reporting(E_ALL); heb ik ook bovenaan gezet. Hij gaf geen errors
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.206s