Αναζήτηση στη βάση και διαγραφή χρήστη

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

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

Απάντηση
tsalaki
Δημοσιεύσεις: 31
Εγγραφή: 09 Μαρ 2009 20:27

Αναζήτηση στη βάση και διαγραφή χρήστη

Δημοσίευση από tsalaki » 18 Αύγ 2011 13:13

Καλησπέρα σε όλους,

Προσπαθώ να κάνω το εξής:
Να φτιάξω ένα search με βάση το επώνυμο του χρήστη που θα μου επιστρέφει σε έναν πίνακα τα αποτελέσματα από τη βάση.
Για κάθε αποτέλεσμα - χρήστη που θα επιστρέφει η αναζήτηση θέλω να υπάρχει ένα λινκ (κουμπί ή ότιδήποτε) που θα επιτρέπει τη διαγραφή του εκάστοτε χρήστη από τη βάση. Βρήκα ένα script στο διαδίκτυο που κάνει την αναζήτηση και την διαγραφή από τη βάση με χρήση ajax το προσάρμοσα στα δεδομένα μου αλλά δεν μου τρέχει καν την αναζήτηση.
Θα μπορούσα να σας στείλω τον κώδικα να μου πείτε τι δεν γίνεται σωστά;Επειδή ajax δεν γνωρίζω ώστε να εντοπίσω τυχόν λάθη. Επιπλέον δεν ξέρω αν δεν τρέχει η αναζήτηση επειδή στη βάση τα επώνυμα των χρηστών είναι με ελληνικούς χαρακτήρες! :-?

Άβαταρ μέλους
Christianago
Δημοσιεύσεις: 332
Εγγραφή: 12 Νοέμ 2009 13:36

Αναζήτηση στη βάση και διαγραφή χρήστη

Δημοσίευση από Christianago » 18 Αύγ 2011 20:52

Ναι μπορεις να μας δειξεις τον κωδικα σου. Αν γινεται και σε ξεχωριστα code tags για html, javascript, php κι οτι αλλο χρησιμοποιεις για μεγαλυτερη ευκολια στην αναγνωση.

tsalaki
Δημοσιεύσεις: 31
Εγγραφή: 09 Μαρ 2009 20:27

Αναζήτηση στη βάση και διαγραφή χρήστη

Δημοσίευση από tsalaki » 19 Αύγ 2011 01:05

Αρχικά έχω το αρχείο που περιέχει το πεδίο της αναζήτησης καθώς και την περιοχή κάτω από αυτό που θέλω να εμφανίζονται τα αποτελέσματα:

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

<script language="javascript">
$&#40;document&#41;.ready&#40;function&#40;&#41;&#123;
	//show loading bar
	function showLoader&#40;&#41;&#123;
		$&#40;'.search-background'&#41;.fadeIn&#40;200&#41;;
	&#125;
	
	//hide loading bar
	function hideLoader&#40;&#41;&#123;
		$&#40;'#sub_cont'&#41;.fadeIn&#40;1500&#41;;
		$&#40;'.search-background'&#41;.fadeOut&#40;200&#41;;
	&#125;;
	$&#40;'#search'&#41;.keyup&#40;function&#40;e&#41; &#123;
      if&#40;e.keyCode == 13&#41; &#123;
      	showLoader&#40;&#41;;
		$&#40;'#sub_cont'&#41;.fadeIn&#40;1500&#41;;
		$&#40;"#content #sub_cont"&#41;.load&#40;"search_user.php?val=" + $&#40;"#search"&#41;.val&#40;&#41;, hideLoader&#40;&#41;&#41;;
      &#125;
      &#125;&#41;;
	$&#40;".searchBtn"&#41;.click&#40;function&#40;&#41;&#123;
		//show the loading bar
		showLoader&#40;&#41;;
		$&#40;'#sub_cont'&#41;.fadeIn&#40;1500&#41;;
		$&#40;"#content #sub_cont"&#41;.load&#40;"search_user.php?val=" + $&#40;"#search"&#41;.val&#40;&#41;, hideLoader&#40;&#41;&#41;;
	&#125;&#41;;

&#125;&#41;;
</script>
Search interface:

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

<div class="textBox">
        <input type="text" value="" maxlength="100" name="searchBox" id="search">
		<div class="searchBtn">
		&nbsp;
		</div>
    </div>
	<br clear="all" />
	<div id="content">
		<div class="search-background">
			<label><img src="../gfx/loader.gif" alt="" /></label>
		</div>
		<div id="sub_cont">

		</div>

	</div>
Στη συνέχεια ακολουθεί το αρχείο search_user.php όπου εμφανίζει τα αποτελέσματα της αναζήτησης. Δηλαδή τον εκάστοτε χρήστη μαζί με όλες τις πληροφορίες που υπάρχουν για αυτόν στη βάση. Αυτά θέλω να εμφανίζονται σε ένα πίνακα που θα έχει και ένα επιπλέον πεδίο αυτό της διαγραφής της εκάστοτε εγγραφής στον πίνακα.

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

<?php

//Start session
	session_start&#40;&#41;;
	
	//Include database connection details
	require_once&#40;'config.php'&#41;;
	
	//Array to store validation errors
	$errmsg_arr = array&#40;&#41;;
	
	//Validation error flag
	$errflag = false;
	
	//Connect to mysql server
	$link = mysql_connect&#40;DB_HOST, DB_USER, DB_PASSWORD&#41;;
	mysql_query&#40;"set names utf8"&#41;;
	if&#40;!$link&#41; &#123;
		die&#40;'Αποτυχία σύνδεσης με τον server&#58; ' . mysql_error&#40;&#41;&#41;;
	&#125;
	
	//Select database
	$db = mysql_select_db&#40;DB_DATABASE&#41;;
	if&#40;!$db&#41; &#123;
		die&#40;"Αδυναμία σύνδεσης με τη βάση δεδομένων"&#41;;
	&#125;
	
function checkValues&#40;$value&#41;
&#123;
	 // Use this function on all those values where you want to check for both sql injection and cross site scripting
	 //Trim the value
	 $value = trim&#40;$value&#41;;
	 
	// Stripslashes
	if &#40;get_magic_quotes_gpc&#40;&#41;&#41; &#123;
		$value = stripslashes&#40;$value&#41;;
	&#125;
	
	 // Convert all &lt;, &gt; etc. to normal html and then strip these
	 $value = strtr&#40;$value,array_flip&#40;get_html_translation_table&#40;HTML_ENTITIES&#41;&#41;&#41;;
	
	 // Strip HTML Tags
	 $value = strip_tags&#40;$value&#41;;
	
	// Quote the value
	$value = mysql_real_escape_string&#40;$value&#41;;
	return $value;
	
&#125;	

$rec = checkValues&#40;$_REQUEST&#91;'val'&#93;&#41;;
//get table contents
if&#40;$rec&#41;&#123;
	$sql = "SELECT kwdikos_user as ID, epwnimo_user as surname, onoma_user as name, e.perigrafi_eidikotitas as special, username, password, n.onoma_nos as hospital, dieuthinsi_user as address, tilefwno_user as phone
	FROM users as u, eidikotita as e, nosokomeio as n
	WHERE epwnimo_user like '%$rec%'
	AND u.kwdikos_eidikotitas=e.kwdikos_eidikotitas
	AND u.kwd_nos_erg=n.kwdikos_nos";
&#125;

$rsd = mysql_query&#40;$sql&#41; die&#40;'Error'.mysql_error&#40;&#41;&#41;;;
$total =  mysql_num_rows&#40;$rsd&#41;;

if &#40;$total>0&#41;
&#123;
	echo '<table>';
	echo '<tr><th>ID</th><th>Επώνυμο</th><th>Όνομα</th><th>Ειδικότητα</th><th>Όνομα χρήστη</th><th>Κωδικός πρόσβασης</th><th>Νοσοκομείο</th><th>Διεύθυνση</th><th>Τηλέφωνο</th><th>Διαγραφή</th></tr>';
	while &#40;$row = mysql_fetch_assoc&#40;$rsd&#41;&#41;
	&#123;
		echo '<tr><td>'.$row&#91;'ID'&#93;.'</td><td>'.$row&#91;'surname'&#93;.'</td><td>'.$row&#91;'name'&#93;.'</td><td>'..$row&#91;'special'&#93;.'</td><td>'.$row&#91;'username'&#93;.'</td><td>'.$row&#91;'password'&#93;.'</td><td>'.$row&#91;'hospital'&#93;.'</td><td>'.$row&#91;'address'&#93;.'</td><td>'.$row&#91;'phone'&#93;.'</td><td><a href="delete_user.php?feed='.$row&#91;'ID'&#93;.' ">Διαγραφή</a></td></tr>';
	&#125;
echo '</table>';
&#125;
else&#123; echo '<div class="no-rec">Δεν βρέθηκε καμία εγγραφή στη βάση δεδομένων!</div>';&#125;
?>
Και τέλος έχω το αρχείο delete_user.php όπου θέλω να διαγράφει τον χρήστη που έχει επιλέξει ο διαχειριστής:

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

<?php 
	//Start session
	session_start&#40;&#41;;
	
	//Include database connection details
	require_once&#40;'config.php'&#41;;
	
	//Array to store validation errors
	$errmsg_arr = array&#40;&#41;;
	
	//Validation error flag
	$errflag = false;
	
	//Connect to mysql server
	$link = mysql_connect&#40;DB_HOST, DB_USER, DB_PASSWORD&#41;;
	mysql_query&#40;"set names utf8"&#41;;
	if&#40;!$link&#41; &#123;
		die&#40;'Αποτυχία σύνδεσης με τον server&#58; ' . mysql_error&#40;&#41;&#41;;
	&#125;
	
	//Select database
	$db = mysql_select_db&#40;DB_DATABASE&#41;;
	if&#40;!$db&#41; &#123;
		die&#40;"Αδυναμία σύνδεσης με τη βάση δεδομένων"&#41;;
	&#125;
if&#40;isset&#40;$_REQUEST&#91;'feed'&#93;&#41;&#41;&#123;
                $feed=trim&#40;$_REQUEST&#91;'feed'&#93;&#41;;
                  $feed=mysql_real_escape_string&#40;$feed&#41;; // to use this function you need to set up connection with mysql first.
                   $sql="delete from users where kwdikos_user=$feed";
                   $result=mysql_query&#40;$sql&#41; or die&#40;'Error'.mysql_error&#40;&#41;&#41;;
                     if&#40;$result&#41;&#123;
                      echo 'Ο χρήστης διαγράφηκε με επιτυχία από τη βάση δεδομένων!';
                       &#125;
                   mysql_close&#40;&#41;;
                &#125;
               else&#123;
                 echo 'Τίποτα  προς εμφάνιση!';  
                &#125;               
				
?>
Αυτός είναι ο κώδικάς μου..Οποιαδήποτε βοήθεια θα ήταν πραγματικά πολύτιμη για μένα..

Άβαταρ μέλους
Christianago
Δημοσιεύσεις: 332
Εγγραφή: 12 Νοέμ 2009 13:36

Αναζήτηση στη βάση και διαγραφή χρήστη

Δημοσίευση από Christianago » 19 Αύγ 2011 17:14

Το ετρεξα σε μενα, εκανα βεβαια διαφορες αλλαγες για να το προσαρμοσω στα δικα μου δεδομενα.
Λοιπον η jquery δουλευει αψογα δε χρειαζονται αλλαγες. Ουτε και στην html.

Στην php αυτη η γραμμη:

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

echo '<tr><td>'.$row&#91;'ID'&#93;.'</td><td>'.$row&#91;'surname'&#93;.'</td><td>'.$row&#91;'name'&#93;.'</td><td>'..$row&#91;'special'&#93;.'</td><td>'.$row&#91;'username'&#93;.'</td><td>'.$row&#91;'password'&#93;.'</td><td>'.$row&#91;'hospital'&#93;.'</td><td>'.$row&#91;'address'&#93;.'</td><td>'.$row&#91;'phone'&#93;.'</td><td><a href="delete_user.php?feed='.$row&#91;'ID'&#93;.' ">Διαγραφή</a></td></tr>'; 
γινεται:

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

echo '<tr><td>'.$row&#91;'ID'&#93;.'</td><td>'.$row&#91;'surname'&#93;.'</td><td>'.$row&#91;'name'&#93;.'</td><td>'.$row&#91;'special'&#93;.'</td><td>'.$row&#91;'username'&#93;.'</td><td>'.$row&#91;'password'&#93;.'</td><td>'.$row&#91;'hospital'&#93;.'</td><td>'.$row&#91;'address'&#93;.'</td><td>'.$row&#91;'phone'&#93;.'</td><td><a href="delete_user.php?feed='.$row&#91;'ID'&#93;.' ">Διαγραφή</a></td></tr>'; 
Ειχε μια παραπανω τελεια.

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

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

require_once&#40;'config.php'&#41;; 

tsalaki
Δημοσιεύσεις: 31
Εγγραφή: 09 Μαρ 2009 20:27

Αναζήτηση στη βάση και διαγραφή χρήστη

Δημοσίευση από tsalaki » 19 Αύγ 2011 21:12

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

Άβαταρ μέλους
Christianago
Δημοσιεύσεις: 332
Εγγραφή: 12 Νοέμ 2009 13:36

Αναζήτηση στη βάση και διαγραφή χρήστη

Δημοσίευση από Christianago » 19 Αύγ 2011 21:23

Πρεπει να συμπεριλαβεις στο html το javascript αρχειο συν τη βιβλιοθηκη jquery (εδω ειναι η καινουρια: http://code.jquery.com/jquery-1.6.2.min.js).
Εγω οταν τρεχω, πχ. βαζω ενα ονομα και παταω το enter. Και λειτουργει οκ. Βαλε ενα echo εδω:

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

echo $rec = checkValues&#40;$_REQUEST&#91;'val'&#93;&#41;; 
και παντα enter οταν πληκτρολογησεις κατι στο textbox να δεις οτι οντως επικοινωνει με το php.

tsalaki
Δημοσιεύσεις: 31
Εγγραφή: 09 Μαρ 2009 20:27

Αναζήτηση στη βάση και διαγραφή χρήστη

Δημοσίευση από tsalaki » 20 Αύγ 2011 00:01

Σε ευχαριστώ πάρα πολύ για την πολύτιμη βοήθειά σου..Μου δουλεύει κανονικά..Θέλει κάποιες βελτιώσεις από πλευράς μορφοποίησης του πίνακα αλλά είναι οκ.

Σε ευχαριστώ πάρα πολύ,
Καλή συνέχεια!

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

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

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