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

הוסטס - פורום אחסון האתרים הגדול בישראל (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=69659)

dor77 22-11-08 10:45

[עזרה] מחיקה הצלחתי אבל למה ה id ממשיך לעלות?
 
שלום.

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

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

הנה הדף:

http://dorben123.awardspace.com/deleteshow.php

לאחר שתעשו "מחק" אתם תעברו לדף השני.

עכשיו, כאן באה הבעיה..נגיד הוספתי 10 רשומות:

רושמה 1
רושמה 2
רושמה 3
רושמה 4
רושמה 5
רושמה 6
רושמה 7
רושמה 8
רושמה 9
רושמה 9
רושמה 10

לכל אחד יש id שונה, לרשומה 1 ה id=1 לרשומה 2 ה id=2 וכך הלאה.
אם מחקתי את כולם, והוספתי עוד 10 רשומות, הם לא מקבלות id=1 ו id=2 אלא id=11 ו id=12, הבנתם?

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

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

זה נורמאלי מה שנוצר כאן?

חפרתי אה?

תודה :)

HOLD 22-11-08 11:04

ככה זה עובד, ככה כל מסד נתונים עובד.

dor77 22-11-08 11:11

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

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

אשמח לעוד תגובות כדי לוודאות, תודה.

נ.ב שאני זה הולך לכתובת..למשל id=700 אני מקבל דף לבן.
http://dorben123.awardspace.com/show.php?id=700
יש אפשרות לעשות שדף שלא נמצא יפנה לדף 404?

זה לא אמור להות ריק, כי עדיין אין דף כזה, עדיין לו הכנסתי id=700.

HOLD 22-11-08 11:22

כן , כשאתה מקבל רשומות ממסד יש משתנה נלווה שמכיל את מספר הרשומות שנמצאו.
תבדוק את המספר שווה ל-0, אם כן, תעשה העברה לעמוד 404 .
(אני לא נותן קודי מקור.. )

dor77 22-11-08 11:28

מה?
מה הכוונה שאני מקבל רשומות מהמסד?
על איזה קוד להסתכל?

לא ביקשתי קוד מקור אבל אם אתה יכול תכוון אותי יותר, זה לא נראה לי בעיה, רק if לא?

תודה רבה.

HOLD 22-11-08 11:52

"מה הכוונה שאני מקבל רשומות מהמסד?"
כשאתה מפעיל קוד SQL עם המילה SELECT.

"על איזה קוד להסתכל?"
מי דיבר על קוד?!

"לא ביקשתי קוד מקור אבל אם אתה יכול תכוון אותי יותר, זה לא נראה לי בעיה, רק if לא?"
כן, בעיקרון זה רק IF, אבל צריך גם לקבל את מספר הרשומות שנמצאו, בעזרת פונקציה של php.

;P

dor77 22-11-08 13:49

נו, אני שולף את הכל:

select * from table

מה אני אמור לעשות פה?

תודה..

Ori The Man 22-11-08 23:09

בודק אם יש רשומה כזאת
select * from table WHERE id='700'
ומשתמש בפונקציה mysql_num_rows לראות אם זה קיים..

dor77 22-11-08 23:22

רגע אז למטה אני צריך רק להוסיף:


PHP קוד:


echo mysql_num_rows($result); 

?

רק את השורה הזאת?
זה הקוד שלי כרגע, בלי השורה:

PHP קוד:


<?php    


mysql_connect
("000""000""000"); 
mysql_select_db("000");

$result mysql_query("SELECT username FROM test WHERE id={$_GET['id']}");    
while(
$row=mysql_fetch_array($result))    
{    
    
echo 
"<div style='width:400px; height:100px;  border-width: 2px; border-style: solid; border-color: #dcdcdc; background-color:#f5f5f5; font-family:Arial; color:#000100; padding-right: 8px; padding-top: 2px; font-size: 14px; font-weight: bold; text-align:right;'>".$row['username']."</div><br>";    

$title $row['username'];
}  
?>

<html>
<head>
<title>
<?php  
echo $title;
?>
</title>
</head>
</html>


רק להוסיף את השורה ההיא או שגם צריך להציב תנאי if כלשהו?

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

תודה ושבוע טוב.

Elad-A 23-11-08 01:52

תבדוק אם הערך של הפונקצייה mysql_num_rows מחזיר 0, אם כן תעביר את המשתמש לדף של לא נמצא או משהו.


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

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