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

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



  #1  
ישן 13-10-2007, 11:51
  Xpein Xpein אינו מחובר  
 
חבר מתאריך: 21.01.06
הודעות: 813
הסתבכתי לגמרי עם LIMIT

פעם ראשונה לא השתמשתי בauto_increment ונסיתי לגשת לשורות בעזרת LIMIT
קראתי כמה אשכולות בפורום על זה אבל ממש הסתבכתי,
ככה עשיתי:
קוד PHP:
 <html>
<
center>
<?
require (
"config.php");
$query mysql_query ("SELECT * FROM sek LIMIT 1");
$rows mysql_fetch_array ($query);
$query1 mysql_query ("SELECT * FROM sek LIMIT 1 , 1");
$rows1 mysql_fetch_array ($query1);
$query2 mysql_query ("SELECT * FROM sek LIMIT 2 , 2");
$rows2 mysql_fetch_array ($query2);
$query3 mysql_query ("SELECT * FROM sek LIMIT 3 , 3");
$rows3 mysql_fetch_array ($query3);
?>
<form method="post" action="<?=$_SERVER['$PHP_SELF'] ?>">
<br><input type="text" name="option1" value="<?=$rows['option'] ?>">
<br><input type="text" name="option2" value="<?=$rows1['option'] ?>">
<br><input type="text" name="option3" value="<?=$rows2['option'] ?>">
<br><input type="text" name="option4" value="<?=$rows3['option'] ?>">
<br><input type="submit" name="sub" value="שלח">
<br><input type="submit" name="aipus" value="אפס סקר">
</form>
<?
if (isset ($_POST['sub'])) {
$opt1 = $_POST['option1'];
$opt2 = $_POST['option2'];
$opt3 = $_POST['option3'];
$opt4 = $_POST['option4'];
mysql_query ("UPDATE sek SET `option`='$opt1' LIMIT 1 ");
mysql_query ("UPDATE sek SET `option`='$opt2' LIMIT2 ");
mysql_query ("UPDATE sek SET `option`='$opt3' LIMIT 3 ");
mysql_query ("UPDATE sek SET `option`='$opt4' LIMIT 4");
}
if (isset ($_POST['aipus'])) {
mysql_query ("UPDATE sek SET `numofvotes`='0' WHERE `numofvotes`=`numofvotes`");
}
?>
</center>
</html> 


אני דיי בטוח שחצי מהקוד רק טעויות.. אז את החלק הראשון אולי אפשר לעשות רק עם שאילתה אחת.. אני עשיתי עם 4 ובכל אחת שיניתי את הLimit..
ניסיתי כל מיני דרכים..
בסוף יש לי בעיה מוזרה עם הקוד:
ב4 תיבות טקסט מכניסים טקסט אבל מה שכתבתי בתיבת טקסט הרביעית נשמר בכולם..
איך זה?
האיפוס כן עובד כי זה כבר בלי הlimit שהסתבכתי..

אז תוכלו לתקן לי את הקוד ולהסביר לי איך להשתמש בזה?
תודה !!
_____________________________________
--- ! Area Close ! ---

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 13-10-2007, 16:40
צלמית המשתמש של netaneldj
  netaneldj netaneldj אינו מחובר  
 
חבר מתאריך: 01.05.06
הודעות: 7,861
Facebook profile
בתגובה להודעה מספר 1 שנכתבה על ידי Xpein שמתחילה ב "הסתבכתי לגמרי עם LIMIT"

קוד PHP:
 mysql_query ("UPDATE sek SET `option`='$opt1' LIMIT 1 ");

mysql_query ("UPDATE sek SET `option`='$opt2' LIMIT2 ");
mysql_query ("UPDATE sek SET `option`='$opt3' LIMIT 3 ");
mysql_query ("UPDATE sek SET `option`='$opt4' LIMIT 4"); 




מה שעשית פה זה בעצם, אם יש לך ארבע שורות:
  • הכנסת לשורה הראשונה ערך.
  • הכנסת ערך שני לשתי השורות הראשונות, והערך הקודם התבטל.
  • הכנסת ערך שלישי לשלוש השורות ההתחלתיות וכל מה שהיה לפני, הוחלף.
  • ובסוף פשוט הכנסת את הערך של $opt4 לכל ארבע השורות הראשונות כך שכל מה שרשמת לפני מוחלף.
ובסוף יש לך את השאילתה:



קוד PHP:
 "UPDATE sek SET `numofvotes`='0' WHERE `numofvotes`=`numofvotes`" 


מה ניסית בעצם להשוות פה? עמודה עם אותה עמודה?
או עמודה שהערך שלה הוא שם העמודה עצמה? ככה:



קוד PHP:
 "UPDATE sek SET `numofvotes`='0' WHERE `numofvotes`='numofvotes'" 
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 13-10-2007, 17:37
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
בתגובה להודעה מספר 3 שנכתבה על ידי Xpein שמתחילה ב "בקשר לחלק השני, לא הייתי חייב..."

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

כשאתה משתמש ב LIMIT לעדכן ככה, אז אתה 1) מסתמך על המימוש הפנימי של המסד נתונים. 2) מאבד קריאות של הקוד כיוון שאתה לא יודע איזה שורה בדיוק אתה מעדכן

וחוצמזה, השימוש שלך בLIMIT הוא לא נכון.
הפרמטר הראשון זה השורה הראשונה שאתה רוצה להחזיר והפרמטר השני זה מספר השורות שאתה רוצה להחזיר. ולכן בשאילתות שלך אתה מחזיר בפעם הראשונה שורה אחת, בפעם השנייה 2 שורות וכו'..
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.05 שניות עם 11 שאילתות

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

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