"voeg toe als vriend" script
ik heb het volgende script daarvoor inelkaar gezet:
Code (php)
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
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
<?
/*
CREATE TABLE `voegvriendtoe` (
`vriendid` int(4) NOT NULL auto_increment,
`username` varchar(30) NOT NULL default '',
`vriendnaam` varchar(30) NOT NULL default '',
PRIMARY KEY (`vriendid`),
UNIQUE KEY `vriendid` (`vriendid`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
*/
if ($_SESSION['loggedin'] == 'ja'){
// scriptt
if (isset ($_GET['addvriend'])) {
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row[username]."')";
mysql_query ($addsql) or trigger_error (mysql_error());
echo "$row[username] is toegevoegd aan je vriendenlijst";
}
echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
}
elseif ($_SESSION['loggedin'] != 'ja'){
// fout je kan niet toeveogen
}
?>
/*
CREATE TABLE `voegvriendtoe` (
`vriendid` int(4) NOT NULL auto_increment,
`username` varchar(30) NOT NULL default '',
`vriendnaam` varchar(30) NOT NULL default '',
PRIMARY KEY (`vriendid`),
UNIQUE KEY `vriendid` (`vriendid`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
*/
if ($_SESSION['loggedin'] == 'ja'){
// scriptt
if (isset ($_GET['addvriend'])) {
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row[username]."')";
mysql_query ($addsql) or trigger_error (mysql_error());
echo "$row[username] is toegevoegd aan je vriendenlijst";
}
echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
}
elseif ($_SESSION['loggedin'] != 'ja'){
// fout je kan niet toeveogen
}
?>
het werkt wel..... alleen probleem is dat ik 10 keer kan klikken op de link voeg toe als vriend en dat hij hem dan ook 10 keer in de DB zet.... hoe los ik dat op ?
zoiets? toevoegen aan je addsql query
heb het ff geprobeerd maar nee dat werkt niet........ :(
Database opzetje:
Userid
UseridVriend
Beide samen zijn dan je PK (samengestelde PK dus)
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
if (isset ($_GET['addvriend'])) {
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row[username]."')";
mysql_query ($addsql) or trigger_error (mysql_error());
?>
if (isset ($_GET['addvriend'])) {
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row[username]."')";
mysql_query ($addsql) or trigger_error (mysql_error());
?>
Dit is de controle:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
if (isset($_GET['addvriend'])) {
$sql = "SELECT FROM voegvriendtoe where username = '$username' AND vriendnaam = ' $row[username]' ;";
if (!mysql_num_rows(mysql_query($sql)))
{ // Jouw code }
?>
if (isset($_GET['addvriend'])) {
$sql = "SELECT FROM voegvriendtoe where username = '$username' AND vriendnaam = ' $row[username]' ;";
if (!mysql_num_rows(mysql_query($sql)))
{ // Jouw code }
?>
Code (php)
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
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
<?
if ($_SESSION['loggedin'] == 'ja'){
// scriptt
if (isset($_GET['addvriend'])) {
$wsql = "SELECT FROM voegvriendtoe where username = '".$username."' AND vriendnaam = '".$row[username]."'";
$wresult = mysql_query($wsql);
if (!mysql_num_rows($wresult)) {
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row[username]."')";
mysql_query ($addsql) or trigger_error (mysql_error());
echo "$row[username] is toegevoegd aan je vriendenlijst";
}
}
echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
}
?>
if ($_SESSION['loggedin'] == 'ja'){
// scriptt
if (isset($_GET['addvriend'])) {
$wsql = "SELECT FROM voegvriendtoe where username = '".$username."' AND vriendnaam = '".$row[username]."'";
$wresult = mysql_query($wsql);
if (!mysql_num_rows($wresult)) {
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row[username]."')";
mysql_query ($addsql) or trigger_error (mysql_error());
echo "$row[username] is toegevoegd aan je vriendenlijst";
}
}
echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
}
?>
maar hij doet het niet ??? hij voegt wel gewooon die persoon toe,, en ook als ik het 10 keer doe en wanneer je op de link gelikt hebt geeft hij deze melding
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\appserv\www\hs\modules\profielen\voeg_vriend_toe.php on line 24
rZa is toegevoegd aan je vriendenlijst
voeg deze persoon toe als vriend
dan komt ie ook maar 1x in de db
Code (php)
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
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
<?php
//Dit is de controle:
if (isset($_GET['addvriend']))
{
$sql = "SELECT FROM voegvriendtoe where username = '$username' AND vriendnaam = ' $row[username]' ;";
if (!mysql_num_rows(mysql_query($sql)))
{
if ($_SESSION['loggedin'] == 'ja')
{
if (isset ($_GET['addvriend']))
{
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row['username']."')";
mysql_query ($addsql) or trigger_error (mysql_error());
echo "$row[username] is toegevoegd aan je vriendenlijst";
}
echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
}
elseif ($_SESSION['loggedin'] != 'ja')
{
// fout je kan niet toeveogen
}
}
}
?>
//Dit is de controle:
if (isset($_GET['addvriend']))
{
$sql = "SELECT FROM voegvriendtoe where username = '$username' AND vriendnaam = ' $row[username]' ;";
if (!mysql_num_rows(mysql_query($sql)))
{
if ($_SESSION['loggedin'] == 'ja')
{
if (isset ($_GET['addvriend']))
{
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row['username']."')";
mysql_query ($addsql) or trigger_error (mysql_error());
echo "$row[username] is toegevoegd aan je vriendenlijst";
}
echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
}
elseif ($_SESSION['loggedin'] != 'ja')
{
// fout je kan niet toeveogen
}
}
}
?>
lissy:
Als het goed is gedaan door me ziet dit er dan zo uit:
Code (php)
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
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
<?php
//Dit is de controle:
if (isset($_GET['addvriend']))
{
$sql = "SELECT FROM voegvriendtoe where username = '$username' AND vriendnaam = ' $row[username]' ;";
if (!mysql_num_rows(mysql_query($sql)))
{
if ($_SESSION['loggedin'] == 'ja')
{
if (isset ($_GET['addvriend']))
{
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row['username']."')";
mysql_query ($addsql) or trigger_error (mysql_error());
echo "$row[username] is toegevoegd aan je vriendenlijst";
}
echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
}
elseif ($_SESSION['loggedin'] != 'ja')
{
// fout je kan niet toeveogen
}
}
}
?>
//Dit is de controle:
if (isset($_GET['addvriend']))
{
$sql = "SELECT FROM voegvriendtoe where username = '$username' AND vriendnaam = ' $row[username]' ;";
if (!mysql_num_rows(mysql_query($sql)))
{
if ($_SESSION['loggedin'] == 'ja')
{
if (isset ($_GET['addvriend']))
{
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row['username']."')";
mysql_query ($addsql) or trigger_error (mysql_error());
echo "$row[username] is toegevoegd aan je vriendenlijst";
}
echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
}
elseif ($_SESSION['loggedin'] != 'ja')
{
// fout je kan niet toeveogen
}
}
}
?>
nu laat hij helemaal niks zien geen foutmelding en ook geen voeg toe link........
staat de persoon die je toe wilt voegen al als vriend?
Erik:
staat de persoon die je toe wilt voegen al als vriend?
nope heb de tabel geleegd en hij doet niks meer voegt niks toe.....
De kunst is nu het hieruit halen van delen die je kan gebruiken. En het op de juiste manier aanpassen.
<html>
<head>
<title>Mijn berichten</title>
<h2>Laat een bericht achter</h2></head>
<body>
<table>
Code (php)
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
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
<?php
// Verbinden.php wordt geincluded om verbinding te maken met de database.
include("verbinden.php");
$id = $_GET['id'];
$id_sql = "SELECT * FROM gebruiker WHERE id=" . $id;
$id_result = mysql_query($id_sql);
$id_ontvanger = mysql_fetch_array($id_result);
$my_id_sql = "SELECT * FROM gebruiker WHERE username='" . $username ."'";;
$my_id_result = mysql_query($my_id_sql);
$my_id = mysql_fetch_array($my_id_result);
$mijnid=$my_id['id'];
if (isset($_GET['aanvraag']) && $_GET['aanvraag'] == "ja"){
$aanvraag_SQL_insert="INSERT INTO aanvragen (userid,aanvrager) VALUES ('$id','$mijnid')";
$bool=mysql_query($aanvraag_SQL_insert);
if($bool==1) echo ("<center>Uw aanvraag wordt verwerkt</center><br>");
if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het schrijven naar de database. Probeer het later nog eens. <br>Wanneer het probleem zich voor blijft doen, neem dan contact op met de beheerder.</font>");
}
$vriend_sql = "SELECT * FROM vrienden WHERE userid=" . $id . " AND vriend=" . $mijnid . " OR userid=" . $mijnid . " AND vriend=" . $id;
$vriend_result = mysql_query($vriend_sql);
if (@mysql_num_rows($vriend_result) >0){
if (isset($_POST['bericht']) && strlen($_POST['bericht']) >= 8){
$bericht=htmlspecialchars($_POST['bericht']);
$bericht=nl2br($bericht);
$berichten_SQL_insert="INSERT INTO berichten (userid,bericht,afzender) VALUES ('$id','$bericht','$mijnid')";
$bool=mysql_query($berichten_SQL_insert);
if($bool==1) echo ("<center>Het bericht is naar de gebruiker verzonden</center>");
if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het schrijven naar de database. Probeer het later nog eens. <br>Wanneer het probleem zich voor blijft doen, neem dan contact op met de beheerder.</font>");
}
else {
?>
// Verbinden.php wordt geincluded om verbinding te maken met de database.
include("verbinden.php");
$id = $_GET['id'];
$id_sql = "SELECT * FROM gebruiker WHERE id=" . $id;
$id_result = mysql_query($id_sql);
$id_ontvanger = mysql_fetch_array($id_result);
$my_id_sql = "SELECT * FROM gebruiker WHERE username='" . $username ."'";;
$my_id_result = mysql_query($my_id_sql);
$my_id = mysql_fetch_array($my_id_result);
$mijnid=$my_id['id'];
if (isset($_GET['aanvraag']) && $_GET['aanvraag'] == "ja"){
$aanvraag_SQL_insert="INSERT INTO aanvragen (userid,aanvrager) VALUES ('$id','$mijnid')";
$bool=mysql_query($aanvraag_SQL_insert);
if($bool==1) echo ("<center>Uw aanvraag wordt verwerkt</center><br>");
if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het schrijven naar de database. Probeer het later nog eens. <br>Wanneer het probleem zich voor blijft doen, neem dan contact op met de beheerder.</font>");
}
$vriend_sql = "SELECT * FROM vrienden WHERE userid=" . $id . " AND vriend=" . $mijnid . " OR userid=" . $mijnid . " AND vriend=" . $id;
$vriend_result = mysql_query($vriend_sql);
if (@mysql_num_rows($vriend_result) >0){
if (isset($_POST['bericht']) && strlen($_POST['bericht']) >= 8){
$bericht=htmlspecialchars($_POST['bericht']);
$bericht=nl2br($bericht);
$berichten_SQL_insert="INSERT INTO berichten (userid,bericht,afzender) VALUES ('$id','$bericht','$mijnid')";
$bool=mysql_query($berichten_SQL_insert);
if($bool==1) echo ("<center>Het bericht is naar de gebruiker verzonden</center>");
if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het schrijven naar de database. Probeer het later nog eens. <br>Wanneer het probleem zich voor blijft doen, neem dan contact op met de beheerder.</font>");
}
else {
?>
<tr>
<td></td>
</tr>
<tr>
<td>
Code (php)
<form name="bericht" action="index2.php?locatie=profiel&id=" method="post">
<textarea name="bericht" cols="40" rows="5"></textarea>
</td>
</tr>
<tr>
<td>
<input type="submit" name="submit" value="Verstuur">
</form>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</body>
</html>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
}
}
else{
echo ("<center><font color=gray>U kunt pas een bericht voor deze persoon achterlaten, wanneer hij/ zij u heeft geacepteerd als vriend.<br>");
}
$aanvraag_sql = "SELECT * FROM aanvragen WHERE userid=" . $id . " AND aanvrager=" . $mijnid . " OR userid=" . $mijnid . " AND aanvrager=" . $id;
$aanvraag_result = mysql_query($aanvraag_sql);
if (@mysql_num_rows($aanvraag_result) <> 0){
echo "Deze persoon heeft uw aanvraag nog niet geaccepteerd of geweigerd. Als uw aanvraag wordt geweigerd, kan u opnieuw aanvraag doen.";
}
else if(@mysql_num_rows($vriend_result) == 0){
?>
}
}
else{
echo ("<center><font color=gray>U kunt pas een bericht voor deze persoon achterlaten, wanneer hij/ zij u heeft geacepteerd als vriend.<br>");
}
$aanvraag_sql = "SELECT * FROM aanvragen WHERE userid=" . $id . " AND aanvrager=" . $mijnid . " OR userid=" . $mijnid . " AND aanvrager=" . $id;
$aanvraag_result = mysql_query($aanvraag_sql);
if (@mysql_num_rows($aanvraag_result) <> 0){
echo "Deze persoon heeft uw aanvraag nog niet geaccepteerd of geweigerd. Als uw aanvraag wordt geweigerd, kan u opnieuw aanvraag doen.";
}
else if(@mysql_num_rows($vriend_result) == 0){
?>
<a href="index2.php?locatie=profiel&id=&aanvraag=ja"><br>Aanvraag plaatsen</a></font></center>
Ik ga zelf toch mee met Arjan: gooi het veld vriendid weg en zet een samengestelde primary key op username en vriendnaam. Scheelt je een heleboel PHP-code en maakt de database een flink stuk sneller.
Code (php)
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
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
<?
if ($_SESSION['loggedin'] == 'ja'){
// scriptt
if (isset ($_GET['addvriend'])) {
$addsql = "INSERT INTO voegvriendtoe(username, vriendnaam) VALUES ('".$userid."', '".$row[username]."')";
mysql_query ($addsql) or trigger_error (mysql_error());
echo "$row[username] is toegevoegd aan je vriendenlijst";
}
echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
}
elseif ($_SESSION['loggedin'] != 'ja'){
// fout je kan niet toeveogen
}
?>
if ($_SESSION['loggedin'] == 'ja'){
// scriptt
if (isset ($_GET['addvriend'])) {
$addsql = "INSERT INTO voegvriendtoe(username, vriendnaam) VALUES ('".$userid."', '".$row[username]."')";
mysql_query ($addsql) or trigger_error (mysql_error());
echo "$row[username] is toegevoegd aan je vriendenlijst";
}
echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
}
elseif ($_SESSION['loggedin'] != 'ja'){
// fout je kan niet toeveogen
}
?>
als ik iemand toevoeg die al een vriend is dan geeft hij de volgende error aan
Notice: Duplicate entry '21-heks' for key 1 in c:\appserv\www\hs\modules\profielen\voeg_vriend_toe.php on line 25
dat komt dat hij er al in staat,, hoe kan ik het zo maken dat hij gewoon aangeeft,,, $row[username] is al jou vriend ofzoiets ?
Gewijzigd op 30/01/2006 14:59:00 door R
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
$sql = mysql_query("SELECT * FROM voegvriendtoe WHERE username = '".$_SESSION['username']."' AND vriendnaam = '".$_POST['vriendnaam']."'");
$res = mysql_num_rows($sql);
if($res >= 1){
echo 'Bestaat al als vriend';
}
if(isset($error)){
echo $error;
}
?>
$sql = mysql_query("SELECT * FROM voegvriendtoe WHERE username = '".$_SESSION['username']."' AND vriendnaam = '".$_POST['vriendnaam']."'");
$res = mysql_num_rows($sql);
if($res >= 1){
echo 'Bestaat al als vriend';
}
if(isset($error)){
echo $error;
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
$res = mysql_query("SELECT username, vriendnaam FROM voegvriendtoe WHERE username=$userid AND vriendnaam=$row[username])";
if (mysql_num_rows($res) > 1)
{
# vriend is al toegevoegd
}
else
{
# voeg vriend toe
}
?>
$res = mysql_query("SELECT username, vriendnaam FROM voegvriendtoe WHERE username=$userid AND vriendnaam=$row[username])";
if (mysql_num_rows($res) > 1)
{
# vriend is al toegevoegd
}
else
{
# voeg vriend toe
}
?>
R:
Hier doe je iets was niet netjes is. Je gebruikt namelijk $row[username] buiten een string context, waardoor 'username' niet wordt gezien als een string, maar als een ongedefinieerde constante. Dat kun je op twee manieren oplossen:$addsql = "INSERT INTO voegvriendtoe(username, vriendnaam) VALUES ('".$userid."', '".$row[username]."')";
1) Haal $row[username] weer binnen de quotes
2) Maak er $row['username'] van
Gewijzigd op 30/01/2006 15:31:00 door Willem vp
(oh ja heb er ondertussen ook $row['username'] TY!!)