הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בדיקה אם ערך מסויים קיים במסד (https://hosts.co.il/forums/showthread.php?t=71757)

SniR-S 05-02-09 18:35

בדיקה אם ערך מסויים קיים במסד
 
יש לי בעיה קצת, התחלתי לעבוד על מערכת מסויימת (תוך כדי הלמידה של PHP & SQL)
ואני כרגע עובד על הרישום משתמשים.

הבעיה היא שאני רוצה לבדוק אם שם משתמש / איימיל מסויים קיים במסד אם כן לתת שגיאה מסויימת
ואם לא, אז להמשיך בתהליך ההרשמה.
עכשיו אני מצאתי אחרי חיפוש קצר את האשכול הבא:
http://hosts.co.il/forums/showthread.php?t=59628

וואלה עזר לי מאוד עם האיימיל, אני יכול לשנות את זה גם למשתמש במקום אימייל..
אבל איך אני יכול לעשות דבר אחר במקום 2 שאליתות, מה אפשר לעשות?

עם if אני בודק אם search שווה ל 0 כמו באשכול ההוא ואם כן אז הוא ממשיך בתהליך
ההרשמה, ויש לי else if שבודק אם הוא לא שווה לא 0 אז הוא מחזיר שגיאה שהאיימיל קיים במסד..
PHP קוד:

$result mysql_query("SELECT * FROM `random_users` WHERE (`user`, `email`) = ('user', '$email') ")
    or die(
"Query failed: " mysql_error());
$search mysql_num_rows($result); 

זאת השאילתה, אני יודע איך להשתמש בה והכל, בקיצור הכל תקין..
שוב, אני רוצה לבדוק אם שם משתמש + איימיל קיימים במסד אם כן להוציא שגיאה ..
איך אני יכול לעשות את זה?

vadimg88 05-02-09 18:38

PHP קוד:

$result mysql_query("SELECT * FROM `random_users` WHERE email = '{$email}' AND user = '{$user}' ")
    or die(
"Query failed: " mysql_error()); 
if(
mysql_num_rows($result))
{
// user and email exists



SniR-S 05-02-09 18:52

ואדים לא הבנתי מה הקוד שלך כ"כ אומר.
אתה בודק אם שם משתמש והאימייל קיימים, אם כן הוא מוציא שגיאה..
אבל אני רוצה ליצור 2 שגיאות שונות, 1 אם המשתמש קיים אז הוא יציג "השם משתמש שבחרת קיים"
אם האיימיל קיים הוא יציג "האיימיל שבחרת קיים"..
PHP קוד:

if ($_POST['hidden'] == 'true' && $password == $_POST['check_password'] && $email == $_POST['check_email'] && $search == 0) { 

זה התנאי, אני רוצה להוריד את ה $search
ולשים נגיד
$row['user'] != $user && $row['email'] != $email

$row זה כאילו מהמסד..

אם כן אז אין בעיה, הוא נרשם פשוט..
אבל אם האימייל או השם משתמש שווים הוא יציג שגיאה שונה לכל אחד..בעזרת else if..
זה כבר פשוט אבל הבעיה כאן היא עם השאילתה.

שליחטא 05-02-09 20:25

את מה הגדרת כפריימרי קי ?

vadimg88 05-02-09 20:35

פשוט תעשה שני שאילתות, זה לא יצרוך הרבה משאבים ועם קצת אופטמזציה אפשר לחסוך בזמן ביצוע השאילתה, לא כזה קריטי.

SniR-S 05-02-09 20:42

אוקי, ואת ID.

Shon12 05-02-09 21:15

כשאני חושב על זה...אפשר לעשות משהו נחמד, כשאתה מכניס את פרטי המשתמש,כמו: איימיל,שם,שם משפחה למשל,תכניס איתו גם עוד שדה שיכיל: "המשתמש קיים"
וכשאתה רוצה לבדוק אם המשתמש קיים - אתה עושה משהו כזה:
PHP קוד:

mysql_query("SELECT user_existent FROM `random_users` WHERE name = '{$name}'"); 

ואז מציג את תוצאת השאליתה,שתצא "המשתמש קיים"
ככה זה חוסך שימוש ב-mysql_num_rows.


כל הזמנים הם GMT +2. הזמן כעת הוא 17:06.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ