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

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

נריה 10-11-06 13:04

שימוש במשתנה לפי שהוא קיים-אפשרי?
 
תראו אני שולף פעמיים מהמסד
פעם 1 שליפה רגילה
פעם 2 לולאה
כל 1 מהשליפות זה מטבלה אחרת

בשליפה הראשונה אני משתמש בתנאי שבנוי על משתנה שאותו אני מגדיר בלולאה(שליפה 2)
ומשתמש במשתנה שהגדרתי בשליפה הראשונה בלולאה של השניה
הבעיה:
אם אני שם את השליפה הראשונה בתוך הלולאה זה מציג את זה אין ספור פעמים וגם לא טוב
אם אני שם את השליפה הראשונה בהתחלה אז המשתנה של השליפה השניה שעליו בנוי התנאי לא קיים עדיין ואז מופיע לי 0
הקוד

PHP קוד:

$select_comments mysql_query("SELECT * FROM `topic`  where forum='$id'");
 
$num mysql_num_rows($select_comments);



$select_comments mysql_query("SELECT * FROM `forum` ");
  while(
$row mysql_fetch_array($select_comments)){

  
$id htmlspecialchars($row['id']); 

את ה NUM הגדרתי בשליפה הראשונה
ואת ה ID בשניה
ואת הNUM אני מציג בלולאה (שליפה 2)

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

Tomer 10-11-06 13:09

אתה יכול להשתמש במשתנה לפני שהוא נוצר, והערך שלו יהיה NULL (ריק), אבל שים לב שבמערכות שבהם אופציית register globals לא מופעלת (register_globals = Off) אתה תקבל שגיאה שאתה חייב לאתחל את המשתנה.

אני מציע לך, בכדי להמנע משגיאות, לעשות:
PHP קוד:

$var 0

(יש סיכוי שלא הבנתי את השאלה שלך, אז תגיד לי אם לא :))

RS324 10-11-06 13:12

מה שאתה עושה לא רק שהוא לא יעיל הוא גם לא עובד...
הנה קטע קוד שיעזור לך להבין את העיניין קצת יותר טוב
PHP קוד:

$id 5;
$db->query("SELECT
         forum.* , COUNT(topic.forumid) AS openedtopics
         FROM forum AS forum
         LEFT JOIN topic AS topic ON(topic.forumid = forum.forumid)
         WHERE froumid='$id'
         ORDER BY forum.date DESC
"
); 

בהצלחה...

נריה 10-11-06 13:12

ציטוט:

נכתב במקור על ידי Tomer
אתה יכול להשתמש במשתנה לפני שהוא נוצר, והערך שלו יהיה NULL (ריק), אבל שים לב שבמערכות שבהם אופציית register globals לא מופעלת (register_globals = Off) אתה תקבל שגיאה שאתה חייב לאתחל את המשתנה.

אני מציע לך, בכדי להמנע משגיאות, לעשות:
PHP קוד:

$var 0

(יש סיכוי שלא הבנתי את השאלה שלך, אז תגיד לי אם לא :))

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

RS324 מצטער לא הבנתי

RS324 10-11-06 13:55

מה לא הבנת בדיוק ?

נריה 11-11-06 17:48

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

Eli-Hai 11-11-06 18:25

לא הבנתי, אתה מנסה לשלוף תגובות ממסד נתונים, פעם אחת לספור אותם ופעם שנייה להדפיס אותם?

נריה 11-11-06 18:50

אני רוצה להציג כמה תגובות יש לכל פורום
אז בפעם הראשונה אני בודק כמה תגובות יש לנושא הזה
ובפעם השניה זה לולאה בטבלה שמציגה גם את השם של הפורום וכו'

Tomer 11-11-06 19:05

תעשה משהו בסגנון:

PHP קוד:

$query mysql_query("SELECT COUNT(id) AS `count` FROM comments");
-- 
FETCH CODE --

-- 
SHOW THE FORUMS -- 

או כמו ש RS324 רשם, להשתמש בשאילתא עם JOIN ובכך לחסוך בשאילתות.

tnadav 11-11-06 20:50

ציטוט:

נכתב במקור על ידי נריה
אני רוצה להציג כמה תגובות יש לכל פורום
אז בפעם הראשונה אני בודק כמה תגובות יש לנושא הזה
ובפעם השניה זה לולאה בטבלה שמציגה גם את השם של הפורום וכו'

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

בשביל ללמוד SQL:
http://www.w3schools.com/sql/default.asp
בשביל ללמוד ספציפית על join:
http://www.w3schools.com/sql/sql_join.asp


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

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