Συνάρτηση

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

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

Απάντηση
dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Συνάρτηση

Δημοσίευση από dpa » 22 Οκτ 2008 13:44

Παιδιά μπορεί κάποιος να δει την σύνταξη αυτής της συνάρτησης
Δεν μου βγάζει κανένα σφάλμα ούτε κάνει εισαγωγή τα στοιχεία στην βάση.
Αν σβήσω την συνάρτηση και δεν κάνω έλεγχο το ΑΦΜ τα δεδομένα καταχωρούνται επιτυχώς.

Μπορεί κάποιος να βοηθήση τι είναι λάθος

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

function afmcheck($num) {
	global $checkafm_result, $check_afm_num_rows, $conn;
	$sql = "SELECT afm FROM customers WHERE afm = '".$num."' ";
	$checkafm_result = mysql_query($sql,$conn);
	$ckeck_afm_num_rows = mysql_num_rows($checkafm_result) or die(mysql_error());
	return $checkafm_result;
	return $check_afm_num_rows;
} //end function afmcheck
Αυτή η συνάρτηση ελέγχει αν υπάρχει καταχωρημένο το ΑΦΜ που στέλνουμε σε αυτήν.

Αυτο είναι το αρχείο το οποίο στέλνει τα δεδομένα στην βάση.

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

<?php

error_reporting&#40;E_ALL&#41;;
ini_set&#40;'display_errors',true&#41;;

include&#40;'conn.php'&#41;;
include&#40;'function.php'&#41;;

$name = $_POST&#91;'name'&#93;;
$lastname = $_POST&#91;'lastname'&#93;;
$fathername = $_POST&#91;'fathername'&#93;;
$address = $_POST&#91;'address'&#93;;
$city = $_POST&#91;'city'&#93;;
$nomos = $_POST&#91;'id_nomos'&#93;;
$postal_code = $_POST&#91;'postal_code'&#93;;
$afm = $_POST&#91;'afm'&#93;;
$ar_tautotitas = $_POST&#91;'ar_tautotitas'&#93;;
$phone_home = $_POST&#91;'phone_home'&#93;;
$phone_work = $_POST&#91;'phone_work'&#93;;
$mobile = $_POST&#91;'mobile'&#93;;

check_var_form&#40;$name&#41;;
check_var_form&#40;$lastname&#41;;
check_var_form&#40;$fathername&#41;;
check_var_form&#40;$address&#41;;
check_var_form&#40;$city&#41;;
check_var_form&#40;$nomos&#41;;
check_var_form&#40;$postal_code&#41;;
check_var_form&#40;$afm&#41;;
check_var_form&#40;$ar_tautotitas&#41;;
check_var_form&#40;$phone_home&#41;;
check_var_form&#40;$phone_work&#41;;
check_var_form&#40;$mobile&#41;; 

if &#40; !isset &#40; $_POST&#91;'Submit'&#93; &#41;  &#41; &#123;
		header&#40;"Location&#58; customers.php"&#41;;
		exit;
&#125;
else &#123;
	if&#40; isset&#40;$name&#41; && empty&#40;$name&#41; &#41; &#123;
		die&#40;'Kala eisai m***kas !!! Exeis afisei to pedio onoma keno'.mysql_error&#40;&#41; &#41;;		
	&#125;
	
	if&#40; isset&#40;$lastname&#41; && empty&#40;$lastname&#41; &#41; &#123;
		die&#40;'E den se perimena kai toso exeis kai to pedio eponymo keno'.mysql_error&#40;&#41; &#41;;
	&#125;
	
	if&#40; isset&#40;$afm&#41; && empty&#40;$afm&#41; &#41; &#123;
		die&#40;'E eisai ti na soy pw. Den exeis symplirosei to pedio afm'.mysql_error&#40;&#41; &#41;;
	&#125;
	
	if&#40; ! is_numeric&#40;$afm&#41; &#41; &#123;
		die&#40; 'To afm den einai arithmos'.mysql_error&#40;&#41; &#41;;
	&#125;
	
	if&#40; strlen&#40;$afm&#41; != 9 &#41; &#123;
		die&#40; 'To afm prepei na einai 9 xaraktires'.mysql_error&#40;&#41; &#41;;
	&#125;
	
	afmcheck&#40;$afm&#41;;
	
	// Elegxei an yparxei egrafi stin basi
	if &#40; &#40;$check_afm_num_rows == 0&#41; &#41; &#123;
		$sql_ins = "INSERT INTO customers 
					&#40;
						id,
						name,
						lastname,
						fathername,
						address,
						city,
						id_nomos,
						postal_code,
						afm,
						ar_tautotitas,
						phone_home,
						phone_work,
						mobile,
						registration
					&#41;
					VALUES &#40;
						'',
						'".mysql_real_escape_string&#40;$name&#41;."',
						'".mysql_real_escape_string&#40;$lastname&#41;."',
						'".mysql_real_escape_string&#40;$fathername&#41;."',
						'".mysql_real_escape_string&#40;$address&#41;."',
						'".mysql_real_escape_string&#40;$city&#41;."',
						'".mysql_real_escape_string&#40;$id_nomos&#41;."',
						'".mysql_real_escape_string&#40;$postal_code&#41;."',
						'".mysql_real_escape_string&#40;$afm&#41;."',
						'".mysql_real_escape_string&#40;$ar_tautotitas&#41;."',
						'".mysql_real_escape_string&#40;$phone_home&#41;."',
						'".mysql_real_escape_string&#40;$phone_work&#41;."',
						'".mysql_real_escape_string&#40;$mobile&#41;."',
						NOW&#40;&#41;
					&#41; ";

		if &#40; &#40;  $result_ins = mysql_query&#40;$sql_ins, $conn&#41; &#41; &#41; &#123;
			echo "<h1>Epitixia</h1> Ola ok i eggrafi oloklirothike";
		&#125;
		else &#123;
			echo "<h1>Sfalma</h1> Kapoia mal**ia exeis kanei i eggrafi den exei oloklirothei";
		&#125;
	&#125;
	else &#123;
		die&#40;'H eggrafi iparxei stin basi.'&#41;;
	&#125;
&#125;

?>

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

Συνάρτηση

Δημοσίευση από dva_dev » 22 Οκτ 2008 20:47

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

   $checkafm_result = mysql_query&#40;$sql,$conn&#41;;
   $ckeck_afm_num_rows = mysql_num_rows&#40;$checkafm_result&#41; or die&#40;mysql_error&#40;&#41;&#41;;
   return $checkafm_result;
   return $check_afm_num_rows; 
Γιατί έχεις δύο return στη σειρά; Ποιό θέλεις να χρησιμοποιήσεις; (μάλλον μόνο το 2ο σου χρειάζεται αφού παρακάτω ελέγχεις πόσες εγγραφές επιστρέφονται);

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Συνάρτηση

Δημοσίευση από dpa » 22 Οκτ 2008 21:14

Nai to deytero

den brisko to lathos

Άβαταρ μέλους
theminio
Δημοσιεύσεις: 150
Εγγραφή: 20 Ιουν 2006 20:26

Συνάρτηση

Δημοσίευση από theminio » 22 Οκτ 2008 23:06

Θα συμφωνήσω με τον dva_dev, κράτα ένα return μόνο το δεύτερο που όπως λες χρειάζεσαι. Δεν είναι σωστό να έχεις δύο return μέσα σε μία συνάρτηση.Θα εκτελεστεί μόνο το πρώτο και θα τερματιστεί εκεί η συνάρτηση,δεν θα εκτελεστεί ποτέ το δεύτερο.

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Συνάρτηση

Δημοσίευση από dpa » 23 Οκτ 2008 17:15

Έκανα την διόρθωση αλλά δεν παίζει

Μπορεί να βοηθήσει κάποιος

function afmcheck($num) {
global $check_afm_num_rows, $conn;
$sql = "SELECT afm FROM customers WHERE afm = '".$num."' ";
$checkafm_result = mysql_query($sql,$conn);
$ckeck_afm_num_rows = mysql_num_rows($checkafm_result) or die(mysql_error());
return $check_afm_num_rows;
} //end function afmcheck


------------
<?php

error_reporting(E_ALL);
ini_set('display_errors',true);

include('conn.php');
include('function.php');

$name = $_POST['name'];
$lastname = $_POST['lastname'];
$fathername = $_POST['fathername'];
$address = $_POST['address'];
$city = $_POST['city'];
$nomos = $_POST['id_nomos'];
$postal_code = $_POST['postal_code'];
$afm = $_POST['afm'];
$ar_tautotitas = $_POST['ar_tautotitas'];
$phone_home = $_POST['phone_home'];
$phone_work = $_POST['phone_work'];
$mobile = $_POST['mobile'];

check_var_form($name);
check_var_form($lastname);
check_var_form($fathername);
check_var_form($address);
check_var_form($city);
check_var_form($nomos);
check_var_form($postal_code);
check_var_form($afm);
check_var_form($ar_tautotitas);
check_var_form($phone_home);
check_var_form($phone_work);
check_var_form($mobile);

if ( !isset ( $_POST['Submit'] ) ) {
header("Location: customers.php");
exit;
}
else {
if( isset($name) && empty($name) ) {
die('Kala eisai m***kas !!! Exeis afisei to pedio onoma keno'.mysql_error() );
}

if( isset($lastname) && empty($lastname) ) {
die('E den se perimena kai toso exeis kai to pedio eponymo keno'.mysql_error() );
}

if( isset($afm) && empty($afm) ) {
die('E eisai ti na soy pw. Den exeis symplirosei to pedio afm'.mysql_error() );
}

if( ! is_numeric($afm) ) {
die( 'To afm den einai arithmos'.mysql_error() );
}

if( strlen($afm) != 9 ) {
die( 'To afm prepei na einai 9 xaraktires'.mysql_error() );
}

$check = afmcheck($afm);

// Elegxei an yparxei egrafi stin basi
if ( ( $check > 0 ) ) {

die("H eggrafi yparxei stin basi".mysql_error() );

} else {
$sql_ins = "INSERT INTO customers
(
id,
name,
lastname,
fathername,
address,
city,
id_nomos,
postal_code,
afm,
ar_tautotitas,
phone_home,
phone_work,
mobile,
registration
)
VALUES (
'',
'".mysql_real_escape_string($name)."',
'".mysql_real_escape_string($lastname)."',
'".mysql_real_escape_string($fathername)."',
'".mysql_real_escape_string($address)."',
'".mysql_real_escape_string($city)."',
'".mysql_real_escape_string($nomos)."',
'".mysql_real_escape_string($postal_code)."',
'".mysql_real_escape_string($afm)."',
'".mysql_real_escape_string($ar_tautotitas)."',
'".mysql_real_escape_string($phone_home)."',
'".mysql_real_escape_string($phone_work)."',
'".mysql_real_escape_string($mobile)."',
NOW()
) ";

$result_ins = mysql_query($sql_ins, $conn) or die(mysql_error());

}




}

?>

vassilisred
Δημοσιεύσεις: 1
Εγγραφή: 24 Οκτ 2008 12:42

Συνάρτηση

Δημοσίευση από vassilisred » 24 Οκτ 2008 12:47

Υπάρχει ενας αναγραμματισμος εδω:

$ckeck_afm_num_rows = mysql_num_rows($checkafm_result) or die(mysql_error());

Ειναι "$ckeck..." αντι για "$check..."

Απάντηση

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

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

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