[PHP] Mail funcite, gemiddelde en fetch_Assoc

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Entity_Razer
  • Registratie: Januari 2004
  • Laatst online: 05-03 10:56
Hallo allemaal.

Ik heb een vraag omtrent PHP. wel niet zozeer een vraag meer een probleem.

Ik probeer voor een website een mail pagina te make voor bepaalde leerkrachten. Het principe is eigenlijk een beoordelingspagina maar met een druk op de knop zou ik een e-mail moeten kunnen sturen naar bv leerkracht: Joske vermeulen over cursus: PHP 4 n00bs

nu het selecteren van die persoon en de bijhorende SQL code en PHP code is zoniet het probleem het is hetvolgende.

Meerdere mensen kunnen een beoordeling hebben ingestuurd, dus je zit met ongeveer 20 beoordelingen over dat artikel.
Nu wil ik een mail sturen naart die persoon met een gemiddelde per beoordelinscriteria.

De criteria (waar men punten op geeft) zijn bijvoorbeeld:
Wat vond u van het gebruikte lesmateriaal?
Gaf de leerkracht voldoende uitleg?

enzovoor
ik heb zo een kleine 15 vragen.

Nu weet ik niet hoe ik een gemiddelde moet maken in PHP en ik heb dit al af:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?
$zoek = $_POST['zoek'];
if($zoek != ""){
$cursus = $_POST['cursus'];
$periode = $_POST['periode'];
$leerkracht = $_POST['leerkracht'];

$sql = mysql_query("SELECT * FROM beoordeling WHERE cursus='$cursus' AND periode='$periode' AND leerkracht='$leerkracht'");
$aantal = mysql_num_rows($sql);
if($aantal <= "1"){
echo "niets gevonden";
}else{
while ($record= mysql_fetch_assoc($sql)){
$vraag1 = $record['vraag1'];
$vraag2 = $record['vraag2'];
$vraag3 = $record['vraag3'];
$vraag4 = $record['vraag4'];
$vraag5 = $record['vraag5'];
$vraag6 = $record['vraag6'];
$vraag7 = $record['vraag7'];
$vraag8 = $record['vraag8'];
$vraag9 = $record['vraag9'];
$vraag10 = $record['vraag10'];
$vraag11 = $record['vraag11'];
$vraag12 = $record['vraag12'];
$vraag13 = $record['vraag13'];
$vraag14 = $record['vraag14'];
$vraag15 = $record['vraag15'];
}
}
    
    $headers = "From: \"Syntra\" <\"email@hotmail.com\">\r\n";

    $bericht = " 
Beste ".$leerkracht.",\n
\n
dit zijn de gemiddelde scores:\n 
\n
vraag1\n '$vraag1'
vraag2\n '$vraag2'
\n
Het Syntra Team.\n"; 
    
    $onderwerp = "Email van Syntra";
    mail($email, $onderwerp, $bericht, $headers);
}
else{
?>

<form method="post">

<select name="cursus">
<option>naam cursus</option>
</select>
<p></p>
<select name="periode">
<option>periode</option>
</select>
<p></p>
<select name="leerkracht">
<option>leerkracht</option>
</select>
<p></p>

<input type="submit" name="zoek" Value="zoeken">

</form>
<?
}
?>


Ik weet dus al dat ik het met fetch_assoc moet doen, de meerdere beoordelingen voor die persoon met die cursus uit de tabel halen, maar hoe bereken in van die array die je krijgt nu het gemiddelde?

En meer nog, hoe zet ik die in de e-mail?

Moet je gewoon (in html code:)
"Het gemiddelde op vraag1 : $vraag1gemiddelde"
of is het
"....vraag1: " $'vraag1gemiddelde'

of wat? ik weet echt niet hoe ik:
Het gemiddelde bereken aan de hand van de array die ik krijg met fetch assoc
en hoe ik die in de e-mail moet zetten (de correcte wijze :)

Alvast bedankt voor alle hulp die jullie mij kunnen geven

The Idea is not to arrive at the grave, safely in a well preserved body, but to slide in sideways at 400 miles an hour screaming of pure joy


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Je kan gaan middelen in PHP. Alle items in een array optellen en dat delen door het aantal lijkt me geen probleem :)
Daarnaast kent SQL een AVG() functie maar die kan je alleen over verschillende records gebruiken, en niet als je alle 15 vragen in 1 record hebt zitten. Waarom heb je dat eigenlijk in 1 record zitten en niet zoals het denk ik zou moeten 1 vraag per record?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb inderdaad ook het idee dat je door je while loopje steeds de vorige waarde van $vraag1 bv steeds overschrijft met een nieuwe waarde van bv de tweede beoordeling... als ik jou was zou ik die variable veranderen in een array bv $vraag[$i] waarbij je $i laat beginnen op 1 en steeds als je door de while loop gaat $i ophogen met warade 1... zo krijg je dus straks een array $vraag en dan laat je doormiddel van een for loopje de waarden uit het array bij elkaar tellen dan de eindwaarde van $vraag delen door $i en dan is je uitkomst het gemiddelde van die vraag van alle gevonden beoordelingen...

ongeveer zoeiets:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$i=1;
while ($record= mysql_fetch_assoc($sql)){
$vraag1[$i] = $record['vraag1'];
$vraag2[$i] = $record['vraag2'];
$vraag3[$i] = $record['vraag3'];
$vraag4[$i] = $record['vraag4'];
$vraag5[$i] = $record['vraag5'];
$vraag6[$i] = $record['vraag6'];
$vraag7[$i] = $record['vraag7'];
$vraag8[$i] = $record['vraag8'];
$vraag9[$i] = $record['vraag9'];
$vraag10[$i] = $record['vraag10'];
$vraag11[$i] = $record['vraag11'];
$vraag12[$i] = $record['vraag12'];
$vraag13[$i] = $record['vraag13'];
$vraag14[$i] = $record['vraag14'];
$vraag15[$i] = $record['vraag15'];

$i++;
}

for ($j=1;$j<$i;$j++)
{
    $totaal_vraag1=$totaal_vraag1+$vraag1[$j];
    $totaal_vraag2=$totaal_vraag2+$vraag2[$j];
    $totaal_vraag3=$totaal_vraag3+$vraag3[$j];
    //etc
}
$gemiddelde_vraag1 = $totaal_vraag1/$i;
$gemiddelde_vraag2 = $totaal_vraag2/$i;
$gemiddelde_vraag3 = $totaal_vraag3/$i;
//etc

Acties:
  • 0 Henk 'm!

  • Entity_Razer
  • Registratie: Januari 2004
  • Laatst online: 05-03 10:56
Ah,ok nu begin ik het grote geheel alwat te snappen :)

Men laatste vraag nu nog, hoe zet ik de uiteindelijke variabelen in de mail code?

IS het dus zo:
?>(je eindigt je php code en je begint dus aan je e-mail)

gemiddelde voor vraag1: $avrvraag1
gemiddelde voor vraag2: $avrvraag2

Of moet die variabele gemiddelde tusse ' ' staan?

The Idea is not to arrive at the grave, safely in a well preserved body, but to slide in sideways at 400 miles an hour screaming of pure joy


Acties:
  • 0 Henk 'm!

Verwijderd

als je uit php gaat en je wilt dan in je html code een php variable afdrukken, dan zet je in je html mail message: <?echo"$avrvraag1"?>

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Entity_Razer schreef op woensdag 16 februari 2005 @ 17:05:
Ah,ok nu begin ik het grote geheel alwat te snappen :)

Men laatste vraag nu nog, hoe zet ik de uiteindelijke variabelen in de mail code?

IS het dus zo:
?>(je eindigt je php code en je begint dus aan je e-mail)

gemiddelde voor vraag1: $avrvraag1
gemiddelde voor vraag2: $avrvraag2

Of moet die variabele gemiddelde tusse ' ' staan?
Volgens mij wordt het tijd voor een PHP tutorial ;)
Kijk eens naar het gebruik van en het verschil met " en '. Zoek daarnaast eens in de PHP manual naar string concatenation en de . (punt) als string operator.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1