פורסם 2015 בנובמבר 1610 שנים לא והלך לי, אני רוצה להציג ערך מתוך NUM בטבלה cunter של הSQL שלי(יש שם רק עמודה אחת בלבד ID=0, ככה שזה אמור להיות ממש פשוט)את התצוגה דווקא הצלחתי לעשותרק המקש לא עובד לי, אני רוצה שהכפתור שם יעשה לי +1 לערך המספרי של NUM.אני צריך את זה בfuntion jscript ...מה לא בסדר ?!<html><script> function update() { <?php mysqli_query($conn, "UPDATE counter SET num=5 WHERE id=0"); mysqli_close($conn);?> }</script><body><?php$servername = "mysql.hostinger.co.uk";$username = "41232133_db";$password = "1231321356";$dbname = "12303123_db";$conn = new mysqli($servername, $username, $password, $dbname);$sql = "SELECT num FROM counter WHERE id=0";$result = $conn->query($sql); while($row = $result->fetch_assoc()) { echo "Downloads: <input type='numbers' size=1 value=". $row["num"].">";echo "clickingtest <button onclick='update()'>update</button>"; }$conn->close();?> </body></html>
פורסם 2015 בנובמבר 1610 שנים יש לך חוסר הבנה של מבנה המערכת- פונקציית js רצה מקומית אצל המשתמש בדפדפן- קוד php רץ אצלך בשרתאתה לא יכול להריץ ישירות php בתוך פונקציית js, אתה צריך שפונקציית ה-js תתקשר עם השרת ותגיד לו להריץ את קוד ה-php
פורסם 2015 בנובמבר 1610 שנים מחבר זהו שאני לא באמת מבין בזה, אני מנסה ללמוד על ידי ניסוי וטעייה באמצעות גזרי קוד שאני מוצא ומחר אי שם ברשת.פה הוא עשה בדיוק את זה:http://stackoverflow.com/questions/23298974/update-sql-table-with-button-clickאבל לא הצלחתי לממש שם את הרעיון כמו שצריך.לא משנה, אני אסביר את עצמי קצת יותר לעומק אולי אפשר להסתדר בקלות יתרה -אני בסך הכל רוצה חלון שמציג את מספר ההורדות לקובץ.הקישור שעשיתי הוא מאוד מרוכב עם כמה תמונות מתחלפות וסקריפט לניגון סאונד ועוד כמה שטויות לכן חשבתי שאת הפעולה של +1 יהיה קל יותר להדביק להצמיד אליו באמצעות JS.כרגע העפתי את כל עניין הJS מהקוד הקודם, כעט הוא מציג את חלון מספר ההורדות הנוכחי שנמשך מהטבלה.איך אני עושה מקש +1 בצורה הכי פשוטה בעולם??הקוד שאני צריך זה בעצם (או משהו כזה?!):"UPDATE counter SET num=$num+1 WHERE id=0"וזה האתר:<html><body><?php$servername = "32131321";$username = "3213321";$password = "12132136";$dbname = "321321313";$conn = new mysqli($servername, $username, $password, $dbname);$sql = "SELECT num FROM counter WHERE id=0";$result = $conn->query($sql); while($row = $result->fetch_assoc()) { echo "Downloads: <input type='numbers' size=1 value=". $row["num"].">"; }$conn->close();?> </body></html>
פורסם 2015 בנובמבר 1610 שנים פה הוא עשה בדיוק את זה:http://stackoverflow.com/questions/23298974/update-sql-table-with-button-clickאבל לא הצלחתי לממש שם את הרעיון כמו שצריך.נכון, בלינק שהבאת שואל השאלה ניסה בדיוק את מה שניסית, וזה באמת לא עבד לו. לכן הוא שאל את השאלה - וענו לו בדיוק מה שענו לך.העניין הוא שקוד הPHP שבדף רץ בדיוק פעם אחת - לפני שהוא מוצג. היות שאתה יכול לבצע שינוי לטבלה אך ורק מPHP (ולא באמצעות JS בלבד), אתה צריך שקוד PHP נוסף ירוץ, וזה אפשרי אך ורק בטעינת דף נוספת. כלומר אתה צריך (באמצעות JS או באמצעים אחרים) שהדף יטען מחדש או שיטען דף נוסף במקביל (לא חייב להיות מוצג) כדי לבצע את הפעולה הזו.דוגמה גסה למדי, כדי להבהיר את הרעיון:<?php$servername = "32131321";$username = "3213321";$password = "12132136";$dbname = "321321313";$conn = new mysqli($servername, $username, $password, $dbname);if ($_GET['up'] == '1'){ mysqli_query($conn, "UPDATE counter SET num = num + 1 WHERE id = 0");}$sql = "SELECT num FROM counter WHERE id=0";$result = $conn->query($sql);while($row = $result->fetch_assoc()) {echo "Downloads: <input type='numbers' size=1 value=". $row["num"].">";}$conn->close();?><a href="?up=1">add 1</a>
פורסם 2015 בנובמבר 1710 שנים מחבר כן לקח לי קצת זמן אבל הסוף הבנתי למה הוא התכוון.זה בדיוק מה שרציתי. שכללתי והוספתי עמוד נוסף update.php שאליו הפונקציה מתקשרת וזה עובד מצוין.תודה על העזרה זה לא מובן מאילו! עכשיו יש לי בעיה קטנה בקובץ החדש, הוא לא מצליח למשוך את הערך המספרי מהעמוד הקודם בעזרת הקוד$_POST['num'] הוא פשוט מציב לי 0 במקום את הערך מהטבלה ואז הוא ודפק לי 0+1=1 ודורס את מה שהיה בטלבה.למה הוא למצליח לייבא את הנתון הנכון?לא יודע מה נדפק עם הפורום הוא לא נותן לי להעלות את הקוד שלי לפה, הנה update.php בקישור חיצוני מתנצל על אי הנוחות עמכם הסליחה =]https://drive.google.com/file/d/0Bwj2vfN_VGZMRXRfYWxCMXZ1Rlk/view נערך 2015 בנובמבר 1710 שנים על-ידי furyanaor
פורסם 2015 בנובמבר 1710 שנים למה אתה רוצה להעביר את הערך דרך הPOST? אם הבנתי נכון ואתה בסך הכל רוצה לקדם את הערך בטבלה ב1, אין שום צורך להעביר ערכים לשום מקום, אתה יכול לעשות את זה בתוך הSQL ישר, כמו בדוגמה שהבאתי:mysqli_query($conn, "UPDATE counter SET num = num + 1 WHERE id = 0");
פורסם 2015 בנובמבר 1710 שנים מחבר חחח אתה שואל למה כאילו שאני יודע תודה רבה זה עובד כמצופה ואפילו מצוין ! רק האם יש אפשרות כל שהיא לעדכן בעמוד הקודם את הנתון המוצג בחלונית input מבלי לעשות ריפרש? (זה שמגיע לפני השיגור לupdate.php) ודבר אחרון שהוא וודאי קצת מסובך יותר אבל זה רק לשם הלמידה זה למעשה download counter ולא סתם click counter כמו שזה יצא. חשבתי ליצור בטבלה עמודה של user ולמלא אותה בנתוני mac address (או אם זה לא אפשרי אז ip לחלופין). כך שכשהמקש נלחץ, מתבצע חיפוש IP בטבלת USER ואם אין רשומה, תוסף אחת כזו והקאונטר שלנו יקבל +1. במידה ויש רשומה אודות user כשזה, הקאונטר יישאר כמו שהוא.
פורסם 2015 בנובמבר 1710 שנים יש דרך לעדכן את העמוד בלי refresh אבל בשביל זה צריך להשתמש בקוד js בתוך הדף. ה-js צריך לשלוח קריאה לשרת עם מנגנון שנקרא ajax ואז לעדכן את הערך בתוך ה-html, ההמלצה שלי היא להשתמש בספרייה כמו jQuery כדי לפשט את העניינים.
פורסם 2015 בנובמבר 1710 שנים מחבר הבנתי את העיקרון, אני בדיוק הגעתי לאילוץ בשימוש jQuery אם אני אסתדר עם זה אני ארענן את השימוש הישן בJSCRIPT ואלמד איך עושים דבר שכזה בינתיים אני מניח לזה. יותר מעניין הנושא של הIP, אני חושב שזו לא בעיה גדולה מידיי לקחת נתונים מהמשתמש ולהזין אותם בטבלה, לא ?
פורסם 2015 בנובמבר 1710 שנים כן השרת שלך יכול לקרוא את ה-IP ממנו הגיע הבקשה ולהכניס את זה לטבלה, את כתובת ה-MAC אתה לא יכול לקבל. לזהות את המשתמשים בעזרת IP זה לא דרך מקובלת בעולם האמיתי אבל לצרכי לימוד זה יעבוד.
פורסם 2015 בנובמבר 1810 שנים מחבר מממ הייתי בטוח שMAC זה מה שעובד בעולם האמיתי אבל אתה אומר שלא ניתן לנטר אותו.מה כן? אייפי נשמע לי קצת תמוהה. ובנוגע לקוד, כיצד מושכים את הIP של הקליינט ומאחסנים בתור משתנה בטבלה ? יש לך שורה וחצי בשלוף או שזה סקריפטים עד להודעה חדשה ?<והתנאי IF שאנחנו מדברים עליו יכול להיעשות כאן באמצעות שימוש פשוט ב JSCRIPT ?
פורסם 2015 בנובמבר 1910 שנים בדרך כלל משתמשים ב-cookies כדי לזהות משתמשים. ip לא משמש לזיהוי כי הוא לא קבוע (אני משתמש במחשב נייד, ה-IP שלי בבית ובמשרד הוא שונה) והוא לא חד ערכי (לכל האנשים במשרד אותו ip חיצוני).לקרוא ip ב-PHP$ip = $_SERVER['REMOTE_ADDR'];
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.