Λαθος στο mysql_fetch_array()

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

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

Απάντηση
santiago84
Δημοσιεύσεις: 13
Εγγραφή: 03 Δεκ 2012 12:05

Λαθος στο mysql_fetch_array()

Δημοσίευση από santiago84 » 05 Δεκ 2012 14:19

Καλησπερα. εχω τον εξης κωδικα:

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

<?php
	$con = mysql_connect&#40;"localhost","root",""&#41;;
	if &#40;!$con&#41;
		die&#40;'Could not connect&#58; ' . mysql_error&#40;&#41;&#41;;
	mysql_query&#40;"SET NAMES 'greek'" &#41; ;	
	mysql_select_db&#40;"exams",$con&#41;;
	$value1 = $_GET&#91;"user_name"&#93;;
	$value2 = $_GET&#91;"password"&#93;;
	$sql ="select * from users where users_username= $value1 and users_password= $value2 limit 1";
	$res = mysql_query&#40;$sql,$con&#41;; 
	$row = mysql_fetch_array&#40;$res&#41;;
	if&#40;$row != null&#41;
	&#123;
		echo "<h2>";
		echo 'Η εγγραφή βρέθηκε με τα παρακάτω στοιχεία!!!';
		echo "</h2>";
		echo "<br>";
		echo "<br>";
		echo "<br>";
		echo "<table>";
		echo '<table border="1" width="600">';
		echo "<tr>";
		echo "<th>"."User_name"."</th>";
		echo "<th>"."Password"."</th>";
		echo "<th>"."'Ονομα"."</th>";
		echo "<th>"."Επίθετο"."</th>";
		echo "<th>"."Τηλέφωνο"."</th>";
		echo "<th>"."e-mail"."</th>";
		echo "</tr>";
		echo "<tr>";
		echo "<td>".$row&#91;"users_username"&#93;."</td>";
		echo "<td>".$row&#91;"users_password"&#93;."</td>";
		echo "<td>".$row&#91;"users_firstname"&#93;."</td>";
		echo "<td>".$row&#91;"users_lastname"&#93;."</td>";
		echo "<td>".$row&#91;"users_phone"&#93;."</td>";
		echo "<td>".$row&#91;"users_email"&#93;."</td>";
		echo "</tr>";
		echo "</table>";
		echo "<br>";
		echo "<br>";
		echo "<a href='user_repair.html'> <b> Αλλαγή στοιχείων </b> </a>";
		echo "<br>";
		echo "<br>";
		echo "<a href='qa.html'> <b> Μεταφορά στην σελίδα των ερωτήσεων</b> </a>";
		echo "<br>";
		echo "<br>";
		echo "<a href='user_selection.html'> <b> Μεταφορά στην κεντρική σελίδα </b> </a>";
	&#125;
	else
	&#123;
		echo "<br>";
		echo 'Η εγγραφή  ΔΕΝ βρέθηκε!!';
		echo "<br>";
		echo "<br>";
		echo "<a href='user_selection.html'> <b> Μεταφορά στην κεντρική σελίδα </b> </a>";
	&#125;
	mysql_close&#40;$con&#41;; 
?>

Ο κωδικας συνδεεται και με ενα html αρχειο οπου γινεται αναζητηση ενος χρηστη.ενω στο html κανει καποιους ελεγχους αν τα πεδια username και password ειναι κενα να εμφανιζει μηνυμα λαθους αυτο συνεχιζει και με βγαζει πως εχω λαθος στο mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\user_entrance.php .τι κανω λαθος;

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Λαθος στο mysql_fetch_array()

Δημοσίευση από korgr » 05 Δεκ 2012 15:29

Δοκίμασε έτσι:

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

$sql ="select * from users where users_username='$value1' and users_password='$value2' limit 1";

santiago84
Δημοσιεύσεις: 13
Εγγραφή: 03 Δεκ 2012 12:05

Λαθος στο mysql_fetch_array()

Δημοσίευση από santiago84 » 06 Δεκ 2012 12:40

Σ'ευχαριστω korgr. με βοηθησε ααρκετα ο κωδικας. :D

santiago84
Δημοσιεύσεις: 13
Εγγραφή: 03 Δεκ 2012 12:05

Λαθος στο mysql_fetch_array()

Δημοσίευση από santiago84 » 07 Δεκ 2012 14:26

Εχω ενα αλλο προβλημα τωρα ομως.

κανω εισαγωγη εναν νεο χρηστη στην βαση και θελω να κανει ελεγχο αν υπαρχει ηδη το νεο username που δινει ο νεος χρηστης.

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

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-7">
	</head>
	
	
	<body>
		
	</body>
</html>


<?php
	session_start&#40;&#41;;
	$_SESSION&#91;"last_name"&#93;=$_GET&#91;"last_name"&#93;;
	$_SESSION&#91;"first_name"&#93;=$_GET&#91;"first_name"&#93;;
	$_SESSION&#91;"user_name"&#93;=$_GET&#91;"user_name"&#93;;
	$_SESSION&#91;"password"&#93;=$_GET&#91;"password"&#93;;
	$_SESSION&#91;"e_mail"&#93;=$_GET&#91;"e_mail"&#93;;
	$_SESSION&#91;"phone"&#93;=$_GET&#91;"phone"&#93;;
	
	$con=mysql_connect&#40;"localhost","root",""&#41;;
	if&#40;!$con&#41;
		die&#40;'could not connect&#58; ' .mysql_error&#40;&#41;&#41;;
	
	mysql_query&#40;"SET NAMES 'greek'"&#41;;
	
	mysql_select_db&#40;"exams",$con&#41;;
	$sql="insert into users &#40;users_username,users_password,users_lastname,users_firstname,users_email,users_phone,users_property&#41; 
		values&#40;'".$_GET&#91;"user_name"&#93;."',
			   '".$_GET&#91;"password"&#93;."',
			   '".$_GET&#91;"last_name"&#93;."',
			   '".$_GET&#91;"first_name"&#93;."',
			   '".$_GET&#91;"e_mail"&#93;."',
			   '".$_GET&#91;"phone"&#93;."',
			   'χρήστης'&#41;";
	
	if&#40;new_user_name == old_user_name&#41;
	&#123;
		echo"<br>";
		echo"<br>";
		echo "Το username που επιλέξατε υπάρχει ηδη. Παρακαλώ εισάγεται άλλο.";
		echo"<br>";
		echo"<br>";
		echo "<a href='user_add.html'> <b> Επιστροφή στην σελίδα αναζήτησης χρήστη</b> </a>";
	
	&#125;
	else
	&#123;
		echo "Επιτυχής εγγραφή";
		echo"<br>";
		echo"<br>";
		echo "<a href='user_selection_question.html'> <b> Μεταφορά στην σελίδα των ερωτήσεων </b> </a>";
		echo"<br>";
		echo"<br>";
		echo "<a href='user_selection.html'> <b> Επιστροφή στην κεντρική σελίδα </b> </a>";
		echo"<br>";
	&#125;
	mysql_query&#40;$sql,$con&#41;;
	mysql_close&#40;$con&#41;;
	
?>
στην if απλα εχω βαλει προχειρα τα new_user_name και old_user_name.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Λαθος στο mysql_fetch_array()

Δημοσίευση από korgr » 07 Δεκ 2012 22:11

Πριν κάνεις το insert κάνε ένα select για την εγγραφή με username ίσο με το νέο username
Αν σου επιστρέψει row βγάλε το μήνυμα αποτυχίας διαφορετικά κανε το insert

santiago84
Δημοσιεύσεις: 13
Εγγραφή: 03 Δεκ 2012 12:05

Λαθος στο mysql_fetch_array()

Δημοσίευση από santiago84 » 08 Δεκ 2012 14:19

Η βοηθεια σου ειναι πολυτιμη. :D

santiago84
Δημοσιεύσεις: 13
Εγγραφή: 03 Δεκ 2012 12:05

Λαθος στο mysql_fetch_array()

Δημοσίευση από santiago84 » 10 Δεκ 2012 15:48

γεια σου και παλι. τωρα εχω το εξης προβλημα.
θελω να κανω αντικατασταση των στοιχειων ενος χρηστη και να αποθηκευονται στην βαση.
ετσι οπως το εχω γραμμενο κανει αντικατασταση σε ολους τους χρηστες ομως.
πως μπορω να το κανω ωστε να γινεται στον συγκεκριμενο χρηστη;

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

<html>
	<head>
		<title>Αντικατάσταση στοιχείων</title>
		<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-7">
	</head>
	
	
	<body>
		
	</body>
</html>

<?php
	session_start&#40;&#41;;
	$_SESSION&#91;"user_name_new"&#93;=$_GET&#91;"user_name_new"&#93;;
	$_SESSION&#91;"password_new"&#93;=$_GET&#91;"password_new"&#93;;
	$_SESSION&#91;"first_name_new"&#93;=$_GET&#91;"first_name_new"&#93;;
	$_SESSION&#91;"last_name_new"&#93;=$_GET&#91;"last_name_new"&#93;;
	$_SESSION&#91;"e_mail_new"&#93;=$_GET&#91;"e_mail_new"&#93;;
	$_SESSION&#91;"phone_new"&#93;=$_GET&#91;"phone_new"&#93;;
	
	$con = mysql_connect&#40;"localhost","root",""&#41;;
	if &#40;!$con&#41;
		die&#40;'Could not connect&#58; ' . mysql_error&#40;&#41;&#41;;
	mysql_query&#40;"SET NAMES 'greek'" &#41; ;
	
	mysql_select_db&#40;"exams",$con&#41;;
	
	$usr_new=$_GET&#91;"user_name_new"&#93;;
	$pwd_new=$_GET&#91;"password_new"&#93;;
	$fnm_new=$_GET&#91;"first_name_new"&#93;;
	$lst_new=$_GET&#91;"last_name_new"&#93;;
	$eml_new=$_GET&#91;"e_mail_new"&#93;;
	$phn_new=$_GET&#91;"phone_new"&#93;;
	$sql_s ="select * from users where users_username='$usr_new' limit 1";
	$res=mysql_query&#40;$sql_s,$con&#41;;
	$row=mysql_fetch_array&#40;$res&#41;;
	if&#40;$row != null&#41;  
	&#123;
		echo "<center>";
		echo "<h2>Ανεπιτυχής αντικατάσταση στοιχείων. Το username υπάρχει ήδη.</h2>";
		echo "<br>";
		echo "<br>";
		echo "<br>";
		echo "<h3><a href='user_entrance.html'> <b> Μεταφορά στην κεντρική σελίδα </b> </a></h3>";
		echo"<br/>";
		echo"<br/>";
		echo "<h3><a href='user_repair.html'> <b> Επιστροφή στην Αντικατάσταση στοιχείων χρήστη </b> </a></h3>";
		echo "</center>";
	
		
	&#125;
	else //if&#40;mysql_affected_rows&#40;&#41; > 0&#41;
	&#123;
		mysql_query&#40;"update users set users_username ='$usr_new'  "&#41;;  
		mysql_query&#40;"update users set users_password ='$pwd_new'   "&#41;;
		mysql_query&#40;"update users set users_firstname ='$fnm_new'   "&#41;;
		mysql_query&#40;"update users set users_lastname ='$lst_new'   "&#41;;
		mysql_query&#40;"update users set users_email ='$eml_new'   "&#41;;
		mysql_query&#40;"update users set users_phone ='$phn_new'   "&#41;;
		
		
		echo "<center>";
		echo "<h2>Επιτυχής αντικατάσταση στοιχείων.</h2>";
		echo "<br>";
		echo "<br>";
		echo "<br>";
		echo "<h3><a href='user_selection_question.html'> <b> Μεταφορά στην σελίδα των ερωτήσεων</b> </a></h3>";
		echo "<br>";
		echo "<br>";
		echo "<h3><a href='user_entrance.html'> <b> Επιστροφή στην αναζήτηση χρήστη</b> </a></h3>";
		echo "<br>";
		echo "<br>";
		echo "<h3><a href='user_selection.html'> <b> Μεταφορά στην κεντρική σελίδα </b> </a></h3>";
		echo "</center>";
	&#125;	
	mysql_close&#40;$con&#41;;
?>


santiago84
Δημοσιεύσεις: 13
Εγγραφή: 03 Δεκ 2012 12:05

Λαθος στο mysql_fetch_array()

Δημοσίευση από santiago84 » 11 Δεκ 2012 12:02

το διορθωσα καπως.αλλα παλι δεν ειναι τελειως σωστα.
τον ελεγχο για το αν υπαρχει το username τον κανει κανονικα.
αν ομως βαλω νεο username με βγαζει μονο error while update user info (το μηνυμα λαθους που του εχω δωσει).

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

<?php
   session_start&#40;&#41;;
   $_SESSION&#91;"user_name_new"&#93;=$_GET&#91;"user_name_new"&#93;;
   $_SESSION&#91;"password_new"&#93;=$_GET&#91;"password_new"&#93;;
   $_SESSION&#91;"first_name_new"&#93;=$_GET&#91;"first_name_new"&#93;;
   $_SESSION&#91;"last_name_new"&#93;=$_GET&#91;"last_name_new"&#93;;
   $_SESSION&#91;"e_mail_new"&#93;=$_GET&#91;"e_mail_new"&#93;;
   $_SESSION&#91;"phone_new"&#93;=$_GET&#91;"phone_new"&#93;;
   
   $con = mysql_connect&#40;"localhost","root",""&#41;;
   if &#40;!$con&#41;
      die&#40;'Could not connect&#58; ' . mysql_error&#40;&#41;&#41;;
   mysql_query&#40;"SET NAMES utf-8 "&#41; ;
   
   mysql_select_db&#40;"exams",$con&#41;;
   
        $res = mysql_query&#40;" SELECT COUNT&#40;*&#41; FROM users WHERE users_username = '".$_GET&#91;'user_name_new'&#93;."' ",$con&#41;;
        $counted = mysql_fetch_array&#40;$res&#41;;
        if&#40;$counted&#91;0&#93; > 0&#41;
		&#123;
			echo "<center>";
			echo "<h2>Ανεπιτυχής αντικατάσταση στοιχείων. Το username υπάρχει ήδη.</h2>";
			echo "<br>";
			echo "<br>";
			echo "<br>";
			echo "<h3><a href='user_entrance.html'> <b> Μεταφορά στην κεντρική σελίδα </b> </a></h3>";
			echo"<br/>";
			echo"<br/>";
			echo "<h3><a href='user_repair.html'> <b> Επιστροφή στην Αντικατάσταση στοιχείων χρήστη </b> </a></h3>";
			echo "</center>";
		&#125;
		else 
		&#123;
            mysql_query&#40;" UPDATE users SET users_password ='$_GET&#91;password_new&#93;' , users_firstname ='$_GET&#91;first_name_new&#93;' , users_lastname ='$_GET&#91;last_name_new&#93;' ,
                        users_email ='$_GET&#91;e_mail_new&#93;' , users_phone ='$_GET&#91;phone_new&#93;'
							WHERE users_username ='$_GET&#91;user_name_new&#93;' ",$con&#41;;
             
			if&#40;mysql_affected_rows&#40;&#41; > 0&#41; 
			&#123;
				echo "<center>";
				echo "<h2>Επιτυχής αντικατάσταση στοιχείων.</h2>";
				echo "<br>";
				echo "<br>";
				echo "<br>";
				echo "<h3><a href='user_selection_question.html'> <b> Μεταφορά στην σελίδα των ερωτήσεων</b> </a></h3>";
				echo "<br>";
				echo "<br>";
				echo "<h3><a href='user_entrance.html'> <b> Επιστροφή στην αναζήτηση χρήστη</b> </a></h3>";
				echo "<br>";
				echo "<br>";
				echo "<h3><a href='user_selection.html'> <b> Μεταφορά στην κεντρική σελίδα </b> </a></h3>";
				echo "</center>";
            &#125;
            else
                echo 'error while update user info';
		&#125;   
   mysql_close&#40;$con&#41;;

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Λαθος στο mysql_fetch_array()

Δημοσίευση από Apostolis_38 » 11 Δεκ 2012 14:40

Αυτό:

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

WHERE users_username ='$_GET&#91;user_name_new&#93;' "
ισχύει;

Δηλαδή θα μπορέσει να κάνει update ένα όνομα που μόλις καταχωρήθηκε από τον χρήστη;
Λογικά το όνομα αυτό δεν θα υπάρχει στη βάση αφού τώρα το δίνει ο χρήστης.
Καλύτερα να παίξεις με το id ή κάποιο άλλο unique field.


Καλό είναι μέχρι να τελειώσεις μια εφαρμογή και τσεκάρεις οτι όλα δουλεύουν σωστά, να μην χρησιμοποιείς custom μηνύματα ή να χρησιμοποιείς και το mysql_error ή

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

ini_set&#40;'display_errors','1'&#41;;
error_reporting&#40;E_ALL&#41;;
στα αρχεία σου ώστε να μπορείς να δεις τι λάθος υπάρχει.

Απάντηση

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

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

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