hyperlink met info database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Karin php

Karin php

15/04/2009 23:14:00
Quote Anchor link
Hai, Ik wil graag zoekresultaten van een query weergeven in een hyperlink

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
while ($rij =mysql_fetch_array($result))
 {

 echo "<td><A href= 'activiteit.php'>".$rij["naam_a"]."</A></td>";
 }

?>


en vervolgens in de pagina activiteit.php informatie zetten over de aangeklikte activiteit. Het betreffende resultaat (naam_a) uit de hyperlink moet dus worden meegegeven aan de vervolgpagina om gekoppeld te kunnen worden aan informatie over deze activiteit uit de database. Hoe kan ik deze waarde meegeven? Ik heb iets gelezen over $GET maar dat ken ik alleen in combinatie met een formulier.
Gewijzigd op 01/01/1970 01:00:00 door Karin php
 
PHP hulp

PHP hulp

28/11/2024 10:14:30
 
Mr.Ark

Mr.Ark

15/04/2009 23:44:00
Quote Anchor link
Hallo Karin,

Je hebt helemaal gelijk, Dat kan je doen met _GET

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?PHP
echo '<td><a href="activiteit.php?naam='.$rij["naam_a"].'">'.$rij["naam_a"].'</a></td>';
?>


Zoals je ziet staat er bij de link ?naam=''.$rij["naam_a"].'

Op activiteit moet je dan controleren of er een naam wordt meegegeven, Dat kan op de volgende manier:

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

/* Kijken of er een naam wordt meegezonden. */
if(isset($_GET['naam']) && isset($_GET['naam']) !== '')
{

     /* Hé !, Er is een naam meegezonden. */
     echo 'De volgende naam is meegezonden: '.$_GET['naam'].'';

    /* Je kan dan nu als volgt een query doen. */
    $Query =
    "
        SELECT
          veld,
          veld2,
          veld3
        FROM
          tabel
        WHERE
          naam = '"
.mysql_real_escape_string($_GET['naam'])."'
    "
;
  
    /* Hier dan de rest van je code, Fouten afhandeling etc... */
}
else
{
    /* Hé !, Er is geen naam meegezonden. */
    echo 'Er is geen naam meegezonden, Doe wat anders.';
}


?>


Je kan het beste Single quotes '' gebruiken. Is namelijk makelijker om mee te werken.

Ik hoop je hier genoeg mee geinformeerd te hebben.

/* Edit. */

Ik adviezeer je om te werken met het ID. Dus naam vervangen door het ID.
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 
Karin php

Karin php

16/04/2009 10:02:00
Quote Anchor link
super bedankt. Dit klinkt als precies wat ik bedoelde. Ik zal het vanavond of morgen uitproberen.
 
Dennis Mertens

Dennis Mertens

16/04/2009 10:08:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
if(isset($_GET['naam']) && isset($_GET['naam']) !== '')[/code]
??

Dat moet zijn:
[
code][code]<?
if(isset($_GET['naam']) && $_GET['naam'] != '')[/code]

Maar aangezien jij het ID moet gebruiken! Zal ik iets in de trend gebruiken:
[
code][code]<?
if(isset($_GET['id']) && ctype_digit($_GET['naam']))[/code]
 
Karin php

Karin php

16/04/2009 14:25:00
Quote Anchor link
moet dat dan niet zijn?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?
if(isset($_GET['id']) && ctype_digit($_GET['id']))
Gewijzigd op 01/01/1970 01:00:00 door Karin php
 
Dennis Mertens

Dennis Mertens

16/04/2009 14:32:00
Quote Anchor link
Ja, ben er weer lekker bij hahaha :P

thnkz Karin (ook al is het voor jezelf).
 
Mr.Ark

Mr.Ark

16/04/2009 15:33:00
Quote Anchor link
@ Karin

Waar je ook even op moeten letten is dat je goede fouten afhandeling maakt.
Onder de SELECT Query even controleren met mysql_num_rows = 1 of er wel een resultaat is in de database met dat ID.

@ Dennis

Wat werkt sneller? ctype_digit of is_numeric? Of zit er niet echt een verschil in?
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 



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.