Πρόβλημα με την εισαγωγή 2 id's σε βάση

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Threshold
Δημοσιεύσεις: 48
Εγγραφή: 02 Μαρ 2009 22:16
Επικοινωνία:

Πρόβλημα με την εισαγωγή 2 id's σε βάση

Δημοσίευση από Threshold » 15 Μάιος 2009 15:10

Λοιπόν έχω το εξής πρόβλημα. Προσπαθώ να φτιάξω ένα συστημα φιλίας για την εργασία που λέγαμε και ενώ πιστεύω ότι το έχω σκεφτεί σωστά κάπου δεν μου βγαίνει καλά η υλοποίηση. Έχουμε και λέμε λοιπόν.

Ο χρήστης βρίσκει το προφίλ ενός χρήστη που θέλει να κάνει add ως φίλο του, μπαίνει στην σελίδα του (profile.php?PID=τάδε) και εκεί βρίσκει ένα λινκ κάτω στη σελίδα που του λέει request friend.

Το λινκ αυτό οδηγεί σε μία άλλη σελίδα στην οποία γίνεται η κατάλληλη επεξεργασία στη βάση δεδομένων ώστε να ειδοποιηθεί ο άλλος χρήστης ότι κάποιος τον έχει κάνει request.

Συγκεκριμένα θα αποθηκεύονται τα id των 2 χρηστών και μια boolean τιμή του με όνομα AreFriends. Αυτή θα παίρνει ως default τιμή το 0 και θα αλλάζει σε περίπτωση που ο χρήστης δέχεται την φιλία σε 1. Διαφορετικά θα σβήνεται η εγγραφή. Το πρόβλημα μου είναι με τα ID των χρηστών, έχω ονομάσει ID1 το ID του χρήστη που είναι συνδεδεμένος και ως ID2 αυτό του χρήστη που θα δεχτεί το request. Αυτό του 2 χρήστη πρέπει να μπαίνει κανονικά στο query ενώ του πρώτου που είναι συνδεδεμένος όχι. Το ψάχνω εδώ και κάνα 2 ώρες και δεν έχω βγάλει άκρη. Καμια ιδέα; Δοκίμασα να κάνω echo τις τιμές και όντως μου δείχνει μόνο για τον χρήστη που δέχεται το request.

ο κώδικας του profile είναι αυτός.

Κώδικας: Επιλογή όλων

<?php
	session_start&#40;&#41;;
	require_once &#40;"db.php"&#41;;
	$PID = $_GET &#91;'PID'&#93;;
	$myusername = $_SESSION&#91;'Username'&#93;; 
	$query = "SELECT Username, LastName, FirstName, Age, Gender, 
	Hobbies, FavouriteColour, FavouriteArtists FROM users WHERE PID='$PID'";
	$result = mysql_query&#40;$query&#41; or die&#40;"Cannot execute query <br/>" . $query&#41;;
	
	$info= mysql_fetch_array&#40;$result, MYSQL_ASSOC&#41;;
	
	$Username = $info&#91;'Username'&#93;;
	$LastName = $info&#91;'LastName'&#93;;
	$FirstName = $info&#91;'FirstName'&#93;;
	$Age = $info&#91;'Age'&#93;;
	$Gender = $info&#91;'Gender'&#93;;
	$Hobbies = $info&#91;'Hobbies'&#93;;
	$FavouriteColour = $info&#91;'FavouriteColour'&#93;;
	$FavouriteArtists = $info &#91;'FavouriteArtists'&#93;;
	
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml" xml&#58;lang="en" lang="en">

<head>
<title>Member Profile</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>

	<div id="container">
	
		<div id="header">
		
			<h1>**********************</h1>
			
		</div>
		
		<div id="menu">

			<ul>
				<li><a href="index.php">Home</a></li>
				<li><a href="login.php">Login</a></li>
				<li><a href="search.php">Search</a></li>
				<li><a href="registeruser.php">Register Account</a></li>
				<li><a href="edituserinfo.php">Edit Account </a></li>
			</ul>
		
		</div>
		
		<div id="content">

			<?php
			
				echo "<fieldset>";
				echo "<legend> Personal Information </legend>";

					if&#40;$myusername !=''&#41; &#123;
					
						echo "<p><label>Username&#58; </label>" . "$Username </p>";
						echo "<p><label>Last Name&#58; </label>" . "$LastName </p>";
						echo "<p><label>First Name&#58; </label>" . "$FirstName </p>";
						echo "<p><label>Age&#58; </label>" . "$Age </p>";
						echo "<p><label>Gender&#58; </label>" . "$Gender </p>";
						echo "<p><label>Hobbies&#58; </label>" . "$Hobbies </p>";
						echo "<p><label>Favourite Colour&#58; </label>" . "$FavouriteColour </p>";
						echo "<p><label>Favourite Artists&#58; </label>" . "$FavouriteArtists </p>";
										
					&#125;
					
					else&#123;
					
						echo "<p><label>Username&#58; </label>" . "$Username </p>";
						echo "<p><label>Favourite Colour&#58; </label>" . "$FavouriteColour </p>";

					&#125;
				
				echo "</fieldset>";
				
			?>
			
			<br />
		
			<p> <a href="friendrequest.php?PID=<?php echo $PID;?>">Request</a> friend </p>
		
		</div>
		
		<div id="footer">
		
			<p>&copy; 2009, *************************</p>
		
		</div>
	
	</div>

</body>

</html>
Ο κώδικας του request friend είναι αυτός:

Κώδικας: Επιλογή όλων

<?php 
	session_start&#40;&#41;;
	$PID2 = $_GET&#91;'PID'&#93;;
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml" xml&#58;lang="en" lang="en">

<head>
<title>Friend requested</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>

	<div id="container">
	
		<div id="header">
		
			<h1>************************</h1>
			
		</div>
		
		<div id="menu">

			<ul>
				<li><a href="index.php">Home</a></li>
				<li><a href="login.php">Login</a></li>
				<li><a href="search.php">Search</a></li>
				<li><a href="registeruser.php">Register Account</a></li>
				<li><a href="edituserinfo.php">Edit Account </a></li>
			</ul>
		
		</div>
		
		<div id="content">
		
			<?php
			
				require&#40;"db.php"&#41;;
				
				$myusername = $_SESSION&#91;'Username'&#93;;
				$mypassword = $_SESSION&#91;'Password'&#93;;
				
				$AreFriends = 0;
				
				$data = mysql_query &#40;"SELECT PID FROM users WHERE Username='$myusername' AND Password='$mypassword'"&#41; or die &#40;mysql_error&#40;&#41;&#41;; 
				$info= mysql_fetch_array&#40;$data, MYSQL_ASSOC&#41;;
				
				$PID1 = $info&#91;'PID'&#93;;
				
				$query = mysql_query &#40;"INSERT INTO friendship &#40;PID1, PID2, AreFriends&#41; 
				VALUES &#40;'" . $_POST&#91;'$PID1'&#93; . "','" . $_POST&#91;'$PID2'&#93; . "','" . $_POST&#91;'$AreFriends'&#93; . "'&#41;"&#41; or die &#40;mysql_error&#40;&#41;&#41;;
				
				echo $query;
				
				$rs = mysql_query&#40;$query&#41;;
				
				if&#40;!$rs&#41;&#123;
					echo&#40;"<br />There was a mistake"&#41;;
				&#125;	 
				else&#123;
					echo&#40;"<br />The user was added"&#41;;
				&#125;
				
			?>
		
		</div>
		
		<div id="footer">
		
			<p>&copy; 2009, ****************************</p>
		
		</div>
	
	</div>

</body>

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Πρόβλημα με την εισαγωγή 2 id's σε βάση

Δημοσίευση από ThyClub » 15 Μάιος 2009 16:01

κάνε echo mysql_error(); και δείξε μας τι γράφει

Threshold
Δημοσιεύσεις: 48
Εγγραφή: 02 Μαρ 2009 22:16
Επικοινωνία:

Πρόβλημα με την εισαγωγή 2 id's σε βάση

Δημοσίευση από Threshold » 15 Μάιος 2009 16:13

Μου βγάζει το εξής: Incorrect integer value: '' for column 'PID1' at row 1

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Πρόβλημα με την εισαγωγή 2 id's σε βάση

Δημοσίευση από ThyClub » 15 Μάιος 2009 16:15

Τώρα που το πρόσεξα:

$_POST['$PID1'] ???

Μα με $_GET δεν δουλεύεις;

Threshold
Δημοσιεύσεις: 48
Εγγραφή: 02 Μαρ 2009 22:16
Επικοινωνία:

Πρόβλημα με την εισαγωγή 2 id's σε βάση

Δημοσίευση από Threshold » 15 Μάιος 2009 16:27

Με $_GET παίρνω το ID2.

άλλαξα λίγο το query και έβαλα μεταβλητές και ενώ γίνεται η εγγραφή στην βάση μου λέει ότι υπάρχει κάποιο λάθος

Κώδικας: Επιλογή όλων

			<?php
			
				require&#40;"db.php"&#41;;
				
				$myusername = $_SESSION&#91;'Username'&#93;;
				$mypassword = $_SESSION&#91;'Password'&#93;;
				
				$AreFriends = 0;
				
				$data = mysql_query &#40;"SELECT PID FROM users WHERE Username='$myusername' AND Password='$mypassword'"&#41; or die &#40;mysql_error&#40;&#41;&#41;; 
				$info= mysql_fetch_array&#40;$data, MYSQL_ASSOC&#41;;
				
				$PID1 = $info&#91;'PID'&#93;;
				
				$query = mysql_query &#40;"INSERT INTO friendship &#40;PID1, PID2, AreFriends&#41;
				VALUES &#40;'" . $PID1 . "','" . $PID2 . "','" . $AreFriends . "'&#41;"&#41; or die &#40;mysql_error&#40;&#41;&#41;; 
				
				$rs = mysql_query&#40;$query&#41;;
				
				if&#40;!$rs&#41;&#123;
					echo&#40;"<br />There was a mistake"&#41;;
					echo mysql_error&#40;&#41;;
				&#125;	 
				else&#123;
					echo&#40;"<br />Friend requested"&#41;;
				&#125;
				
			?>
Το μύνημα λάθους αυτή τη φορά είναι: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1

Να προσθέσω επίσης ότι αυτό το λάθος εμφανίζεται στο if(!$rs){ και όχι μετά το query. Για την ακρίβεια το query δεν μου χτυπάει λάθος.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6228
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με την εισαγωγή 2 id's σε βάση

Δημοσίευση από fafos » 15 Μάιος 2009 16:48

pos ksereis oti den einai to lathos sto $query? kane ena echo sto $query kai dose mas apotelesma..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Threshold
Δημοσιεύσεις: 48
Εγγραφή: 02 Μαρ 2009 22:16
Επικοινωνία:

Πρόβλημα με την εισαγωγή 2 id's σε βάση

Δημοσίευση από Threshold » 15 Μάιος 2009 16:51

μου πέταει ένα άσσο.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6228
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με την εισαγωγή 2 id's σε βάση

Δημοσίευση από fafos » 15 Μάιος 2009 17:08

Threshold έγραψε:μου πέταει ένα άσσο.
Propo paizei? :lol:

otan kaneis insert sthn vash den orizeis se poia pedia tha kanei insert kai ti... prepei na dineis aplos tis times ME THN SEIRA pou yparxoun sthn vash kai an kapoia timh den dinete thn afhneis kenh me keno quote ('',) :

Κώδικας: Επιλογή όλων

            $query = "INSERT INTO poleis VALUES&#40;'$PID1','$PID2','$AreFriends'&#41;"; 
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Threshold
Δημοσιεύσεις: 48
Εγγραφή: 02 Μαρ 2009 22:16
Επικοινωνία:

Πρόβλημα με την εισαγωγή 2 id's σε βάση

Δημοσίευση από Threshold » 15 Μάιος 2009 17:27

Παίζει μια χαρά, ευχαριστώ πολυ! :D

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες