ABA


"שאלה בPHP\MySQL"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #10479 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10479
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   15:50   18.06.06   
אל הפורום  
  שאלה בPHP\MySQL  
 
   יש לי שאילתה שאמורה לשלוף נתונים מטבלה כלשהי.
אני מעוניין לספור את כמות התוצאות ששדה לצורך הדוגמה order יהיה שווה ל0
ולספור את השורות שבהם השדה order גדול מ1.
האם יש דרך "מקוצרת" לבצע את הדבר?, במקום להריץ שאילתה עם תנאי 1 (שווה ל0) ולפספור את השורות ואז לבצע את אותו התהליך עם תנאי 2 (גדול מ0).


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  בעזרת group by: Ice Cold  18.06.06 21:28 1
     תודה, עוד משהו.. נקח את זה טיפה יותר רחוק.. MoonHunter 19.06.06 01:18 2
         עם order פשוט Ice Cold  19.06.06 11:32 3
             הסתדרתי בבעיה הזו.. MoonHunter 19.06.06 22:07 4
     המשך MoonHunter 19.06.06 22:15 5
         ? אתה מתכוון לזה - Groove 20.06.06 00:58 6
             לא MoonHunter 20.06.06 20:11 7
  אני אחדד את הבעיה MoonHunter 21.06.06 00:24 8
  הבעיה נפתרה אפשר למחוק MoonHunter 21.06.06 20:38 9

       
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק, 36 נקודות
   21:28   18.06.06   
אל הפורום  
  1. בעזרת group by:  
בתגובה להודעה מספר 0
 

select count(*),order from table group by order


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   01:18   19.06.06   
אל הפורום  
  2. תודה, עוד משהו.. נקח את זה טיפה יותר רחוק..  
בתגובה להודעה מספר 1
 
   אם יש לי 2 שדות,
השדות האלו מכילים מספרים בלבד אשר אמורים לציין את מיקום מסויים,
למשל:
order1, order2

2, 1
3, 3
2, 2

אני רוצה שהסדר יסודר לפי order 1 אבל במקרים שorder 1 חוזר על עצמו, המקומות האלו יסתדרו לפי order 2.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק, 36 נקודות
   11:32   19.06.06   
אל הפורום  
  3. עם order פשוט  
בתגובה להודעה מספר 2
 

select * from table order by order1,order2


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   22:07   19.06.06   
אל הפורום  
  4. הסתדרתי בבעיה הזו..  
בתגובה להודעה מספר 3
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   22:15   19.06.06   
אל הפורום  
  5. המשך  
בתגובה להודעה מספר 1
 
   יש לי את השאילתה הזו:

$query = ("SELECT * FROM products WHERE P_ParentID LIKE '%,$ParentID,%' ORDER BY P_Up DESC, P_Order ASC LIMIT 0,15");

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


השאלה שלי היא, האם אפשר לספור את הנתונים שהתקבלו אשר הP_Up שלהם שווה ל0 ואת אלו אשר הP_Up שלהם גדול מ0?.
אני משתמש בObjects, האם זה אפשרי?
או שאפשר רק בArray?.

אם כן, איך?

תודה לעוזרים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Groove
חבר מתאריך 6.8.11
219 הודעות
   00:58   20.06.06   
אל הפורום  
  6. ? אתה מתכוון לזה -  
בתגובה להודעה מספר 5
 
  

SELECT * FROM products WHERE P_Up > 0 OR P_Up = 0

?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   20:11   20.06.06   
אל הפורום  
  7. לא  
בתגובה להודעה מספר 6
 
   אני מתכוון למשהו בסיגנון:
(שמתי בהכל סוגריים מסולסלות כי משום מה הסוגריים המרובעות נעלמות..

$ogen_array = Array();
$regul_array = Array();
$oc = 0;
$rc = 0;

while ($prod = mysql_fetch_array($result)) {
if ($prod{'P_Up'} > 0) {

$ogen_array{$oc}{'P_Name'} = $pro{['P_Name'};
$ogen_array{$oc}{'P_Order'} = $prod{'P_Order'};
$ogen_array{$oc}{'P_Up'} = $prod{'P_Up'};
$oc ++;
}
else {
$regul_array{$rc}{'P_Name'} = $pro{['P_Name'};
$regul_array{$rc}{'P_Order'} = $prod{'P_Order'};
$regul_array{$rc}{'P_Up'} = $prod{'P_Up'};
$rc ++;
}
}
}

הבעיה היא שאני חלש בArray, אני צריך לספור את כמות התוצאות בכל Array,
ואני גם לא מקבל שום תוצאה, כנראה בעיה בקוד..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   00:24   21.06.06   
אל הפורום  
  8. אני אחדד את הבעיה  
בתגובה להודעה מספר 0
 
   יש לי את הקוד:

$ogen_array = Array();
$regul_array = Array();
$oc = 0;
$rc = 0;

while ($prod = mysql_fetch_array($result)) {
if ($prod{'P_Up'} > 0) {

$ogen_array{$oc}{'P_Name'} = $pro{['P_Name'};
$ogen_array{$oc}{'P_Order'} = $prod{'P_Order'};
$ogen_array{$oc}{'P_Up'} = $prod{'P_Up'};
$oc ++;
}
else {
$regul_array{$rc}{'P_Name'} = $pro{['P_Name'};
$regul_array{$rc}{'P_Order'} = $prod{'P_Order'};
$regul_array{$rc}{'P_Up'} = $prod{'P_Up'};
$rc ++;
}
}
}

המשך הקוד שלי מבוסס על ספירת 2 המערכים שהגדרתי בהתחלה ורק אז אני אמור להדפיס את המערכים.
השאלה היא איך אני מדפיס את המערכים $ ו$ogen_array regul_array
אני עושה לולאה של for עבור כמות האיברים במערך אבל משום מה אני לא מצליח..


תודה לעוזרים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   20:38   21.06.06   
אל הפורום  
  9. הבעיה נפתרה אפשר למחוק  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net