Gegevens uit een database halen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hein

Hein

30/09/2006 22:06:00
Quote Anchor link
Hallo,

Ik heb een database gemaakt met een aantal vragen. De velden heten vraag1, vraag2, vraag3 etc.
Volgens mij is de opzet van de database niet goed, want voor iedere vraag moet ik opnieuw een mysql query uitvoeren. Dat moet simpeler kunnen.

Kan iemand mij advies geven hoe het beter kan?

O ja, je kan het zien op http://stef.no-ip.org/test/test.php

<html>
<head></head>
<body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
71
72
73
74
75
76
<?php

  echo "tekst om te laten zien dat de php code goed gaat<br>";

  // de tabel vragen bevat vraag1, vraag2, vraag3 etc tm vraag40
  // met een radiobutton kunnen de antwoorden
  // 1 - helemaal oneens
  // 2 - oneens
  // 3 - geen mening
  // 4 - eens
  // 5 - helemaal eens
  // 0 - geen antwoord aangeklikt
  // gegeven worden


  $db = mysql_connect ("localhost","root");
  if (!$db){
    echo "<br>no connection to database";
  }


  if (! @mysql_select_db("enquete",$db)){
    die('<p>kan de enquete database niet vinden</p>');
  }
else{
    //echo "<p> verbonden met enquete database</p>";
  }
  
  $sql = "select vraag1,count(*) from vragen group by vraag1";
  if (!$result=mysql_query($sql,$db)) {
      echo "<center><h4>query mislukt</center></h4>/n";
  }

  
  // dit is het resultaat op de mysql command line
  //+--------+----------+
  //| vraag1 | count(*) |
  //+--------+----------+
  //|      0 |        1 |  1 maal niet beantwoord
  //|      4 |        4 |  4 maal antwoord 'eens'
  //+--------+----------+
  // als resultaat wil ik graag kolommen met een percentage
  //  helemaal oneens    oneens    geen mening   eens   helemaal eens   geen antwoord
  //                                              80%                       20%


  if ($myrow = mysql_fetch_row($result)) {
    $resultaatid = $myrow["id"];
    //echo '<div id="table3">';
    echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
    
    do {
      $resultaatid = $myrow[id];
      printf("<tr><td>%s</td><td>%s</td></tr></a><br>\n",  $myrow[0], $myrow[1] );
    }
while ($myrow = mysql_fetch_array($result));
    echo '</table>';
  }
else{
    die('mysql_fetch_array mislukt');    
  }


  echo "tekst om te laten zien dat er in ieder geval iets gebeurt";

  // je kan het gemiddelde antwoord uit mysql halen met
  //mysql> select (avg(vraag1)-1)*25 from vragen where vraag1>0;
  //+--------------------+
  //| (avg(vraag1)-1)*25 |
  //+--------------------+
  //|            75.0000 |
  //+--------------------+


  $sql = "select (avg(vraag1)-1)*25 from vragen where vraag1>0";
  $result = mysql_query($sql);
  $myrow = mysql_fetch_row($result);
  echo $myrow[1].'<br><br>';
do {
      $resultaatid = $myrow[id];
      printf("<tr><td>%s</td><td>%s</td></tr></a><br>\n", $myrow[0], $myrow[1] );
    }
while ($myrow = mysql_fetch_array($result));


?>


</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Hein
 
PHP hulp

PHP hulp

05/05/2024 12:01:27
 
Hein

Hein

01/10/2006 12:45:00
Quote Anchor link
Bump
 
Lill-mik

Lill-mik

01/10/2006 13:15:00
Quote Anchor link
Misschien via

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
include('config.php');
?>

dan maak je daar de batabase
variables in..
Ik weet het niet zeker hoor ben net nieuw
in php wereld :P
Dus ik DENk dit maar wil je graag helpen ;)
 
Hein

Hein

01/10/2006 15:44:00
Quote Anchor link
Och..... Ik ben net zo nieuw als jij.
We kunnen dus nog veel leren.

Weet je, ik kan die variabelen wel opvragen, maar dan krijg je in mijn concept dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
  $sql
= "select (avg(vraag1)-1)*25 from vragen where vraag1>0";
  $result = mysql_query($sql);
  $myrow = mysql_fetch_row($result);
  echo $myrow[1].'<br><br>';
do {
      $resultaatid = $myrow[id];
      printf("<tr><td>%s</td><td>%s</td></tr></a><br>\n", $myrow[0], $myrow[1] );
    }
while ($myrow = mysql_fetch_array($result));
 
 $sql = "select (avg(vraag2)-1)*25 from vragen where vraag2>0";
  $result = mysql_query($sql);
  $myrow = mysql_fetch_row($result);
  echo $myrow[1].'<br><br>';
do {
      $resultaatid = $myrow[id];
      printf("<tr><td>%s</td><td>%s</td></tr></a><br>\n", $myrow[0], $myrow[1] );
    }
while ($myrow = mysql_fetch_array($result));
  $sql = "select (avg(vraag1)-1)*25 from vragen where vraag1>0";
  $result = mysql_query($sql);
  $myrow = mysql_fetch_row($result);
  echo $myrow[1].'<br><br>';
do {
      $resultaatid = $myrow[id];
      printf("<tr><td>%s</td><td>%s</td></tr></a><br>\n", $myrow[0], $myrow[1] );
    }
while ($myrow = mysql_fetch_array($result));

  $sql = "select (avg(vraag3)-1)*25 from vragen where vraag3>0";
  $result = mysql_query($sql);
  $myrow = mysql_fetch_row($result);
  echo $myrow[1].'<br><br>';
do {
      $resultaatid = $myrow[id];
      printf("<tr><td>%s</td><td>%s</td></tr></a><br>\n", $myrow[0], $myrow[1] );
    }
while ($myrow = mysql_fetch_array($result));

  $sql = "select (avg(vraag4)-1)*25 from vragen where vraag4>0";
  $result = mysql_query($sql);
  $myrow = mysql_fetch_row($result);
  echo $myrow[1].'<br><br>';
do {
      $resultaatid = $myrow[id];
      printf("<tr><td>%s</td><td>%s</td></tr></a><br>\n", $myrow[0], $myrow[1] );
    }
while ($myrow = mysql_fetch_array($result));

  $sql = "select (avg(vraagX)-1)*25 from vragen where vraagX>0";
  $result = mysql_query($sql);
  $myrow = mysql_fetch_row($result);
  echo $myrow[1].'<br><br>';
do {
      $resultaatid = $myrow[id];
      printf("<tr><td>%s</td><td>%s</td></tr></a><br>\n", $myrow[0], $myrow[1] );
    }
while ($myrow = mysql_fetch_array($result));
?>

enz. enz.

En als je de database slim opzet dan loop je met een loop door alle vragen heen en mis je een hele hoop code.

Waar ik zelf aan dacht is macrosubstitutie.

zoiets als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
do{
 $array-met-een-naam[$teller] = $vraag&teller
 $teller++
}
while voorwaarde
?>
 
Arie

arie

01/10/2006 23:39:00
Quote Anchor link
je moet ff wat duidenlijker de structuur van je database schetsen. zo kan niemand er wat mee denk ik zo ... heb je in je tabel ook een aparte kolom met een vraagnummer? dus echt een getal? Bijv:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
vraagnr vraag antwoord
1       vraag     3
2
       vraag     5
3
       vraag     0
4
       vraag     3

$query
= "SELECT `vraagnr`, `vraag`, count(*) FROM `vragen` GROUP BY `antwoord`";
?>

zoiets?
Gewijzigd op 01/01/1970 01:00:00 door arie
 
Hein

Hein

02/10/2006 22:48:00
Quote Anchor link
De tabel kan je inzien op http://strampke.mine.nu/tabel-vragen.jpg waar je ziet dat 7 mensen de vragen hebben beantwoord.

Hoe krijg ik dat nou weer mooi op een scherm?

Je weet: garbage in, garbage out en volgens mij moet de opzet van de tabel beter kunnen.

Hein
 
Frank -

Frank -

02/10/2006 23:09:00
Quote Anchor link
@Arie: Gebruik nooit en te nimmer backtics ` in je queries. Die leveren uiteindelijk meer problemen dan oplossingen op. Weghalen die zooi!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.