Database maken website

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Patrick De Wolf

Patrick De Wolf

04/11/2010 10:03:43
Quote Anchor link
Ik ben een eenvoudige website aan het maken en zou graag een zoekfunctie plaatsen in één van mijn eenvoudige ( ja ik ben een echte leek so please be nice) html pagina's.
Ik ben ondertussen al een paar dagen aan het surfen en vind heel veel informatie maar eerlijk gezegd snap ik er niet veel van...
Mijn webhosting ondersteund php en sql.


Vraag 1:
Mijn database gegevens staan in excel.
Kolom1 bevat serienummers onderdelen
kolom2 bouwjaar
kolom3 korte typebeschrijving


Ik dacht eraan om deze om te zetten naar acces
Vervolgens van acces naar .txt
daarna van.txt importeren via mysql van de webhosting.
Het is de bedoeling dat men gaat zoeken in kolom 1 (serienummers) en daarna de volledige rij te zien krijgt (bouwjaar en een korte beschrijving).
(kan dit?)

Mijn website ziet er qua structuur zo uit:
index.html
zoekpagina.html
links.html

Vraag2: (klopt dit)
Natuurlijk wil ik nu de zoekfunctie in zoekpagina.html inplanten...
Wat ik reeds heb gevonden is het volgende:

<form name="Zoekrecepten" method="post" action="Zoeken.php">
Trefwoord<br />
<input name="trefwoord" type="text" maxlength="50" style="width:97%;" />
<input type="image" src="images/zoeknormal.jpg" style="margin-top:5px;float:right;" alt="Zoeken" width="80px" height="19px" />


Vraag 3:
Nu zou ik ook een zoeken.php moeten aanmaken maar welke codes moeten hierin komen?
Is het systeem nu volledig om te functioneren of ontbreekt er nog vanalles?

Mvg,
Patrick
 
PHP hulp

PHP hulp

14/08/2020 13:16:33
 
- Ariën -
Beheerder

- Ariën -

04/11/2010 10:51:26
Quote Anchor link
Vraag 1: De stap van van Excel naar CSV te gaan, en deze in MySQL te importeren is een flinke stap kleiner.

Vraag 2:
Zoeken kan je beter met GET doen. Anders moet als iemand op vorige drukt weer het POST-formulier voor zoekopdracht opnieuw verzenden.

Vraag 3: Verdiep je in formulierafhandeling en MySQL en SQL. met LIKE zou je vervolgens kunnen zoeken.
 
Patrick De Wolf

Patrick De Wolf

04/11/2010 11:08:54
Quote Anchor link
Okay, bedankt voor de snelle reactie!

Vraag 1 is duidelijk voor me! Ga ik zeker proberen...
Vraag 2 begrijp ik wat je wil zeggen, maar ik ken niets van codes wijzigen...
Is het mogelijk om een voorbeeld script te geven?

Bij vraag 3 klopt het dat ik dan nog een extra formulier moet maken waar dan het resultaat in komt te staan? Is dit dan een php of html?

Ik ga wat googelen naar formulierafhandeling...
 
- Ariën -
Beheerder

- Ariën -

04/11/2010 11:14:06
Quote Anchor link
HTML is niet anders dan alles wat je ziet.
De hele afhandeling van het formulier en het zoeken wat erbij hoort moet je in PHP regelen.

Je zoekformulier ken je het best met GET laten werken i.p.v. POST.
Dan kan je in je PHP-script met $_GET['trefwoorden'] vervolgens de zoekopdrachten in uit de URL-balk halen.
 
Milo S

Milo S

04/11/2010 13:18:56
Quote Anchor link
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
<?php
# 1: Als er op verzenden is gedrukt
if( $_SERVER['REQUEST_METHOD'] == 'GET' )
{

    # 2: Als er een zoek woord meegegeven is
    if( !empty( $_GET['search'] ) )
    {

        $qry = "";
        
        # 3: Als query goed gelukt is
        if( $sql = mysql_query( $qry ) )
        {

            # 4: Als er items zijn gevonden
            if( mysql_num_rows( $sql ) > 0 )
            {

                /*
                *
                *
                ******* Hier je items weergeven, dit kan in een while loop, google er maar op!
                *
                *
                */

            }
            # 4: Anders; melding, geen resultaten gevonden
            else
            {
                echo 'Er zijn geen zoek resultaten gevonden.';    
            }
        }

        # 3: Anders; foutmelding, fout in query
        else
        {
            echo 'Er is een fout in de query opgetreden.';    
        }
    }

    # 2: Anders; Geen zoekwoord error
    else
    {
        echo 'U heeft geen zoekwoord ingevult. Dit moet u dus wel doen!';
    }
}

# 1: Anders, formulier weergeven
else
{
    echo '
    <form action="" method="get">
    
        <label>Zoekwoord:</label>
        <input name="search" type="text" />
    
        <input type="submit" value="Zoeken" />
    
    </form>    
    '
;
}

?>


Het praktisch nut van een voorbeeld... leuk een voorbeeld jammer dat je nu nog niet weet wat het precies doet...

google maar gewoon op alles wat je tegenkomt... zeg wat je denkt dat het doet, dan geven wij aan of het klopt.

Deze heb je nodig voor je query:
Klikerdeklik
Klikerdeklik

Het meeste kan je vinden op php.net/HIERDEFUNCTIENAAM daar is de meest volledige uitleg naar mijn idee.
Gewijzigd op 04/11/2010 15:07:58 door Milo S
 
Patrick De Wolf

Patrick De Wolf

04/11/2010 14:40:20
Quote Anchor link
Okay! Ja dit is voor mij een hele boterham!
Ik ben op dit moment aan't prutsen met het cvs bestand in mysql te krijgen... Van de webhosting krijg ik hierover maar weinig info maar dat komt wel in orde...

Nu vervolgens moet ik met die php codes gaan werken. Ik zet even alles terug op een rijtje... Verbeter me waar nodig...

1)In het html bestand waar mijn zoekbalkje inkomt moet ik de code die ik had opgegeven invoegen (weliswaar aanpassen met "GET"). Als ik het goed begrepen heb dient die html enkel om weer te geven en php om acties uit te voeren...
Toch komt die php-code in het html blad?

2)Nu moet ik een zoeken.php bestand maken met bovenstaande code erin. Deze gaat dus bewerkingen uitvoeren met de db.
Dus de zoekactie en weergeef-actie uitvoeren.

Okay Hopelijk zit ik er niet helemaal naast... Moet ik nu nog een apart html blad maken waar het resultaat inkomt?
 
- Ariën -
Beheerder

- Ariën -

04/11/2010 14:57:38
Quote Anchor link
Ik zou zeggen, begin anders eens op www.phptuts.nl aan een beginners cursus over PHP.
 
Milo S

Milo S

04/11/2010 15:05:26
Quote Anchor link
Als je dit al een boterham vind, dat staat je nog wat te wachten, dit zijn enkel if-statements, geen query e.d.

Mijn code is gewoon een search bestand,,, het html formulier zit er al ingebakken. Je zit er wat mijn script betreft naast maar wat je zegt kan wel...
PHP code kan niet in een html blad, dan werkt het niet, je zult het op moeten slaan als .php dus een php blad.

En wat aar zegt is misschien ook wel handig :P
Gewijzigd op 04/11/2010 15:08:46 door Milo S
 
Patrick De Wolf

Patrick De Wolf

05/11/2010 13:29:24
Quote Anchor link
Okay, ik heb een boek basiscursus php en sql gekocht...
De uitleg die erin staat is vrij duidelijk. (maar voor een leek als ik toch soms moeilijk)

Ik heb op aanraden van het boek wampserver gedownloaded om wat te oefenen...

Verbeter me als ik fout ben...
Wat ik eerst moet doen is mijn database maken via mijn webhost. myadmin

(ik doe dat eerst via wampserver en exporteer deze dan naar pc zodat ik deze bij host kan importeren) Op deze manier omdat ik dan wat kan Oefenen.

Vervolgens php scripten schrijven.
Wat me nog niet duidelijk is:

-Volgens wampserver moet ik een index.php op de server plaatsen
Als ik het goed begrijp maakt deze connectie met sql db?

-een database.php maken???? (ergens op een website gelezen maar begrijp niet waarom)

-een search.php om de zoekopdracht en weergeefopdracht weer te geven.


Misschien is het beter als ik dit alles laat uitbesteden ???
Enig idee wat de kostprijs hiervoor kan zijn?
 
Teun Hesseling

Teun Hesseling

05/11/2010 13:52:37
Quote Anchor link
index.php die zet je in je www map van je map . dat is het bestand wat wamp als eerste laad. heb je hem niet zie je een overzicht van je besstanden in de www map... verder ben je gewoon vrij om je bestande oz te nomen als je zelf wilt. met index.php maak je geen connectie met je db dat doe je door mysql_connect
Gewijzigd op 05/11/2010 14:10:11 door Teun Hesseling
 
Patrick De Wolf

Patrick De Wolf

08/11/2010 19:04:41
Quote Anchor link
Okay, ik ben ondertussen al een hele stap verder :-) ik heb een zoek.php en een resultaat.php aangemaakt! De connectie met de db werkt. Alleen vindt hij de gegevens niet terug. Ik vermoed dat het te maken heeft met de were-like of zoiets. Mijn resultaat.php moet dus nog worden aangepast.

De db heet: oem
tabel heet: nummers
velden: oem, type, link
(oem is een code uit cijfers en soms een / teken)
(type is een korte tekst max 50 tekens)
(link is hyperlink)

mijn resultaat.php volgt hieronder:
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
<?php
    $database
="a";
    $mysql_user = "a";
    $mysql_password = "b";
    $mysql_host = "c";
    $mysql_table_prefix = "";



    $success = mysql_pconnect ($mysql_host, $mysql_user, $mysql_password);
    if (!$success)
        die ("<b>Cannot connect to database, check if username, password and host are correct.</b>");
    $success = mysql_select_db ($database);
    if (!$success) {
        print "<b>Cannot choose database, check if database name is correct.";
        die();
    }



        $sql = "SELECT id,tekst FROM nummer WHERE oem LIKE '%$HTTP_POST_VARS[oem]%'";
    

    $res = mysql_query($sql);
    
    
    if (mysql_num_rows($res) >= 1)
    {

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

            echo "<p>Resultaat id: <b>$row[id]</b><br>";
            echo "Resultaat tekst: <b>$row[tekst]</b></p>";
        }

        
        echo "<a href=\"zoek.php\" title=\"zoek opnieuw\">zoek opnieuw</a>";
    }

    
    else
    {
        echo "<p>Er is niets gevonden op jou zoekterm:<b> $HTTP_POST_VARS[zoekterm]</b></p>";
        
        echo "<p><a href=\"zoek.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
    }

?>




Wat moet er nog veranderen?
 
Vincent Huisman

Vincent Huisman

08/11/2010 19:29:04
Quote Anchor link
en eerste moeten variabelen buiten de quotes (") dus niet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "dit is een $var, mooi he";
?>

maar op deze manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "dit is een ".$var.", mooi he";
?>


ook is je script gevoelig voor sql-injection (google maar even) dit kan je verhelpen door mysql_real_escape_string()
Gewijzigd op 08/11/2010 19:31:23 door Vincent Huisman
 
Patrick De Wolf

Patrick De Wolf

08/11/2010 19:38:03
Quote Anchor link
Okay! Die codes ga ik aanpassen...
die mysql_real_escape_string daar begrijp ik niet veel van... Daar zal ik me op moeten verdiepen denk ik... BEstaat daar een eenvoudige oplossing voor?

Ik vermoed dat mijn sql code eveneens fout is...
$sql = "SELECT id,tekst FROM nummer WHERE oem LIKE '%$HTTP_POST_VARS[oem]%'";
 
- SanThe -

- SanThe -

08/11/2010 19:41:33
Quote Anchor link
Dit is antiek $HTTP_POST_VARS[oem] en ook de quotes om de arraykey missen er.
Maak daar $_POST['oem'] van.

Nou heb je bij de eerste twee query's foutafhandeling en bij de SELECT query niet. Waarom niet?

Hou $vars buiten de quotes. Gebruik quotes om de keys in een array. Gebruik bij echo enkele quotes, dan hoef je de html-dubbele quotes niet te escapen.
 
- Ariën -
Beheerder

- Ariën -

08/11/2010 19:41:40
Quote Anchor link
En gebruik geen: mysql_pconnect() maar, mysql_connect()

Persistent connections, daar staat geen enkele shared host op te wachten.
 
Patrick De Wolf

Patrick De Wolf

15/11/2010 19:02:06
Quote Anchor link
Okay ik heb een code gevonden die werkt! Ik heb nog juist één vraagje...
Is onderstaande veilig tegen een sql-injection? Volstaat dit of moet ik nog maatregelen nemen?

$query = mysql_query("SELECT * FROM aaaa WHERE naam = '".mysql_real_escape_string($_POST['zoekwoord'])."'";

Alvast bedankt voor de leerrijke tips aan allen!
 
Jasper DS

Jasper DS

15/11/2010 19:08:26
Quote Anchor link
Naar mijn weten volstaat dit.
 
Wouter J

Wouter J

15/11/2010 19:20:53
Quote Anchor link
Dit is inderdaad goed tegen SQL injection.
 
Patrick De Wolf

Patrick De Wolf

15/11/2010 19:23:15
Quote Anchor link
Okay! Super!
Ik ben een tevreden man!
 
Niels K

Niels K

15/11/2010 20:20:03
Quote Anchor link
Kan je de code weergeven die dit voor elkaar heeft gekregen? :-)
 
Patrick De Wolf

Patrick De Wolf

15/11/2010 21:28:23
Quote Anchor link
Natuurlijk!
Is misschien niet echt overzichtelijk...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$dbhost
= 'HOSTNAAM';
$dbuser = 'GEBRNAAM';
$dbpass = 'PASW';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die                      ('Error connecting to mysql');

$dbname = 'DATABANKNAAM WAARTABELINSTAAT';
mysql_select_db($dbname);

 
if(isset($_POST['submit'])) {
?>


<table border="1">
<tr>



<td><strong>KOLOM1</strong>&nbsp;&nbsp;
&nbsp;&nbsp;</td>
<td><strong>KOLOM2</strong>&nbsp;&nbsp;
&nbsp;&nbsp;
<td><strong>KOLOM3</strong>&nbsp;&nbsp;
&nbsp;&nbsp;
<td><strong>KOLOM4</strong>&nbsp;&nbsp;
&nbsp;&nbsp;
<td><strong>KOLOM5</strong>&nbsp;&nbsp;
&nbsp;&nbsp;



</tr>
</table>

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
<?php


$query
= mysql_query("SELECT * FROM TABELNAAM WHERE KOLOMNAAMWAARINZOEKEN = '".mysql_real_escape_string($_POST['zoekwoord'])."'";






$resultaat = mysql_query($query) or die(mysql_error()); //Query uitvoeren
 
if(mysql_num_rows($resultaat)== 0) { //Mysql_num_rows geeft 0 als er geen resultaten zijn, of als de zoekterm in meer dan 50% van de resultaten voorkomt.
        echo "<tr>
                  <td>Geen of te veel resultaten, maak je zoekopdracht specifieker.</td>
              </tr>
             "
;
}
else {
 
while($zoek = mysql_fetch_assoc($resultaat)) {
?>


<table border="1">
<tr>



<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
          echo $zoek['KOLOM1RESULTOFZOEKRESULTAAT'];?>
</td>

<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
          echo $zoek['KOLOM2RESULT'];?>
</td>

<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
          echo $zoek['KOLOM3RESULT'];?>
</td>

<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
          echo $zoek['KOLOM4RESULT'];?>
</td>

<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
          echo $zoek['KOLOM5RESULT'];?>
</td>


</tr>
</table>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
}
}
//einde 'aantal'-lus
 
echo "</table>";
 
}
else {
//Formulier weergeven
?>

<form method="post" action="">
OEM search: <input type="text" name="zoekwoord"/><br/><input type="submit" name="submit" value="Search"/>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>



Toevoeging op 15/11/2010 21:29:56:

Alles onder elkaar zetten in één .php bestand en de gegevens aanpassen aan jou gegevens...
 

Pagina: 1 2 volgende »



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.