Fout in script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Remco van Akker

Remco van Akker

10/05/2012 21:55:58
Quote Anchor link
Hallo iedereen,

Ik heb dit stuk code geschreven om de vrienden te laten zien van de user maar het werkt op 1 of andere manier niet. Zien jullie de fout?

Quote:
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
$naam
= mysql_real_escape_string(htmlspecialchars(htmlentities(strip_tags($_GET['naam']))));


$checker = mysql_query("SELECT * FROM `friends` WHERE personOneID = '".$naam."' ") or die(mysql_error());
$row2 = mysql_fetch_assoc($checker);


////////////////////////////////////////////////////

if($naam = $row2['personOneID']) {
    $p1checker = mysql_query("SELECT * FROM `friends` WHERE personOneID = '".$naam."' AND status = 1 ") or die(mysql_error());
    $row3 = mysql_fetch_array($p1checker); // de row om gegevens op te halen (De vrienden dus!!!)
    
    echo $row3['personTwoID'];
    
    ////////
    
$checker2 = mysql_query("SELECT * FROM `friends` WHERE personTwoID = '".$naam."' ") or die(mysql_error());
$row4 = mysql_fetch_assoc($checker2);
    
    
    ////////
    
        
$checker2 = mysql_query("SELECT * FROM `friends` WHERE personTwoID = '".$naam."' ") or die(mysql_error());
$row4 = mysql_fetch_assoc($checker2);
    
}
elseif ($naam = $row4['personTwoID']){
    
    

    $p2checker = mysql_query("SELECT * FROM `friends` WHERE personTwoID = '".$naam."' AND status = 1 ") or die(mysql_error());
    $row5 = mysql_fetch_array($p2checker); // de row om gegevens op te halen (De vrienden dus!!!)
    
    echo $row5['personOneID'];
        

}





?>
 
PHP hulp

PHP hulp

05/02/2023 04:28:08
 
Jurgen B

Jurgen B

10/05/2012 22:03:09
Quote Anchor link
Ik zie niet helemaal waarom je al die queries nodig hebt. Los daarvan klopt je foutafhandeling van geen kanten, gebruik je * ipv specifieke kolommen in je queries en controleer je niet of er wel een rij wordt terug gegeven.
 
Marco PHPJunky

Marco PHPJunky

10/05/2012 22:12:04
Quote Anchor link
Je 3de query kan eigenlijk gelijk al weg want die word totaal niet gebruikt...
Waarom al die verschillende query's ?

Mag ik vragen hoe jij database eruit ziet ?
want dit gaat niet helemaal goed.

Waarom gebruik je bij je query's mysql_fetch_assoc en alleen bij de laatste mysql_fetch_array ?

je if/elseif voorwaarden klopt niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if($naam = $row2['personOneID']) {

}
elseif ($naam = $row4['personTwoID']){
?>

Moet worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?PHP
if($naam == $row2['personOneID']) {

}
elseif ($naam == $row4['personTwoID']){
?>


Al deze checks zijn niet echt nodig....
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Gewijzigd op 10/05/2012 22:22:35 door Marco PHPJunky
 
Obelix Idefix

Obelix Idefix

10/05/2012 23:10:54
Quote Anchor link
Wijkt dit wezenlijk af van de vraag die je stelt in http://www.phphulp.nl/php/forum/topic/alle-vrienden-echoen/84356/?
 
Remco van Akker

Remco van Akker

14/05/2012 21:47:23
Quote Anchor link
Ja klopt.
Maar ik heb nu een nieuw script gemaakt en het werkt.
Maar hun eigen naam komt er in te staan.
Hoe zorg ik er voor dat dat niet gebeurd?

Quote:
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
<?php
session_start();
include("config.php");
$naam = $_GET['naam'];

/////////////////////////////////////////////////////////////////////////////
$userID = mysql_query("SELECT userID FROM `friends` WHERE userID = '".$naam."' AND status = 1 ") or die(mysql_error()); ////// Checken van de user die ingevoerd is bestaat.
$userIDRow = mysql_fetch_assoc($userID);
/////////////////////////////////////////////////////////////////////////////
$friendID = mysql_query("SELECT friendID FROM `friends` WHERE friendID = '".$naam."' AND status = 1 ") or die(mysql_error());////// Checken van de user die ingevoerd is bestaat.
$friendIDRow = mysql_fetch_assoc($friendID);
/////////////////////////////////////////////////////////////////////////////


if($naam == $userIDRow['userID']){
    
    $userIDgegevens = mysql_query("SELECT * FROM `friends` WHERE userID = '".$naam."' AND status = 1 ") or die(mysql_error());
    $userIDgegevensRow = mysql_fetch_assoc($userIDgegevens);
    echo $userIDgegevensRow['friendID'];
    
    while($row = mysql_fetch_array($userIDgegevens)) {
        echo $row['friendID'];
        echo '<br />';
    }
    
}
elseif($naam == $friendIDRow['friendID']) {

    $friendIDgegevens = mysql_query("SELECT * FROM `friends` WHERE friendID = '".$naam."' AND status = 1 ") or die(mysql_error());
    $friendIDgegevensRow = mysql_fetch_assoc($friendIDgegevens);
    echo $friendIDgegevensRow['userID'];
    
    while($row = mysql_fetch_array($friendIDgegevens)) {
        echo $row['userID'];
        echo '<br />';
    }

}
else {
        // als de user geen vrienden heeft dan echo't die ook niks uit
}






?>
 
- Ariën  -
Beheerder

- Ariën -

14/05/2012 21:51:41
Quote Anchor link
Waar is nou je SQL injection beveiliging?
 
Remco van Akker

Remco van Akker

14/05/2012 21:59:29
Quote Anchor link
Die voer ik heus wel in hoor.
Die vergeet ik echt niet.
 
Marco PHPJunky

Marco PHPJunky

14/05/2012 22:20:00
Quote Anchor link
Hoe ziet jou structuur eruit ?
Want je probeert nu te filteren op 2 rows in 1 tabel....
Als ik vanuit ga dat je deze goed hebt genormaliseerd zou dit dus eigenlijk al niet eens moeten kunnen. (of ik lees hem nu even snel verkeerd)

Want dan zou je dus een tabel hebben met de 'users' en daarnaast een tabel met de 'friends' van de users/gebruikers...

En ja natuurlijk komt het ID van de user voor in de friends tabel maar dan kan je het net zo goed in 1 query doen zoals:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT [hier de velden] FROM friends WHERE userID = mysql_real_escape_string($naam) AND status = 1;


Dan zou je dus vanuit die query of in die query een 'JOIN'/'andere query' kunnen uitvoeren op de users tabel om daarmee de data van de vrienden op te vragen...
(wat dan ook jou voorkeur heeft/is)
Gewijzigd op 14/05/2012 22:27:42 door Marco PHPJunky
 
Wouter J

Wouter J

14/05/2012 22:32:09
Quote Anchor link
Quote:
Die voer ik heus wel in hoor.
Die vergeet ik echt niet.

Doe het nou meteen goed dan zit je daar ook niet mee.

Straks als je je project af heb hebt je zoveel regels codes dat je helemaal de draad kwijt bent. Je gaat ze dan echt niet allemaal af om zoiets erin te zetten. Dat zal veel meer tijd kosten dan er nu even simpel en snel mysql_real_escape_string omheen te zetten.
 
Remco van Akker

Remco van Akker

15/05/2012 07:36:34
Quote Anchor link
Als ik eerlijk moet zijn weet ik eigenlijk niet wat een JOIN is en
wat het doet. Ik heb dit script gemaakt en hij doet het goed. Maar
degene krijgt zich zelf in de echo.
En je hebt inderdaad gelijk. Ik zal voortaan gelijk
mysql_real_escape_string er in zetten.
 
Obelix Idefix

Obelix Idefix

15/05/2012 07:54:19
Quote Anchor link
Remco van Akker op 15/05/2012 07:36:34:
Ik heb dit script gemaakt en hij doet het goed. Maar
degene krijgt zich zelf in de echo.

Dan werkt het script dus niet goed ;-)

Remco van Akker op 15/05/2012 07:36:34:
Als ik eerlijk moet zijn weet ik eigenlijk niet wat een JOIN is en
wat het doet.

Misschien dan eens in verdiepen?!
 
Remco van Akker

Remco van Akker

15/05/2012 09:55:40
Quote Anchor link
Ik heb even wat tutorials door genomen en snap het nu een beetje.
Maar nog als snap ik niet waarom ik die JOINS moet gebruiken?
 



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.