2016-12-24 10 views
-1

Ich möchte eine 5-stellige Zufallszahl generieren, die nicht in der Tabelle ist und für die Registrierung gelten. Ich habe unten Code .. Seine ist eine Zufallszahl zu erzeugen, aber es zeigtGenerierung von Zufallszahlen in PHP

"Notice: Undefined variable: id in F: \ wamp \ www \ hallo \ hello.php auf Linie 8"

mir bitte helfen

<?php 


error_reporting(E_ALL^E_DEPRECATED); 
// function to generate random ID number 
function createID() { 
for ($i = 1; $i <= 5; $i++) { 
    $id .= rand(0,9); 
} 
return $id; 
} 

// MySQL connect info 
mysql_connect("localhost", "root", ""); 
mysql_select_db("college"); 
$query = mysql_query("SELECT id FROM college"); 

// puts all known ID numbers into $ids array 
while ($result = mysql_fetch_array($query)) { 
$ids[] = $result["id"]; 
} 

// generates random ID number 
$id = createID(); 

// while the new ID number is found in the $ids array, generate a new $id number 
while (in_array($id,$ids)) { 
$id = createID(); 
} 

// output ID number 
echo $id; 

?> 
+1

Wenn Sie neuen Code schreiben, verwenden Sie bitte nicht die 'mysql_ *' -Funktionen **. Sie sind alt und kaputt, wurden in PHP 5.5 (das so alt ist, dass es nicht einmal mehr Sicherheits-Updates erhält) veraltet und in PHP 7 vollständig entfernt. Verwenden Sie ['PDO'] (https://secure.php.net/manual /de/book.pdo.php) oder ['mysqli_ *'] (https://secure.php.net/manual/de/book.mysqli.php) mit _prepared statements_ und _parameter binding_ statt. Weitere Informationen finden Sie unter http://stackoverflow.com/q/12859942/354577. – Chris

+3

Sie müssen die $ ID initialisieren, um die Warnung –

+0

zu vermeiden, die jetzt mehr Fehler zeigt! –

Antwort

2

Das Problem ist, dass Sie id initialisieren müssen, bevor Sie es anhängen.

Zum Beispiel sollte diese Funktion den Trick:

function createID() { 
    $id = ''; 
    for ($i = 1; $i <= 5; $i++) { 
     $id .= rand(0,9); 
    } 
    return $id; 
} 
2

Sie Anhänge an $id, bevor es zu definieren. initialisieren Sie es einfach mit einem leeren String, und Sie sollten in Ordnung sein:

function createID() { 
    $id = ''; 
    for ($i = 1; $i <= 5; $i++) { 
     $id .= rand(0,9); 
    } 
    return $id; 
} 

Aber, ehrlich gesagt, ich glaube, Sie hier das Rad neu zu erfinden sind. Sie könnten nur eine Zahl zwischen 0 und 99999 und Null füllt die fehlenden Ziffern Randomisierung:

function createID() { 
    return std_pad(random(0, 99999), 5, '0', STD_PAD_LEFT); 
} 
0

Sie müssen Variable definieren, bevor es zu benutzen.

<?php 
function createID() { 
    $id = ''; // define $id variable 
    for ($i = 1; $i <= 5; $i++) { 
     $id .= rand(0,9); 
    } 
    return $id; 
} 
Verwandte Themen