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

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

bilopay 29-01-09 17:47

בעיה | מחיקת כמה רשומות מהמסד
 
בעיה שאני מנסה למחוק כמה רשומות מהמסד זה נותן לי שגיעה
קוד php:

PHP קוד:

<?
if (!isset($_POST['supportdel']))
{}
else
{
$id123 htmlspecialchars$_POST['supportid'] ) ;
$array = array();
foreach ( 
$id123 as $k => $v )
 
$array[] = $k;
$ids implode(","$array);
$link mysql_connect("localhost" "root" "") or die('Mysql Error: ' mysql_error());
 
mysql_select_db("academicstar",$link) or die('Mysql Error: ' mysql_error());
mysql_query("DELETE FROM support WHERE id IN ('$ids')") or die("ERROR: ".mysql_error());
}
?>

השגיעה:
PHP קוד:

WarningInvalid argument supplied for foreach() in c:wampwwwacademicstaradminsupportadmin.php on line 8 


בניה 29-01-09 18:12

נראה שהמשתנה:
$_POST['supportid']
בכלל לא מערך.
תבדוק שהנתונים שאתה מקבל באמת הם מה שאתה חושב שהם.
וגם הקוד קצת מבוגלאן.הייתי מסדר אותו יותר.

daMn 29-01-09 18:14

$_POST['supportid'] הוא לא מערך $_POST הוא מערך.
אתה לא יכול לעשות foreach על סטרינג.

ובגדול תסדר את הקוד, למשל התנאי הראשון שלך, לא קורה בו כלום, אז תוריד סימן קריאה ותבצע ישר לelse.

bilopay 29-01-09 18:29

הנתונים נכונים
זה עדיין לא עובד

daMn 29-01-09 18:32

ציטוט:

נכתב במקור על ידי bong.co.il (פרסם 695535)
הנתונים נכונים
זה עדיין לא עובד

אתה לא מקשיב, $_POST['supportid'] הוא לא מערך אלא אם שינית משהו(מה שאני לא מאמין).
אתה לא יכול לבצע foreach או implode או כל פעולה שאפשר לעשות על מערך על סטרינג.

מה הנתון שאתה מקבל ב$_POST['supportid']?

bilopay 29-01-09 18:59

את הid של הנתונים שאני רוצה למחוק

daMn 29-01-09 19:20

באיזה תצורה אתה מקבל אותם?
תראה לי דוגמא של כמה idים שאתה מקבל..איך אתה מקבל אותם..מה הקלט

bilopay 29-01-09 19:31

אני מקבל אותם כמו מה שאני מקבל מתיבת טקסט רגילה

daMn 29-01-09 19:33

ציטוט:

נכתב במקור על ידי bong.co.il (פרסם 695572)
אני מקבל אותם כמו מה שאני מקבל מתיבת טקסט רגילה

אתה מקבל אותם ככה: "5"
או ככה: "8,9,55,46"
או צורה אחרת?

בכ"מ זה סטרינג ואל תבצע פעולות של מערך עליו.

bilopay 29-01-09 19:42

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

בניה 29-01-09 20:10

ציטוט:

נכתב במקור על ידי bong.co.il (פרסם 695580)
אני מקבל אותו רגיל כמו שאני מקבל כל דבר מטופס
מה אני צריך לעשות כדי שזה יצליח למחוק כמה דברים ביחד?
אתם יכולים לתקן תקוד שנתתי?

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

<?php
if (isset($_POST['supportdel']) && is_array($_POST['supportdel'])) {
//$id123 = htmlspecialchars( $_POST['supportid'] ) ;
$array = array();
foreach ( 
$_POST['supportid'] as $k => $v ) {
 
$array[] = intval($k);//make sure that only int numbers will go on to our query
}
$ids implode(","$array);
$link mysql_connect("localhost" "root" "") or die('Mysql Error: ' mysql_error());

mysql_select_db("academicstar"$link) or die('Mysql Error: ' mysql_error());
$sql "DELETE FROM `support` WHERE id IN ({$ids})";
mysql_query($sql) or die("ERROR: ".mysql_error() . " The query was: ".$sql);

echo 
"The rows with the ids: {$ids} has been successfuly deleted";

} else {
    echo 
'the input is not good';
}
?>


bilopay 29-01-09 20:45

זה לא עובד זה לא מוחק כלום וזה מדפיס the input is not good

בניה 29-01-09 20:48

ציטוט:

נכתב במקור על ידי bong.co.il (פרסם 695606)
זה לא עובד זה לא מוחק כלום וזה מדפיס the input is not good

ואתה לא עונה לנו על השאלות שאנחנו שואלים אותך,שרק אם תענה עליהן נוכל לעזור לך.
קראת את הקוד?
if (isset($_POST['supportdel']) && is_array($_POST['supportdel'])) {
ז"א אם המשתנה הזה שאמור להיות מערך, לא קיים או לא מכיל מערך הוא ידפיס input not good
ז"א שמשהו לא טוב בטופס שלך.

bilopay 29-01-09 20:50

אבל המשתנה לא מערכך אני פשוט מקבל את הערך של הid מהתיבת סימון
איך לסדר את הטופס?

בניה 29-01-09 21:22

אני לא יודע איך הטופס נראה,או מה הוא מכיל.
אבל בכללי כדי לשלוח מערך לPHP מטופס מוסיפים [] ב name
לדוג'
אם יש לך 5 input type="text " ואתה רוצה לשלוח אותם כמערך אתה עושה כזה דבר:
קוד:

<input type="text" name="ipt[]" />
<input type="text" name="ipt[]" />
<input type="text" name="ipt[]" />
<input type="text" name="ipt[]" />
<input type="text" name="ipt[]" />
<input type="text" name="ipt[]" />

ואז אם תעשה בשרת כזה דבר:
PHP קוד:

print_r($_POST['ipt']) 

אתה תראה איך הנתונים מסודרים במערך.

bilopay 30-01-09 13:05

הצלחתי אפשר לנעול


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

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