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

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

Reality 06-07-07 15:09

שאלה | הכנסת מידע לטבלאות
 
כמה בעיות יכולות להיות בתוכנית של שורה וחצי...|:
בכל מקרה, הנה התוכנית:

PHP קוד:

<?php
$link
=mysql_connect("localhost""root""") or die (mysql_error());
mysql_select_db("db",$link) or die (mysql_error());

if(isset(
$_POST['username']) && $_POST['username']!=NULL)
{
    
$query="SELECT username FROM users";
    
$res=mysql_query($query,$link) or die(mysql_error());
    while(
$row=mysql_fetch_array($res))
    {
        
$username=$row['username'];
    }
    if(
$_POST['username']==$username)
    {
        echo 
"Taken!";
    }
    else
    {
        
$query2="INSERT INTO `users` (`username`) VALUES (`$_POST[username]`)";
        
$res2=mysql_query($query2,$link) or die(mysql_error());
        echo 
"Success";
    }
    
}
else
{
    echo 
"NULL";
}

?>

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

Unknown column 'user2' in 'field list'
(user2 זה שם המשתמש שהוזן)

אז... מה הבעיה?
תודה רבה!

Meir 06-07-07 15:17

למה אתה שולף את כל המשתמשים מהמסד? למה משמשת ההצבה של שם המשתמש במשתנה username? למה אתה לא עוטף את $_POST[username] ב{}?

תכתוב את הקוד מחדש...

Reality 06-07-07 15:20

1) בשביל לבדוק אם קיים שם משתמש מסויים במסד.
2) אתה אומר אפשר למחוק את ההצבה..?
3) איפה אני עוטף אותו...?

Meir 06-07-07 15:25

ציטוט:

נכתב במקור על ידי Reality (פרסם 515333)
1) בשביל לבדוק אם קיים שם משתמש מסויים במסד.
2) אתה אומר אפשר למחוק את ההצבה..?
3) איפה אני עוטף אותו...?

1. אז למה אתה לא משתמש בתנאי בתוך המשפט SQL?
2. לפי ההיגיון אתה מציב כל פעם את הערך החדש בתוך המשתנה username ככה שיוצא לך שהמשתנה username (אחרי שהלולאה תסתיים) יהיה תמיד שווה לערך האחרון שנוסף.
3. איפה שהוא מופיע בתוך השאלתיה.
4. לא ממליץ לך להכניס נתונים למסד בלי להעביר עליהם פונקציה לסינון תווים.

Reality 06-07-07 15:29

ציטוט:

נכתב במקור על ידי elbaz.maor (פרסם 515335)
1. אז למה אתה לא משתמש בתנאי בתוך המשפט SQL? לא הבנתי את השאלה..
2. לפי ההיגיון אתה מציב כל פעם את הערך החדש בתוך המשתנה username ככה שיוצא לך שהמשתנה username (אחרי שהלולאה תסתיים) יהיה תמיד שווה לערך האחרון שנוסף.צודק...
3. איפה שהוא מופיע בתוך השאלתיה. לא רואה על מה אתה מדבר...
4. לא ממליץ לך להכניס נתונים למסד בלי להעביר עליהם פונקציה לסינון תווים.
איך עושים את זה? ובשביל מה?

תודה רבה על העזרה.

Tomer 06-07-07 15:30

שלח לי כותרת לאשכול בפרטי.

האשכול נפתח.


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

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