The numbers...

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

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

Απάντηση
Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

The numbers...

Δημοσίευση από p_pan » 07 Δεκ 2007 04:35

hello... 8elo na ftiajo ena sustima to opoio na dimiourgi 8 cifio tixaio ari8mo.... ka8e fora o ari8mos 8a grafete se ena table stin basi... opote na min uparxi periptosi na jana emfanisti o idios ari8mos... mporei kapoios na kanei ena help??
Αγράματος...

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

The numbers...

Δημοσίευση από cherouvim » 07 Δεκ 2007 09:22

Το interface για τη βάση σου:
cgi-bin\db.php

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

<?php

	$dbhost = "localhost";
	$dbase  = "test";
	$dbuser = "root";
	$dbpass = "";

	$dblink = mysql_connect&#40;$dbhost, $dbuser, $dbpass&#41;;
	if &#40;!$dblink&#41; &#123;
		echo "Error&#58; Could not connect to database at $dbhost. Please try again later.";
		exit;
	&#125;
	if &#40;!mysql_select_db&#40;$dbase&#41;&#41; &#123;
		echo "Error&#58; Database $dbase not found. Please try again later.";
		exit;
	&#125;
	mysql_query&#40;"SET NAMES utf8;"&#41;;



	function insertNumber&#40;$number&#41; &#123;
		return mysql_query&#40;"insert into `unique-numbers` values &#40;$number&#41;"&#41;;
	&#125;

	function numberAlreadyGenerated&#40;$number&#41; &#123;
		$result = mysql_query&#40;"select count&#40;*&#41; from `unique-numbers` where `generated-numbers`=$number"&#41;;
		$count = $count = mysql_fetch_row&#40;$result&#41;;
		return $count&#91;0&#93;==1;
	&#125;

?>
Το business logic σου:
cgi-bin\funcs.php

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

<?php

	/**
	 * Generates a random number from 1 to 99999999
	 *
	 */
	function generateRandomNumber&#40;&#41; &#123;
		return rand&#40;1, 99999999&#41;;
	&#125;

	/**
	 * Generates a random and unique number from 1 to 99999999.
	 * Uses a database table to ensure uniqueness and
	 * generateRandomNumber&#40;&#41; for the number generation.
	 *
	 */
	function generateUniqueNumber&#40;&#41; &#123;
		$number = 0;
		while&#40;$number==0 || numberAlreadyGenerated&#40;$number&#41;&#41; &#123;
			$number = generateRandomNumber&#40;&#41;;
		&#125;
		insertNumber&#40;$number&#41;;
		return $number;
	&#125;

?>
Ο client κώδικας:
index.php

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

<?php
	require_once&#40;"cgi-bin/db.php"&#41;;
	require_once&#40;"cgi-bin/funcs.php"&#41;;

	echo generateUniqueNumber&#40;&#41;;

?>
Το database schema σου:

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

CREATE TABLE `unique-numbers` &#40;
  `generated-numbers` int&#40;11&#41; NOT NULL default '0',
  PRIMARY KEY  &#40;`generated-numbers`&#41;
&#41;
Ένα πιθανό view του table μετά από 10 εκτελέσεις του index.php:

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

mysql> select * from `unique-numbers`;
+-------------------+
| generated-numbers |
+-------------------+
|           1516724 |
|           2719117 |
|           5078125 |
|           8337403 |
|          27700806 |
|          29370117 |
|          50289917 |
|          50775146 |
|          86749267 |
|          91189575 |
+-------------------+
10 rows in set &#40;0.00 sec&#41;
Φυσικά καταλαβαίνεις ότι το νούμερο δεν είναι πάντα 8ψήφιο. Αν θες μπορείς να το κάνεις padding από τα αριστερά με μηδενικά και να το εκτυπώσεις ώς string. Αν θες να σώζεται έτσι στη βάση τότε θες varchar(8) στο schema και την ανάλογη μετατροπή στο generateRandomNumber().

Τα βοηθητικά αρχεία τα βάζεις στο cgi-bin ως εύκολο τρόπο προστασίας των αρχείων από πρόσβαση over http.

Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

The numbers...

Δημοσίευση από p_pan » 07 Δεκ 2007 17:29

euxaristo arxige...... poli analitiki apantisi... 8a to stekaro mesa sto sabatokiriako pou 8a exo xrono kai 8a do....

euxaristo kai pali...
Αγράματος...

Απάντηση

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

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

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