לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 10-09-2007, 15:04
  Xpein Xpein אינו מחובר  
 
חבר מתאריך: 21.01.06
הודעות: 813
איך לעשות פונקציה, שאם קיים משתמש נוסף זה ירשום אותו?

לאחר שעשיתי הרשמה, אני רוצה לעשות דף של userlist ובו כל פעם שיש משתמש נוסף (שהid בטבלה גדל) זה כותב אותו..
אני יכול גם בדרך הקלה של לכתוב את כולם ישר אבל אני לא רוצה כי זה לא יביא לי את מה שאני רוצה..
ניסיתי לעשות אבל נתקעתי בחשיבה.. הנה מה שניסיתי:


קוד PHP:
 require ("config.php");   // ייבוא ההתחברות לmysql 
$id 0;
$query "SELECT * FROM $dbname";
$idnum mysql_num_rows ('$query');
function 
adduser() {
$qusers "SELECT * FROM $dbname WHERE ID = '$id'";
$theus mysql_fetch_array ('$qusers');
echo 
"$theus[=\]";
}
while (
$idnum 100) {
$id++
adduser()



אז מה שעשיתי כך: (אולי יש שגיאות כי אני חדש בנושא של php)
קודם כל ייבאתי את ההתחברות למסד.
ניסיתי לעשות פונקציה שתכתוב משמש חדש.. ועצרתי באמצע..
ו.. בwhile עשיתי שאם מספר המשתמשים נמצא במספר כלשהו עד 100, זה יעלה משתמש,
ויפעיל את הפוקנציה..


בקיצור אני בטוח שעשיתי משהו לא טוב.. לא עולה לי רעיון מה לעשות.. מישהו יכול לתת לי מוצא?
ומה שאני רוצה לעשות אני אגיד שוב -
יש לי במסד טור של ID שעולה כל משתמש שנרשם,
אני רוצה להגיד, שכל פעם שהid עולה, הפונקצייה תפעל ותכתוב את המשתמש החדש..
_____________________________________
--- ! Area Close ! ---

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 10-09-2007, 15:55
צלמית המשתמש של דור
  דור דור אינו מחובר  
 
חבר מתאריך: 09.04.02
הודעות: 8,000
בתגובה להודעה מספר 1 שנכתבה על ידי Xpein שמתחילה ב "איך לעשות פונקציה, שאם קיים משתמש נוסף זה ירשום אותו?"

הדפסת הרשימה בדרך כזאת תצרוך הרבה משאבים ותבזבז זמן יקר. לא צריך אפילו להכנס לתורת הסיבוכיות - מספיק לראות שכמות השאילתות תהיה מספר המשתמשים הרשומים + 1
קודם כל, חשוב לתקן את שגיאות שעשית בקוד, גם אם התכנון עצמו לא נכון:
קוד PHP:
 require ("config.php");
$id 0;
$query "SELECT * FROM `users`"// למה שם המסד ולא שם הטבלה? תיקנתי את זה בכל השאילתות שבהמשך
$idnum mysql_num_rows ($query); // שוב אותה טעות - מרכאות בודדות גורמות ל-PHP לא לפענח משתנים או סימנים מיוחדית במחרוזת. אם אתה מתעקש, תוכל להשתמש במרכאות כפולות, אבל הכי טוב שלא תשתמש במרכאות בכלל. תיקנתי את זה בכל הקריאות ל-mysql_query שיש בהמשך
function adduser() {
global 
$id// השורה הזאת מאפשרת לך לגשת בתוך הפונקציה למשתנה id, שהוגדר בטווח ההכרה הגלובלי (שאליו לפונקציות אין גישה כברירת מחדל)
$qusers "SELECT * FROM `users` WHERE ID = '$id'";
$theus mysql_fetch_array ($qusers);
echo 
"$theus[=\]";
}
while (
$idnum 100) { // התנאי שבסוגריים אומר ללולאה לרוץ על עוד הוא נכון, ולא כל עוד הוא שגוי - ולכן שיניתי את סימן ה-"גדול מ" ל-"קטן מ". שים לב לזה בהמשך
$id++; // שכחת כאן נקודה פסיק... הוספתי
adduser(); // גם כאן שכחת


אגב, אם קשה לקרוא את ההערות שלי בגלל היישור, פשוט תעתיק אותן לתוכנת עריכת טקסט ותשנה את היישור למימין לשמאל.
ועכשיו, אחרי שקראת והפנמת, הנה הקוד המתוקן. הוא מבוסס על שליפת כל השורות בטבלה בשאילתה אחת, ולאחר מכן מעבר על השורות בלולאת while והדפסתן אחת-אחת.
קוד PHP:
 require ('config.php');

$userlistQuery mysql_query('SELECT * FROM `users`');

// שים לב שהסרתי את כל הפונקציה שהייתה כאן

while ($user mysql_fetch_assoc($userlistQuery))
{
      echo 
$user['nickname'] . '<br />';


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

אני מקווה שהכל ברור. אם לא, אתה יודע מה לעשות... פשוט לשאול
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 10-09-2007, 17:29
  Xpein Xpein אינו מחובר  
 
חבר מתאריך: 21.01.06
הודעות: 813
בתגובה להודעה מספר 4 שנכתבה על ידי דור שמתחילה ב "1. mysql_fetch_assoc היא..."

1. הכוונה שלך שזה מערך משוייך? אבל גם עם הarray זה כמו מערך משוייך לא?
2. לא הבנת אותי, אני לא רוצה לבחור משתמש בעזרת WHERE ,
אני רוצה שאם קיים משתמש אחד, זה ידפיס את הפרטים שלו בid=1
ואם קיימים שני משתמשים, זה ידפיס למשתמש השני את הפרטים שלו בid=2
והכל אוטומטי, לא שאני צריך לבחור משתמש ולראות את הפרטים שלו, לעשות שאם
קיים משתמש 1 זה ידפיס ואם קיימים שתיים זה ידפיס אותם וכו' אפשר לעשות את זה בדרך הארוכה:
קוד PHP:
 require ("config.php");
$user1 mysql_query ("SELECT * FROM users WHERE `id`='1'");
$user2 mysql_query ("SELECT * FROM users WHERE `id`='2'");
$user3 mysql_query ("SELECT * FROM users WHERE `id`='3'");
$user4 mysql_query ("SELECT * FROM users WHERE `id`='4'");
$user5 mysql_query ("SELECT * FROM users WHERE `id`='5'");
$us1 mysql_fetch_array ($user1);
$us2 mysql_fetch_array ($user2);
$us3 mysql_fetch_array ($user3);
$us4 mysql_fetch_array ($user4);
$us5 mysql_fetch_array ($user5);
$query "SELECT * FROM users";
$numus mysql_num_rows ($query);
if (
$numus == 1) {
echo 
$us1['name');
echo 
$us1['age');
echo 
$us1['faname');
echo 
$us1['reg_date'); }
elseif (
$numus == 2) {
echo 
$us2['name');
echo 
$us2['age');
echo 
$us2['faname');
echo 
$us2['reg_date'); }
elseif (
$numus == 3) {
echo 
$us3['name');
echo 
$us3['age');
echo 
$us3['faname');
echo 
$us3['reg_date'); }
// והמשך של כל המשתמשים.. 


אבל אני רוצה לעשות פונקצייה, שתאתר את כמות המשתמשים וכך תכתוב את זה לבד..
בגלל זה ניסיתי בהודעת האשכול עם while ..
_____________________________________
--- ! Area Close ! ---

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 06:21

הדף נוצר ב 0.06 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר