login  Naam:   Wachtwoord: 
Registreer je!
 Forum

database gegevens samenvoegen en verwerken in een selectbox (Opgelost)

Offline peerke59 - 26/09/2010 15:03 (laatste wijziging 26/09/2010 16:25)
Avatar van peerke59MySQL interesse Ik heb de beschikking over een database, deze staat al online.
Als beginner zou ik nu contact moeten maken met de database.
Ik zou graag velden uit een database samenvoegen en gaan verwerken naar een variabele om dat te gaan gebruiken in een verzendformulier.

De gegevens die al klaar zijn:
het verzendformulier met de variabele:
$tomail (emailadres van de ontvanger)
$tonaam ( naam van de ontvanger)
$from (emailadres van de verzender)
$fromnaam (naam van de verzender)

Wat ik nu graag zou willen realiseren is om de velden VOORNAAM en VV en ACHTERNAAM samenvoegen en stoppen in een keuzebox die te vergelijken is met:

[Code]<strong>Naam Ontvanger</strong>
<select name="to">
<option value="">Maak uw keuze</option>
<option value="emailadres">Naam</option>
<option value="emailadres">Naam</option>
</select>
[/CODE]
De gemaakte naam keuze zou dus gekoppeld moeten worden aan $tonaam en het daarbij horende e-mailadres aan $tomail.

Vraag is dus welke code moet ik nu gebruiken om dit werkende te krijgen?

Wat ik momenteel al heb werkt niet, krijg een 500-foutmelding.
Waar zit de fout:

Plaatscode: 140031

15 antwoorden

Gesponsorde links
Offline remcobers - 26/09/2010 21:57
Avatar van remcobers PHP expert Je mist op regel 137 nog een ) en helemaal onderaan een }

Los die eerst eens op ;)
Offline peerke59 - 26/09/2010 22:25 (laatste wijziging 26/09/2010 22:26)
Avatar van peerke59 MySQL interesse De twee foutjes zijn er uit gehaald.
Alles werkt behalve de gegevens uit de database worden niet getoond in een selectbox.
Wat nu te doen? 
Offline remcobers - 26/09/2010 22:26
Avatar van remcobers PHP expert
if (($result = mysql_query($sql)) !== false) {

while ($row = mysql_fetch_assoc($res)) {

Kijk eens naar die regels ;)
Offline peerke59 - 26/09/2010 22:27
Avatar van peerke59 MySQL interesse als beginneling heb ik daar geen oplossing voor, wat zou er dan wel moeten staan?
Offline remcobers - 26/09/2010 22:28
Avatar van remcobers PHP expert je voert de query uit en gooit het in de variable $result en daarna probeer je een mysql_fetch_assoc() op $res uit. Dus verander $res in $result. De enige juiste variable
Offline peerke59 - 26/09/2010 22:29 (laatste wijziging 26/09/2010 22:37)
Avatar van peerke59 MySQL interesse ik ga het meteen veranderen, was me helemaal niet opgevallen dat de variabele naam niet klopte.

is ook veranderd, maar helaas nog steeds geen selectbox te zien.
Nog meer fouten in de listing?
Offline remcobers - 26/09/2010 22:42
Avatar van remcobers PHP expert Wat geeft de query terug als je hem in phpMyAdmin gooit ?
En rond regels 150, staan daar alle { } goed ? Want heb het idee dat er misschien geen db connectie is.
Offline peerke59 - 26/09/2010 22:46 (laatste wijziging 26/09/2010 22:49)
Avatar van peerke59 MySQL interesse Zal ik voor de zekerheid bovenaan nog een include connectie plaatsen.

met een andere code heb ik wel connectie, maar als beginneling weet ik niet hoe dan de gegevens in een selectbox te krijgen.

Ik ga er morgenavond wel weer mee verder, is nu erg laat, moet er zeer vroeg uit.

een include op regel 4 toegevoegd maakt ook geen verschil
  1. include "connect.php"; //verbinding maken
Offline remcobers - 27/09/2010 13:02
Avatar van remcobers PHP expert Krijg je de juiste gegevens als je de query in phpMyAdmin doet ?
Offline peerke59 - 27/09/2010 15:29
Avatar van peerke59 MySQL interesse We gaan weer verder.

Ik heb een nieuwe database aangemaakt, eentje waar de volledige namen in staan.
Het lijkt me nuttig om van het samenvoeg idee af te stappen.
Blijkbaar gaat daar toch iets fout.
Ik heb gekeken of ik gegevens uit de nieuwe database kan halen met:

  1. <?php
  2. include "connect.php"; //verbinding maken
  3. $query = "SELECT * FROM `leden` ";
  4. //query is aangemaakt
  5. $sql = mysql_query($query) or die ( mysql_error( ) );
  6. //query is uitgevoerd
  7. while($record = mysql_fetch_object($sql)){
  8. echo"".$record->naam."<br>";
  9. }
  10.  
  11. ?>


ik krijg met deze code netjes alle namen van de leden op een rijtje.
dat gaat dus prima, er is connectie met de database

Wat ik nu dus nog nodig heb is de juiste code om de velden 'naam' en 'emailadres' in die selectiebox te krijgen.

Het is voor mij de eerste keer dat ik met een database werk dus zelf ben ik nog niet zo kundig om dit voor elkaar te krijgen.
Ik moet het dus nog van voorbeelden leren.
Offline remcobers - 27/09/2010 17:48 (laatste wijziging 27/09/2010 17:48)
Avatar van remcobers PHP expert
  1. <?php
  2. include "connect.php"; //verbinding maken
  3. $query = "SELECT naam, emailadres FROM leden";
  4. //query is aangemaakt
  5. $sql = mysql_query($query) or die ( mysql_error( ) );
  6. //query is uitgevoerd
  7. echo '<select name="naam">';
  8. while($record = mysql_fetch_assoc($sql)){
  9. echo '<option>'.$record['naam'].'</option>';
  10. }
  11. echo '</select>';
  12. ?>


Bovenstaande mist natuurlijk dingen als form tags etc ;)
Bedankt door: peerke59
Offline peerke59 - 27/09/2010 18:13 (laatste wijziging 27/09/2010 19:37)
Avatar van peerke59 MySQL interesse ik ga het gelijk even uitproberen

[aanvulling]
ik heb de code op de plaats gezet en ik krijg netjes een selectiebox met de namen.
verder gegaan met het uittesten
Krijg echter een 550-fout op het gedeelte dat de mail moet gaan verzenden.
Blijkbaar moet daar ook een aanpassing gemaakt worden??

De TWEEDE mail die daarin verzonden wordt komt wel aan.
Maar de mail verstuurd naar de persoon uit de selectiebox komt niet aan, of wordt niet verstuurd.

De mail die verstuurd moet worden gaat naar de variable $to

kan het zo zijn dat de geselecteerde persoon soms nog naar die variabele gezet moet worden??

[2de aanvulling]
ik zie wellicht de fout al:

echo 'selecteer een naam: ' . '<select name="naam">';
moet zijn:
echo 'selecteer een naam: ' . '<select name="to">';

zo staat de selectbox in PHP trouwens ook benoemd.

[aanvulling 3]
heb dat even verandert, maar daar ligt het ook niet aan.
blijkbaar moet er nog iets verandert worden in de code?
wordt het e-mailadres wel in de juiste variabele gezet of komt in de variabele allee maar de naam??

[aanvulling 4]
ik heb de fout al gevonden waarom hij de mail niet verzend
de selectiebox toont wel de juiste namen maar zet het bijhorende e-mailadres niet in de $to variabele.
verander ik de code
  1. echo '<option>'.$record['naam'].'</option>';

in
  1. echo '<option>'.$record['emailadres'].'</option>';

dan laat hij de emailadressen in de selectiebox zien en komt de e-mail wel juist aan.

dus klopt de code niet helemaal
hoe moet dat nu verandert worden zodat ik in de selectiebox de naam ziet en dat er in de variabele het bijbehorende e-mailadres gezet wordt?
Offline remcobers - 27/09/2010 19:38 (laatste wijziging 27/09/2010 19:39)
Avatar van remcobers PHP expert Ik heb enkel de naam laten tonen in de options.

Als je er van maakt;
  1. echo '<option value="'. $record['emailadres'].'">'.$record['naam'].'</option>';

krijg je als value de adressen.
Bedankt door: peerke59
Offline peerke59 - 27/09/2010 19:54 (laatste wijziging 27/09/2010 20:24)
Avatar van peerke59 MySQL interesse ik vermoed dat we allebei op hetzelfde moment de oplossing gevonden hebben
  1. echo '<option value="'.$record['emailadres'].'">'.$record['naam'].'<option>';

ik krijg nu de juiste namen om te selecteren en het juiste daarbij horende e-mailadres wordt juist in de variabele verwerkt.

weet je dat ik door jou de laatste paar dagen veel bijgeleerd heb.
Daarvoor mijn hartelijke dank.

Nu kan ik voor een ander script ook de database gaan gebruiken, daarin moet iedereen hetzelfde mailtje krijgen.
Heb je toevallig daar ook nog een code voor?

[aanvulling]
heb al een voorbeeld gevonden, eens kijken hoe dat werkt  

  1. <?php
  2. $query = mysql_query("SELECT emailadres FROM tabel");
  3.  
  4. while ($result = mysql_fetch_row($query))
  5. {
  6. // Header maken
  7. $header .= "From: \"Mij\" <mijn@emailadres.nl>\r\n";
  8.  
  9. // Bericht maken
  10. $bericht = "Hoi\n\n";
  11. $bericht .= "Blalblablal\n";
  12.  
  13. // Onderwerp
  14. $onderwerp = "Mailtje!";
  15.  
  16. // Mailen
  17. mail($result[0],$onderwerp,$bericht,$header);
  18. }
  19. ?>
Offline Aar - 08/11/2010 10:59
Avatar van Aar PHP interesse mag ik even een tip geven.
Ik hoop dat je niet dit formulier publiekelijk hebt staan, waarbij per <option> je het mailadres vermeld.

Met kleine moeite kan je formulier zo een spam-sender worden, iets wat je zeker nieit wilt.
Gebruik liever ID's ofzo of bepaal zelf de mailadressen in een array ofzo.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.726s