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

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

SniR-S 17-01-09 11:40

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

$query "SELECT * FROM table ORDER BY id DESC LIMIT 1"

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

תודה.

vadimg88 17-01-09 11:46

נכון, אם אתה רוצה להציג כמה כתבות יש אז תשתמש ב

קוד:

$query = "SELECT COUNT(id) as total FROM table";
דרך אגב ב LIMIT אתה עושה X,Y ולא X

SniR-S 17-01-09 12:16

אוקי תודה, ולא הבנתי מה הכוונה X,Y?

vadimg88 17-01-09 12:25

כשאתה עושה LIMIT זה נכון לרשום ככה:

קוד:

LIMIT 0,1
ולא

קוד:

LIMIT 1

SniR-S 17-01-09 12:26

אוקי, אגב לא הצלחתי לשלוף את id בעזרת הקוד שהבאת לי. \-:

Speed 17-01-09 12:37

ציטוט:

נכתב במקור על ידי Snir Shamka (פרסם 693202)
אוקי, אגב לא הצלחתי לשלוף את id בעזרת הקוד שהבאת לי. \-:

תשתמש בקוד שוואדים הביא לך ותדפיס:
PHP קוד:

$query mysql_query("SELECT COUNT(id) as total FROM table");
$r=mysql_fetch_array($query);
//איפה שאתה רוצה להדפיס את המספר:
echo $r['id']; 


SniR-S 17-01-09 12:41

השתמשתי בקוד בצורה הבאה:
PHP קוד:

$query "SELECT COUNT(id) as total FROM table";
$result mysql_query($query)
    or die(
"Query failed: " mysql_error());
while (
$row mysql_fetch_array($result)) {
$id $row['id'];
    echo 
"$id";


אבל משום מה הוא לא מציג לי כלום \-:

dor77 17-01-09 12:49

התחסברת למסד? שינית את שם הטבלה מ table לשם הטבלה שלך?

לא התנסתי כל כך הרבה ב SQL אבל הקוד נראה לי די בסדר.

SniR-S 17-01-09 12:55

כן, הכל תקין רק מוזר שהוא לא מציג כלום \-:
ניסיתי גם את
PHP קוד:

echo $id


Speed 17-01-09 13:01

PHP קוד:

$query "SELECT COUNT(id) as total FROM table"
$result mysql_query($query) or die("Query failed: " mysql_error()); 
$row mysql_fetch_array($result); 
$id $row['id']; 
    echo 
$id


SniR-S 17-01-09 13:05

ציטוט:

נכתב במקור על ידי Speed (פרסם 693208)
PHP קוד:

$query "SELECT COUNT(id) as total FROM table"
$result mysql_query($query) or die("Query failed: " mysql_error()); 
$row mysql_fetch_array($result); 
$id $row['id']; 
    echo 
$id


מוזר, כל הקודים האלה לא עובדים..

Speed 17-01-09 13:09

ציטוט:

נכתב במקור על ידי Snir Shamka (פרסם 693210)
מוזר, כל הקודים האלה לא עובדים..

ואוי חח טעות שלי.
מצטער לא שמתי לב
תשנה את id לזה:
PHP קוד:

$id=$row['total']; 


SniR-S 17-01-09 13:14

אוקי, זה עובד מצויין, אז מה הבעיה בקוד שלי?
צריך לשנות אותו ככה:
את זה,
PHP קוד:

$id $row['id']; 

לזה:
PHP קוד:

$id=$row['total']; 

נכון?
בגלל (id) as total ?

אגב תודה רבה רבה רבה !!! |לב|

Speed 17-01-09 13:18

ציטוט:

נכתב במקור על ידי Snir Shamka (פרסם 693212)
אוקי, זה עובד מצויין, אז מה הבעיה בקוד שלי?
צריך לשנות אותו ככה:
את זה,
PHP קוד:

$id $row['id']; 

לזה:
PHP קוד:

$id=$row['total']; 

נכון?

אגב תודה רבה רבה רבה !!! |לב|

בדיוק, צריך להחליף בין['id'] ל['total']
אתה גם יכול לכתוב שם משהו אחר הכל תלוי במה שרשמת בשאילתה..:)
פשוט ואדים הכניס בשאילתה את total.
PHP קוד:

as total 


DorOaki 22-01-09 12:32

שאלה, מה רע בזה? זה לוקח יותר משאבים?
PHP קוד:

$query mysql_query(" SELECT id FROM `table`") OR die("Query Faield");
$id mysql_num_rows($query);

echo 
$id


Adir 22-01-09 14:14

ציטוט:

נכתב במקור על ידי DorOaki (פרסם 694125)
שאלה, מה רע בזה? זה לוקח יותר משאבים?
PHP קוד:

$query mysql_query(" SELECT id FROM `table`") OR die("Query Faield");
$id mysql_num_rows($query);

echo 
$id


כן בהרבה

vadimg88 22-01-09 15:14

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

DorOaki 22-01-09 16:24

ציטוט:

נכתב במקור על ידי vadimg88 (פרסם 694139)
לא רק שזה יותר איטי (לא בטוח אם בהרבה אבל) אבל זה לא מה שפותח האשכול רצה. הוא רצה לקבל את המספר הגבוה ביותר mysql_num_rows מחזיר את מספר הרשומות הנמצאות בטבלה. זה שני דברים שונים.

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

vadimg88 22-01-09 16:44

לפי הכותרת "שליפה של ה id האחרון .. " אני הבנתי שהוא רוצה את המספר האחרון בטבלה לא את מספר השורות.


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

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