12-10-2007, 12:14
|
|
|
חבר מתאריך: 17.05.05
הודעות: 7,321
|
|
הקוד שלך.
יש לך הרבה טעויות...
כבר קשה להבין מה רצית לעשות.
לדוגמא:
קוד PHP:
$nameB = blabla; // now it's a constant
$nameatr = ssss; // now it's a constant
אני מניח שבשורות הנ"ל רצית להכניס למשתנים את המחרוזות המסוימות ההן.
אז כתבת את זה בצורה לא נכונה.
צריך לכתוב:
קוד PHP:
$nameB = 'blabla'; // now it's a string
$nameatr = 'ssss'; // now it's a string
/* OR */
$nameB = "blabla"; // now it's a string, but variables will be parsed as well
$nameatr = "ssss"; // now it's a string, but variables will be parsed as well
אם אתה תוחם מחרוזת עם גרשיים ("), אז המשתנים שבתוכה ותווים נוספים אחרים יתורגמו. אם המחרוזת תחומה בגרש ('), אז המשתנים שבתוכה לא יתורגמו.
ראה כאן: http://il2.php.net/manual/en/language.types.string.php
---------------------------------
והקוד הבא:
קוד PHP:
$user = mysql_fetch_array(mysql_query("SELECT * FROM `members` where `name` = '$nameB'"));
$query1 = mysql_fetch_array($result);
$rod = mysql_num_rows($query);
if ($rod > 0) {
$err++;
$error[] = "**שם המשתמש שרשמתה תפוס";
}
מה רצית לעשות פה?
אני מניח שרצית לספור את מספר השורות שהשאילתא מחזירה.
זאת הדרך הנכונה לבצע זאת בצורה יעילה גם:
קוד PHP:
$error = ''; // initializing var
...
$numRows = mysql_num_rows(mysql_query('SELECT 1 FROM `members` WHERE `name` = \''.$nameB.'\''));
if ($numRows > 0)
{
++$err;
$error .= "**שם המשתמש שרשמתה תפוס";
}
קודם איתחלתי את המשתנה [ מסוג מחרוזת ] error כדי שאוכל להכניס אליו ערכים נוספים. אל משתנה מסוג מערך, לוקח קצת יותר זמן להכניס ערכים, לכן כל עוד אתה יכול להשתמש במשתנה אחר שהוא לא מערך, זה יהיה טוב יותר.
אח"ב בשאילתא ביצעתי SELECT 1, כיוון שאנחנו סה"כ צריכים לדעת מה מספר הרשומות המתקבלות, ואנחנו לא צריכים לאסוף את המידע שבשדות הטבלה. אם היינו אוספים את המידע שבשדות הטבלה ע"י כתיבת * SELECT, תהליך ריצת השאילתא היה איטי יותר.
אני מניח שכל השאר מובן לך...
נערך לאחרונה ע"י DCD בתאריך 12-10-2007 בשעה 12:18.
|