help 2 id's vergelijken met elkaar

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johnno janssen

johnno janssen

05/04/2011 21:12:16
Quote Anchor link
goede avond,

ik heb een vraag ik ben bezig met een forum aan het maken maar nu loop ik tegen een probleem. Het probleem is dat ik niet wil dat er mensen zijn die dubbel kunnen posten op mijn forum. Nu heb al een stuk code uitgewerkt die de datum wanneer ze een post gedaan hebben vergelijkt met de tijd van nu en als daar 10 minuten tussen zit kan die gene weer een post doen, maar nu het echte probleem als er binnen 10 minuten gereageerd word kan die gene niet er op antwoorden. Nu heb ik het idee dat als ik de id van die gene vergelijk met de nieuwe id die er bij is gekomen dan kan er weer gepost worden, maar hoe kan ik dit nou uit werken want ik heb geen idee hoe ik 2 id's kan vergelijken in de zelfde table.

met vriendelijke groet johnno
Gewijzigd op 05/04/2011 21:13:23 door Johnno janssen
 
PHP hulp

PHP hulp

24/04/2024 01:35:49
 
Noppes Homeland

Noppes Homeland

05/04/2011 21:29:21
Quote Anchor link
rare gedachtenkronkels heb je.

als je wilt voorkomen dat iemand 2x achterelkaar post dan kijk je toch naar de laatste post in het forum topic is de gebruiker anders dan is het goed anders helaas pinda kaas.
 
Johnno janssen

johnno janssen

04/05/2011 21:42:50
Quote Anchor link
ik heb hier een scriptje gebouwt maar daar kunnen wel wat dingen aan verandert worden maar goed hier het script
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
<?
$id
=mysql_real_escape_string($_GET['id']);
$sql="SELECT * FROM forum_answer WHERE question_id='$id'";
$result = mysql_query($sql);
        $total = mysql_num_rows($result);
        if ($total > 1){
      $qry_1 =
"SELECT MAX(a_id) FROM forum_answer WHERE question_id='$id' limit 1";

$result_1 = mysql_query($qry_1);//Haalt ids op

$qry_2 = "SELECT a_datetime, MAX(a_id) FROM forum_answer WHERE question_id='$id' AND a_name='".$session->username."'";
$result_2 = mysql_query($qry_2);//Haalt personen op
$row1 = mysql_fetch_assoc($result_1);
    
$row = mysql_fetch_assoc($result_2);
    if ($row['MAX(a_id)']==$row1['MAX(a_id)']){
         echo '<div class="forum"><h3>Fout</h3>verander je post.</div>';
    }

    else echo'forum';
        }

    
        ?>


als het script gaat kijken wie de MAX id is, we gaan er van uit dat ik dat ben dan zegt het "verander je post." maar dan laat het ook het forum zien om weer te kunnen post en dat wil ik niet hoe kan ik dat oplossen heeft iemand een idee

bedankt alvast
Gewijzigd op 04/05/2011 21:46:23 door johnno janssen
 
Milo S

Milo S

05/05/2011 11:52:36
Quote Anchor link
Je zult het volgende moeten doen:

1. Haal de laatste post uit een topic op
2. Vergelijk of het gebruikers id daarvan overeen komt met je gebruikers is sessie
3. Zo ja, geen reactie formulier tonen
4. Zo niet, wel een formulier tonen

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
<?php
$sql
=
"
SELECT
    user_id
FROM
    replys
WHERE
    id = '"
.$HIER_HET_ID_VAN_JE_REPLY."'
ORBER BY
    datum
DESC
LIMIT 1
"
;

if( !$res = mysql_query( $sql ) )
{

    # Fout in query
}
elseif( mysql_num_rows( $res ) == 0 )
{

    # Geen resultaten
}
else
{
    $rec = mysql_fetch_assoc( $res );
    
    if( $rec['user_id'] == $_SESSION['user_id'] )
    {

        # Geen formulier
    }
    else
    {
        # Wel formulier    
    }
}

?>


Zo iets zou dan je basis kunnen zijn. Uiteraard moet je op de plekken van het commentaar nog je ding doen, en alles beveiligen.
Vergeet ook niet in je query het id mee te geven!
Gewijzigd op 05/05/2011 11:54:51 door Milo S
 



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.