van Tabel naar Formulier uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco van o

marco van o

08/01/2010 10:10:00
Quote Anchor link
Kijk,...
Ik heb hier een script die een naam zoekt uit mijn database, achter die naam zit nog een heel formulier...
Dus wil ik dat het mogelijk is dat die doorlinkt naar dat formulier, die uit de database moet worden gehaald.

Hier is de code waar die, de naam op zoekt (dit werkt gewoon)
___________________________________________________

Table.php

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
<?php
{
  echo "<font color=#339933> <h3>Resultaten</h3></font><p>";
 include ('config.php');
  if(empty($_POST['zoekterm']))
  {

   echo "geen zoekwoord ingevuld
   <br><br><A HREF='zoeken.php'>Zoek opnieuw</a> &nbsp; <A HREF='index.php'>Beginpagina</A> "
;
  }

  else  
  {
  $sql = "SELECT * FROM mutatie2 WHERE naam LIKE '%$_POST[zoekterm]%' ";
  
  $res = mysql_query($sql);
  if (mysql_num_rows($res) >= 1)
  {

  
   echo "<table border='0'>";
   while ($row = mysql_fetch_array($res))
  {

   echo "<tr>
   <td><a href=search_results.php> $row[naam] </a></td>      
   </tr>"
;
  }
  }

   echo "</table>
  <br><br><hr width=140><A HREF='zoeken.php'>Zoek opnieuw</a> &nbsp; <A HREF='index.php'>Beginpagina</A> "
;
  }
}

?>

________________________________________________________

Hier het script waar die heel het formulier moet laten zien...
Ik heb ff dik gedrukt waar ik weet dat daar de fout zit, ik heb op internet gezocht maar ik weet het echt niet!

search_results.php

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
{
  echo "<font color=#339933> <h3>Resultaat</h3></font><p>";
    if (!@mysql_select_db("webapplicatie", @mysql_connect("localhost", "root", "")))
    {

        echo "Er kan geen database connectie gemaakt worden.";
        exit();
    }
   [
b] $sql = "SELECT * FROM aanvrager WHERE name_software FROM '%$_POST[zoekterm]%'";[/b]
 
    $res = mysql_query($sql);
    if (mysql_num_rows($res) >= 1)
    {

 
echo "<table border='0'>";
        while ($row = mysql_fetch_array($res))
        {

            echo "<p>  
        <TD class=head colSpan=2><center>Mutatieformulier McD/IT</center><br></TD>
        </TR><TR>
          <TD class=left vAlign=top width=200>Type Mutatie:</TD>
          <TD class=right> $row[type_mutatie]<BR/></TD>
        </TR> <TR>
          <TD class=left width=200>Naam:</TD>
          <TD class=right> $row[naam]</TD>
        </TR><TR>
          <TD class=left width=200>BSN-nummer:</TD>
          <TD class=right> $row[bsn_nummer]</TD>
        </TR><TR>
          <TD class=left width=200>Afdeling:</TD>
          <TD class=right> $row[afdeling]</TD>
        </TR><TR>
          <TD class=left width=200> Mutatiedatum:</TD>
          <TD class=right> $row[mutatiedatum]</TD>
        </TR><TR>
          <TD class=left width=200>Geboortedatum:</TD>
           <TD class=right> $row[dag] $row[maand] $row[jaar]</TD>
        </TR><TR>
          <TD class=left width=200>Aanvrager:</TD>
          <TD class=right> $row[aanvrager]</TD>
        </TR><TR>
          <TD class=left width=200>HR/Manager:</TD>
          <TD class=right> $row[hr_manager]</TD>
        </TR><TR>
          <TD class=left width=200>MCD/IT:</TD>
          <TD class=right> $row[mcd_it]</TD>
        </TR><TR>    
          <TD class=left width=200>Toegangspas:</TD>
          <TD class=right> $row[toegangspas]</TD>
        </TR><TR>        
          <TD class=left width=200>Computer/Laptop:</TD>
           <TD class=right> $row[computer]</TD>
        </TR><TR>        
          <TD class=left width=200>Telefoon:</TD>
          <TD class=right> $row[telefoon]</TD>
        </TR><TR>        
          <TD class=left width=200>Blackberry:</TD>
          <TD class=right> $row[blackberry]</TD>
        </TR><TR>
          <TD class=left width=200>Netwerktoegang, toegang tot:</TD>
          <TD class=right> $row[afdelingmap] <BR/> $row[projectfolder]</TD>
        </TR><TR>        
          <TD class=left width=200>E-mail, toegang tot:</TD>
          <TD class=right> $row[iedereen] <BR/> $row[tot_afdeling] <BR/> $row[toevoegen]</TD>        
        </TR><TR>        
          <TD class=left width=200>Topdesk:</TD>
          <TD class=right> $row[topdesk]</TD>          
        </TR><TR>        
          <TD class=left width=200>McDonald's E-ID, toegang tot:</TD>
          <TD class=right> $row[accessmcd] <BR/> $row[mcconnect] <BR/> $row[magic]</TD>
        </TR><TR>        
          <TD class=left width=200>GROIP, toegang tot:</TD>
          <TD class=right> $row[online] <BR/> $row[offline] <BR/> $row[matrix]</TD>
        </TR><TR>        
          <TD class=left width=200>IDW/GDW, toegang tot:</TD>
          <TD class=right> $row[sales] <BR/> $row[pmx] <BR/> $row[financial_reports] <BR/> $row[tda]</TD>
        </TR><TR>                                             
          <TD class=left width=200>MSIS:</TD>
          <TD class=right> $row[msis]</TD>          
        </TR><TR>                   
          <TD class=left width=200>Ecoin:</TD>
          <TD class=right> $row[ecoin]</TD>            
        </TR><TR>                   
          <TD class=left width=200>Oracle, toegang tot:</TD>
          <TD class=right> $row[discoverer_viewer] <BR/> $row[discoverer_plus] <BR/> $row[onderhouden_rf] <BR/> $row[onderhouden_omzet] <BR/> $row[onderhouden_pmx] <BR/> $row[rapportage] <BR/> $row[mcopco]</TD>
        </TR><TR>          
          <TD class=left width=200>Citrix, toegang tot:</TD>
          <TD class=right> $row[citrix] </BR> $row[pilon]</TD>        
        </TR><TR>
          <TD class=left width=200>Toelichtingen:</TD>
          <TD class=right> $row[toelichting]</TD>            
        </TR>  
            </p>
  
   "
;
        }

     echo "</table>";
  echo "<br><br><A HREF='zoeken.php'>Zoek opnieuw</a> &nbsp; <A HREF='index.php'>Beginpagina</A> &nbsp; <A HREF='bewerken.php'>Bewerken</A>";
    }

  else
    {
        echo "<p>Er is niets gevonden op jou zoekterm:<b> $_POST[zoekterm]</b></p><br>
  <A HREF='zoeken.php'>Zoek opnieuw</a> &nbsp; <A HREF='index.php'>Beginpagina</A>
  "
;
        
    }
}

?>

____________________________________
Hier ook het zoek formuliertje:

Zoeken.php

<font color="#339933"><h3>Zoeken Mutatie formulier</h3></font>
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
<?php
$link
= mysql_connect('localhost', 'root', '');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

$db_selected = mysql_select_db('webapplicatie', $link);
if (!$db_selected) {
    die ('Can\'t use webapplicatie : ' . mysql_error());
}

    echo "  
    <p>
    <FORM METHOD=\"POST\" ACTION=\"tabel.php\">
    Vul de naam in van degene die u zoekt:<br><br>
    <input type=\"naam\" name=\"zoekterm\" size=\"30\" ><br><br>
    <input type=\"submit\" name=\"submit\" value=\"Zoeken\">
    </p>
<br>
<br>"
;
?>

<TD class=left> <A HREF="javascript:javascript:history.go(-1)">Terug</A></td>

_____________________________________

Ik denk zelf dat het maar een klein iets is! ..
En dat het wsl gewoon een domme fout is..

Maar ik ben nog maar een beginnelijk =]
 
PHP hulp

PHP hulp

23/11/2024 18:51:32
 
Gerben Jacobs

Gerben Jacobs

08/01/2010 10:46:00
Quote Anchor link
Je kunt maar 1x "FROM" gebruiken.

Om conidities in je "WHERE" op te geven gebruik je gewoon het is-teken "=".

Dus: naam_software = '%$POSTblabla%'


P.s. Misschien handig om je variables in mysql_real_escape_string() te zetten.
Nu is je script namelijk gevoelig voor SQL injectie. Google daar maar op.
 
Marco van o

marco van o

08/01/2010 11:13:00
Quote Anchor link
Dat was dom van mij, de sql is nu,

$sql = "SELECT * FROM mutatie2 WHERE naam = '%zoekterm&'";


Maar ik krijg nog steeds geen resultaat.
Ik vraag me nu ook af of ik dit goed heb gedaan:

<a href=search_results.php> $row[naam] </a>

maar met welke query moet het formulier opvragen in "search_results.php
 
Niels K

Niels K

08/01/2010 13:57:00
Quote Anchor link
Misschien dat je hier wat aan hebt? Zo uit het losse handje gemaakt en niet getest dus er kunnen wat foutjes in zitten

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
77
<?php
    
    # bestanden includen (Jouw config)
    include_once ('config.php');
    
    # meldingen declareren
    $bericht = array();
    
        # kijken of er wat gepost is
        if($_SERVER['REQUEST_METHOD'] == 'POST')
        {

    
             # kijken of er wat ingevuld is bij het zoekveld
            # dit kan je uitbreiden door strlen te gebruiken om te controleren hoeveel tekens er in zjin gevuld
            # nu alleen even kijken of er daadwerkelijk wat is ingevuld

            if(!empty($_POST['zoeken']))
            {

                
                # er is een zoekwoord ingevuld. Kijken of er in de database iets voorkomt wat er op lijkt.
                $Query_zoek = "SELECT id, naam FROM mutatie WHERE naam like '".%$_POST['zoeken']%."'";
                
                    # kijken of query gelukt is
                    if($Result = mysql_query($Query_zoek))
                    {

                        
                        # controleren of er wat gevonden is
                        if(mysql_num_rows($Result) > 0)
                        {

                            
                            # er is resultaat gevonden
                            # while loop maken en alle gegevens op het scherm plaatsen

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

                            
                                $bericht [] = '
                                
                                    Er zijn '
.mysql_num_rows($Result).' resultaten gevonden<br />
                                    <b>Resultaten</b><br /><br />
                                    <a href="?informatie_id='
.$row['id'].'">'.$row['naam'].'</a><br />
                            
                                              '
;
                                              
                                # dit kan je natuurlijk helemaal zelf uitbreiden door alles in een tabel te stoppen of div en hele opmaak er aan
                                # te geven maar het gaat even om het idee.

                            
                            }
                            
                        }

                        else
                        {
                        
                            # er zijn geen resultaten gevonden, melding schrijven
                            $bericht[] = 'Er zijn geen resultaten gevonden voor het woord '.$_POST['zoeken'];
                        
                        }
                        
                    }

                    else
                    {
                    
                        # query is niet gelukt, melding geven
                        $bericht[] = 'Het zoeken in de database is mislukt. '.mysql_error();
                    
                    }
                
            }

            else
            {
                
                # er is geen zoekwoord ingevuld melding plaatsen
                $bericht[] = 'U heeft geen zoekwoord ingevuld!';
                
            }
    
        }


?>

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
<html>
<head>

</head>
<body>

    <form method="POST" action="<?php echo basename ($_SERVER['PHP_SELF']) ?>" />
    
        <table>
        
            <tr>
            
                <td>Zoekwoord </td><td><input type="text" name="zoeken" value="" /></td>
            
            </tr>

            <tr>

                    <td><input type="submit" value="Zoeken" /></td>

            </tr>

        
        </table>
    
    </form>
    
        <?php
        
            # de zoek resultaten of de foutmeldingen op het scherm weergeven
            if(!empty($bericht))
            {

            
                foreach ($bericht as $meldingen)
                {

                
                    echo $bericht;
                
                }
            
            }

                      
        
        ?>


</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Niels K
 
Marco van o

marco van o

08/01/2010 15:34:00
Quote Anchor link
Hey, thanks voor de moeite!

Maar hij wilt het niet doen
Hij geeft een error in de zoek query :*(
 
- SanThe -

- SanThe -

08/01/2010 15:38:00
Quote Anchor link
marco schreef op 08.01.2010 15:34:
Hij geeft een error in de zoek query :*(

En wij kunnen dit uiteraard lezen in onze glazen bol.

Nee, misschien wel handig on de error te vermelden.
Eventueel met het stukje bijbehorende code.
 
Marco van o

marco van o

08/01/2010 16:34:00
Quote Anchor link
" Parse error: parse error in ....\www\webapplicatie\zoek.php on line 20 "

De bij behorende code staat in de post van Niels, bij $Query_zoek !
Gewijzigd op 01/01/1970 01:00:00 door marco van o
 
Niels K

Niels K

08/01/2010 16:40:00
Quote Anchor link
Ja dat dacht ik al.. dit klopt niet helemaal

'".%$_POST['zoeken']%."'";

Hoe het wel moet schiet me even niet te binnnen
 
Joren de Wit

Joren de Wit

08/01/2010 16:44:00
Quote Anchor link
Die % tekens horen in ieder geval niet buiten quotes, die zijn onderdeel van de string:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
'%".$_POST['zoeken']."%'";
 
- SanThe -

- SanThe -

08/01/2010 16:50:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$Query_zoek
= "SELECT id, naam
            FROM mutatie
            WHERE naam like '%"
. $_POST['zoeken'] . "%'";
?>

Denk ook even aan de beveiliging.
Bovenstaand is lek => sql-injection.
Zie mysql_real_escape_string().
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Marco van o

marco van o

11/01/2010 08:59:00
Quote Anchor link
(sorry dat ik nu pas reageer, maar ik was een weekendje weg)

Als ik nu bij Niels zijn script een naam zoek, krijg ik standaart 'Array' te zien.

En thanks, ik moet idd nog naar sql-injection kijken!
 
Niels K

Niels K

11/01/2010 09:18:00
Quote Anchor link
@SanThe

Je hebt gelijk ik heb er helemaal niet opgelet terwijl ik dat normaal wel doe.. Dom van me. Sorry marco..

@Marco.

Als je van die fetch_assoc eens array maakt.. Vaag trouwens want ik had hem toen getest en toen werkte hij gewoon
 
Marco van o

marco van o

11/01/2010 09:39:00
Quote Anchor link
Hmm, dan is het idd vreemd, want hij geeft nog steeds alleen 'Array' aan, ook als ik helemaal niks in vul.


En als je bij toeval mijn code bekijkt hea, is daar niet iets kleins fout gedaan, wat ik zelf denk. Of is dat helemaal één groot drama.

En je hoeft tegen mij geen sorry te zeggen, ben al blij zat dat je tijd er in wilt steken.
 
Niels K

Niels K

11/01/2010 09:45:00
Quote Anchor link
Ja khad er niet echt tijd ingestoken hoor:P Even heel snel.. Ik zal het even uitgebreid testen je hoort zo meer..
 
Niels K

Niels K

11/01/2010 10:30:00
Quote Anchor link
De onderstaande code werkt bij mij goed, Wel moet je het nog even naar je eigen gegevens veranderen

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
    
    # database gegevens aanmaken
    $db['host'] = 'localhost';
    $db['gebruikersnaam'] = 'root';
    $db['wachtwoord'] = '';
    $db['database'] = 'peter';

    # database verbinding maken
    $mysqli = new mysqli($db['host'], $db['gebruikersnaam'], $db['wachtwoord'], $db['database']);
    
    # kijken of er een connectie gelukt is
    
        if(mysqli_connect_errno())
        {

    
            echo 'Fout bij verbinding: '.$mysqli->error;

        }

        
    # het bovenstaande normaal gesproken in een configuratie pagina doen
    
    # meldingen declareren

    $bericht = array();
    
        # kijken of er wat gepost is
        if($_SERVER['REQUEST_METHOD'] == 'POST')
        {

        
            # kijken of er wat ingevuld is bij het zoekveld
            # dit kan je uitbreiden door strlen te gebruiken om te controleren hoeveel tekens er in zjin gevuld
            # nu alleen even kijken of er daadwerkelijk wat is ingevuld

            if(!empty($_POST['zoekwoord']))
            {

                
                # kijken of er iets in de database voorkomt
                $Query_zoek = "SELECT * FROM gebruikers WHERE naam like '%".$mysqli->real_escape_string($_POST['zoekwoord'])."%' ";
                
                    # kijken of de query gelukt is
                    if($Result = $mysqli->query ($Query_zoek))
                    {

                        
                        # kijken of er resultaat is
                        if($mysqli->affected_rows > 0)
                        {

                            
                            # er is resultaat gevonden, zeggen hoeveel resultaten er zijn gevonden
                            $bericht[] = '<br />Er zijn '.$Result->num_rows.' resultaten gevonden!<br />';
                            
                                # nu gaan we resultaten door middel van een while loop op het scherm schrijven
                                while ($row = $Result->fetch_assoc())
                                {

                                
                                    $bericht[] = '<b>'.$row['naam'].'</b>';
                                
                                }        
                            
                        }

                        else
                        {
                            
                            # geen resultaat gevonden
                            $bericht[] = 'Er is geen resultaat gevonden met het zoekwoord <b>' .htmlspecialchars($_POST['zoekwoord']). '</b>';
                            
                        }
                        
                    }

                    else
                    {
                    
                        # er is een fout opgetreden in de query, melding geven
                        $bericht[] = 'Er is een fout opgetreden in de query '.$mysqli->error;
                    
                    }
                
            }

            else
            {
            
                # Er is niks ingevuld, melding geven
                $bericht[] = 'U heeft geen zoekwoord ingevuld!';
            
            }
        
        }

    



?>

<html>
<head>

    <title>Zoekfunctie</title>

</head>
<body>

    <form method="POST" action="<?php basename ($_SERVER['PHP_SELF']) ?>">
    
        <table>
        
            <tr>
                <td>Zoekwoord </td><td><input type="text" name="zoekwoord" value="" /></td>
            </tr>
            
            <tr>
                <td><input type="submit" value="Zoeken" /></td>
            </tr>
        
        </table>
    
    </form>
    
        <?php
            
        
            # meldingen op het scherm schrijven mogelijkheid 1
            if(!empty($bericht))
            {

            
                # array omzetten naar normale variable
                $meldingen  = implode ("", $bericht);
                
                # meldingen op het scherm schrijven
                echo $meldingen;
            
            }

            
            # meldingen op het scherm schrijven mogelijkheid 2
            if(!empty($bericht))
            {

            
                # array omzetten naar normale variable
                foreach ($bericht as $meldingen)
                {

                    
                    # meldingen op het schemr schrijven
                    echo $meldingen;
                    
                }
            
            }

        
        
        ?>


</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Niels K
 
Marco van o

marco van o

11/01/2010 11:29:00
Quote Anchor link
Ik word nu alleen maar naar de index gestuurd als ik op zoek klik.

Moet ik hierin dan wat veranderen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php basename ($_SERVER['PHP_SELF']) ?>



In ieder geval, nogmaals bedankt voor het helpen!


Edit: Maar het zoek script wat ik heb gepost doet het wel, alleen als ik op de naam klik en naar Search_results ga, krijg ik het formulier niet te zien.
En dat wil ik juist. =p
Gewijzigd op 01/01/1970 01:00:00 door marco van o
 
Niels K

Niels K

11/01/2010 11:47:00
Quote Anchor link
@marco

Hij valideert gewoon op dezelfde pagina hoor:) Of bedoel je dat niet?
 
Marco van o

marco van o

11/01/2010 12:14:00
Quote Anchor link
Naja, als ik op zoeken klik, gaat hij naar mijn hoofpagina en blijft die niet op de zelfde pagina, ik snap ook niet waarom, want naar mijn idee klopt alles.
 



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.