Πρόβλημα με ενημέρωση πίνακα....

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

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

Απάντηση
rafinos
Δημοσιεύσεις: 301
Εγγραφή: 15 Μάιος 2011 00:20
Επικοινωνία:

Πρόβλημα με ενημέρωση πίνακα....

Δημοσίευση από rafinos » 30 Δεκ 2011 18:00

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

<?php
	session_start&#40;&#41;;
	if&#40;!isset&#40;$_SESSION&#91;'username'&#93;&#41;&#41;&#123;
		header&#40;"location&#58; index.php"&#41;;
	&#125;else&#123;
?>

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>Σύστημα διαχείρισης βιογραφικών - Εγγραφή</title>
	<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
	<img src="images/logo.png" height="150" width="150">
	<hr />
<?php
		//Ορισμός των μεταβλητών και εκχώρηση τιμών σε αυτές
		
		$username = $_SESSION&#91;'username'&#93;;
		$email = mysql_real_escape_string&#40;strtolower&#40;$_POST&#91;'email'&#93;&#41;&#41;;
		$name = mysql_real_escape_string&#40;$_POST&#91;'name'&#93;&#41;;
		$surname = mysql_real_escape_string&#40;$_POST&#91;'surname'&#93;&#41;;
		$day = mysql_real_escape_string&#40;$_POST&#91;'day'&#93;&#41;;
		$month = mysql_real_escape_string&#40;$_POST&#91;'month'&#93;&#41;;
		$year = mysql_real_escape_string&#40;$_POST&#91;'year'&#93;&#41;;
		$date = "$year-$month-$day";
		$fathersname = mysql_real_escape_string&#40;$_POST&#91;'fathersname'&#93;&#41;;
		$placeofdate = mysql_real_escape_string&#40;$_POST&#91;'placeofdate'&#93;&#41;;
		$url = mysql_real_escape_string&#40;$_POST&#91;'url'&#93;&#41;;
		$married = mysql_real_escape_string&#40;$_POST&#91;'married'&#93;&#41;;	
		$children = mysql_real_escape_string&#40;$_POST&#91;'children'&#93;&#41;;	
		$sex = mysql_real_escape_string&#40;$_POST&#91;'sex'&#93;&#41;;
		$familystate = '';
	
		if&#40;$_POST&#91;'submit'&#93;&#41;&#123;
			include "connect.php";
			
			$children = &#40;int&#41;$children;

		
			if&#40;isset&#40;$married&#41;&#41;&#123;
			
				if&#40;$sex == "male"&#41;&#123;
					if&#40;$married == 1&#41;&#123;
						$familystate .= "Έγγαμος ";
					&#125; else &#123;
						$familystate .= "Άγαμος ";
					&#125;
				&#125; else &#123;
					if&#40;$married == 1&#41;&#123;
						$familystate .= "Έγγαμη ";
					&#125; else &#123;
						$familystate .= "Άγαμη ";
					&#125;
				&#125;
			
				if&#40;$children != '' || $children != 0&#41;&#123;
					if &#40;$children == 1&#41;&#123;
						$familystate .= "με 1 παιδί.";
					&#125;else&#123;
						$familystate .="με ".$children." παιδιά.";
					&#125;
				
				&#125;
			&#125;
		
			//Ενημέρωση δεδομένων
			$result = mysql_query&#40;"UPDATE user_data SET name='$name', surname='$surname', fathes_name='$fathersname', birthdate='$date', placeofdate='$placeofdate', sex='$sex', familystate='$familystate', email='$email', url='$url' WHERE username='$username'"&#41;;
			$count = mysql_num_rows&#40;$result&#41;; 
			
			if&#40;$count&#41;&#123;
				header &#40;"location&#58; personal_data.php"&#41;;
			&#125; else &#123;
				echo "Η εγγραφή δεν ολοκληρώθηκε με επιτυχία! <a href='personal_data.php'>επιστροφή</a>";
			&#125;
		&#125;
?>
</body>
</html>
<?php
	&#125;
?>
Στον παραπάνω κώδικα παίρνω σφάλμα...

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in .... line 70
και μου εμφανίζει από κάτω...
Η εγγραφή δεν ολοκληρώθηκε με επιτυχία! επιστροφή

η γραμμή 70 είναι η:

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

$count = mysql_num_rows&#40;$result&#41;; 
υπάρχει μήπως κάποιο πρόβλημα με το query;;;;;

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πρόβλημα με ενημέρωση πίνακα....

Δημοσίευση από dva_dev » 30 Δεκ 2011 18:33

το mysql_query("update user_data... κ.λπ") βάλε το σε σχόλια και πρόσθεσε πριν το mysql_num_rows() τα

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

$query = "update user_data ....";
mysql_query&#40;$query&#41; or die&#40;$query . "\n<br/>\n".mysql_error&#40;&#41;&#41;;
Οταν βγάλει error πες μας ποιό είναι το μήνυμα λάθους που σου βγάζει και δοκίμασε να τρέξεις το query που βλέπεις με το χέρι (π.χ. από το mysql workbench ή όποιο έχεις).

rafinos
Δημοσιεύσεις: 301
Εγγραφή: 15 Μάιος 2011 00:20
Επικοινωνία:

Πρόβλημα με ενημέρωση πίνακα....

Δημοσίευση από rafinos » 30 Δεκ 2011 22:18

Αντί για fathers γράφω fathes..............

Τώρα που το ξαναδοκίμασα με τον δικό μου τρόπο είδα ότι γίνεται κανονικά η ενημέρωση στη βάση απλά μου βγάζει σφάλμα στο $count....

έτσι δουλεύει κανονικά:

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

//Ενημέρωση δεδομένων
			$result = mysql_query&#40;"UPDATE user_data SET name='$name', surname='$surname', fathers_name='$fathersname', birthdate='$date', placeofdate='$placeofdate', sex='$sex', familystate='$familystate', email='$email', url='$url' WHERE username='$username'"&#41;;
			
			if&#40;$result > 0&#41;&#123;
				header &#40;"location&#58; personal_data.php"&#41;;
			&#125; else &#123;
				echo "Η εγγραφή δεν ολοκληρώθηκε με επιτυχία! <a href='personal_data.php'>επιστροφή</a>";
			&#125;
αλλά για ποιον λόγο γίνεται αυτό :(

αν το κάνω έτσι με τον τρόπο που μου είπες δουλεύει....

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

$query = "UPDATE user_data SET name='$name', surname='$surname', fathers_name='$fathersname', birthdate='$date', placeofdate='$placeofdate', sex='$sex', familystate='$familystate', email='$email', url='$url' WHERE username='$username'";
			mysql_query&#40;$query&#41; or die&#40;$query . "\n<br/>\n".mysql_error&#40;&#41;&#41;;
			$count = mysql_affected_rows&#40;&#41;;
			
			if&#40;$count&#41;&#123;
				header &#40;"location&#58; personal_data.php"&#41;;
			&#125; else &#123;
				echo "Η εγγραφή δεν ολοκληρώθηκε με επιτυχία! <a href='personal_data.php'>επιστροφή</a>";
			&#125;
το mysql_num_rows όλο λάθος μου το βγάζει...

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πρόβλημα με ενημέρωση πίνακα....

Δημοσίευση από dva_dev » 31 Δεκ 2011 09:09

Αντί για fathers γράφω fathes...
Θέλει λίγο προσοχή στο τι γράφεις...
rafinos έγραψε:το mysql_num_rows όλο λάθος μου το βγάζει...
http://php.net/manual/en/function.mysql-num-rows.php
int mysql_num_rows ( resource $result )
Retrieves the number of rows from a result set. This command is only valid for statements like SELECT or SHOW that return an actual result set. To retrieve the number of rows affected by a INSERT, UPDATE, REPLACE or DELETE query, use mysql_affected_rows().
Οταν όλα τα άλλα αποτύχουν, ρίξε μια ματιά στο manual. :D

[edit]Δεν είχα πει τίποτα για mysql_affected_rows. Αλλά καλό είναι όταν παίρνεις κώδικα να μην μένεις μόνο στο copy/paste[/edit]

rafinos
Δημοσιεύσεις: 301
Εγγραφή: 15 Μάιος 2011 00:20
Επικοινωνία:

Πρόβλημα με ενημέρωση πίνακα....

Δημοσίευση από rafinos » 31 Δεκ 2011 15:36

Να σου πω την αληθεια το ειχα καταλαβει αλλα δεν ξερω γτ συνεχιζα :-P
Το ξερω οτι δεν ειπες τπτ για το affected απλα το προσθεσα εγω :-P
Ευχαριστω για τη βοηθεια! Καλη χρονια με υγεια σου ευχομαι!

Απάντηση

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

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

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