2016-05-26 8 views
3

Ich versuche etwas zu tun, das ich denke, sollte ziemlich einfach sein, aber ich habe kein Glück. Ich möchte eine eindeutige Benutzer-ID für jeden Benutzer erstellen. Ich habe den Code geschrieben, um eine zufällige, 7-stellige Nummer zu erstellen, und ich muss nur die Nummer gegen die Datenbank überprüfen, um zu sehen, ob diese Benutzer-ID bereits existiert (unwahrscheinlich, da ich eine 7-stellige Nummer verwende, aber ich habe um es trotzdem zu überprüfen).Suche MySQL-Datenbank für doppelte user_id mit PHP

Hier ist der relevante Teil des Codes:

<?php 

require("config.inc.php"); 

$test_number = "1234567"; 

$query = mysql_query("SELECT user_id FROM users WHERE user_id ='$test_number'"); 

echo $test_number; 

if(mysql_num_rows($query) != 0){ 
    echo "\n number already exists."; 
}else{ 
    echo "\n number not found"; 
} 

?> 

Ich bin nur test number als Platzhalter verwenden. Ich habe die Nummer 1234567 manuell zu meiner Datenbank hinzugefügt, aber jedes Mal, wenn ich den Code ausführe, wird die zweite Zacke der if-Anweisung aufgerufen, so dass die Ausgabe immer "1234567 Nummer nicht gefunden" ist, obwohl diese Nummer existiert ein Benutzer in meiner Datenbank.

Die require ("config.inc.php") Zeile funktioniert, weil ich andere .php-Dateien habe, die dieselbe Datei verwenden und eine Verbindung zur Datenbank herstellen, also denke ich nicht, dass es ein Verbindungsproblem ist.

+0

sicherstellen, dass Sie in der Tat die 'mysql_' API mit zu verbinden. Der Typ und die Länge der Spalte sind unbekannt. Wenn es ein 'int' ist, dann versuchen Sie, die Anführungszeichen für' '1234567'' und' $ test_number'' zu entfernen und es gibt keine führenden/nachgestellten Leerzeichen in den Zeilen. Sie können auch "> 0" anstelle von "! = 0" versuchen. Möglicherweise müssen Sie auch die DB-Verbindungsvariable an die Abfrage übergeben. Ie: 'WHERE user_id = '$ test_number'", $ con); 'wenn Ihr require db-Variablen dafür gesetzt hat. –

+0

Probieren Sie das^und ping mich, wenn Sie wollen. Ich kann Ihnen keine magischen geben Tut mir leid, das ist das Beste, was ich mir vorstellen kann, viel Glück. Ich muss jetzt gehen. –

+0

Danke ... die Spalte ist INT (11). Ich habe versucht, die Zitate zu entfernen, aber immer noch nicht funktioniert ... nicht sicher was du meinst über den whitespace.Ich wechselte zu> 0 anstatt! = 0. Aber ich arbeite immer noch nicht.Ich werde in das DB-Verbindungsproblem schauen, aber wie gesagt, die 'config.inc.php' Datei funktioniert für meine Anmeldung und registriere Skripte, also glaube ich nicht, dass es das ist. –

Antwort

-1

Bitte versuchen Sie es mit dem Code

<?php 
 

 
$link = mysql_connect('localhost', 'root', ''); 
 
if (!$link) { 
 
    die('Could not connect: ' . mysql_error()); 
 
} 
 
echo 'Connected successfully'; 
 

 
mysql_select_db('tsg_userlogin_dev', $link) or die('Could not select database.'); 
 

 
$test_number = "88888"; 
 

 
$query = mysql_query("SELECT EmployeeId FROM tsguser WHERE EmployeeId ='$test_number'"); 
 

 
echo $test_number; 
 

 
if(mysql_num_rows($query) != 0){ 
 
    echo "\n number already exists."; 
 
}else{ 
 
    echo "\n number not found"; 
 
}