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

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

Megnum 15-01-09 00:52

שאלה | כיצד לבצע עדכון לכל הנתונים
 
שלום חברה.
אני מנסה לעדכן את כל הנתונים של הקטגוריות בעזרת מערך אך ללא הצלחה.
הוא מעדכן אותם נתונים בכל הקטגוריות.
תמונה:
http://jok.co.il/pics/689f52eef4e779...f7a90c3229.gif



להלן הקוד:
PHP קוד:


foreach ($_POST[id] as $ids) {

$query2=mysql_query("update `category_mode` set `name`='$_POST[cat]' where `id`='$ids'");


את האידי אני להעביר מצויין אבל הבעיה היא
שה $_POST[cat] בו יש את הנתונים של כל פקד אך גם אותו צריך להפוך למערך אבל את זה לא הצלחתי כי ניסיתי מערך בתוך מערך וזה משכפל וזה לא טוב.
ובגלל זה הוא מעדכן את אותו השם הקטגוריה בכולם.

אשמח לפתרון התקלה או אם יש דרך טובה יותר לעשות את המערך הזה.

תודה רבה!! ולילה טוב (בתקווה שהחמאסניקים לא יעירו אותי מוקדם)

vadimg88 15-01-09 09:08

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

sholaman 15-01-09 09:59

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

vadimg88 15-01-09 15:34

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

PHP קוד:

<input type='text' name='SS_text1' />
<input type='text' name='SS_text2' />
<input type='text' name='SS_text3' />

<?php


foreach( $_POST as $key => $value )
{
    if( 
preg_match'/^SS_(.*?)/' $key) )
    {
        
$key preg_replace'/^SS_(.*?)/'''$key);
        
$query2 mysql_query("UPDATE category_news SET name = '{$value}' WHERE id = '{$key}'"); 
    }
}


SDF 15-01-09 15:42

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

קוד:

<form method="POST">
        <input type="text" name="data[]">
        <input type="text" name="data[]">
        <input type="text" name="data[]">
        <input type="submit" value="send!">
</form>
<?php
var_dump( $_POST );
?>

http://www.freebsd.co.il/test/inputArray

vadimg88 15-01-09 15:45

זה יעבוד אם לשים בתור המערך data[] איזה אינדקס data[i]

Megnum 15-01-09 15:53

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


PHP קוד:

elseif (isset($_POST[update])) {
foreach (
$_POST[deletoption] as $deleted) {
$query=mysql_query("delete from category_mode where `id`='$deleted'");
}

for(
$index =$index count($_POST[id]); $index++) {

echo 
$_POST[id][$index],"->"$_POST[cat][$index], "<br/>";

$query2=mysql_query("update `category_mode` set `name`='$_POST[cat][$index]' where `id`='$_POST[id][$index]'"); 

}

}

echo 
"<form method='post' name='delete' action=''>\n";
$category=mysql_query("select * from category_mode order by `id` asc");
echo 
"<table class='table' border='0' width='970px'>\n";
while (
$cat=mysql_fetch_array($category)) {
echo 
"<tr valign='top'><td width='200px' valign='top'><input type='hidden' class='name' type='text' name='id[]' value='$cat[id]' /><input class='name' style='width: 200px;' type='text' name='cat[]' value='$cat[name]' /></td><td><select name='deletoption[]'><option value='$cat[id]' name='$cat[id]'>מחק</option><option value='' name='' selected>ללא פעולה</option></select></td>\n";
echo 
"</tr>";
}
echo 
"<tr><td width='200px'><input type='submit' name='update' value='עדכן' /></td><td></td></tr>\n";

echo 
"<table>";
echo 
"</form>\n"


DanielS 15-01-09 16:05

ציטוט:

נכתב במקור על ידי Megnum (פרסם 692974)
סיבכתם אותי חח..
אני מנסה לעדכן ת כל הנתונים בטופס יחדיו.
הנתונים עוברים בהצלחה במערך אבל פקודת הSQL פשוט לא עובדת
והיא נכונה כי בדקתי אותה מחוץ למערך
זה הקוד המלא

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

elseif (isset($_POST[update])) {
    foreach (
$_POST[deletoption] as $deleted) {
        
$query=mysql_query("delete from category_mode where `id`='$deleted'");
    }

    for(
$index =$index count($_POST[id]); $index++) {
        echo 
$_POST[id][$index],"->"$_POST[cat][$index], "<br/>";
        
$query2=mysql_query("update `category_mode` set `name`='{$_POST[cat][$index]}' where `id`='{$_POST[id][$index]}'");
}

}

echo 
"<form method='post' name='delete' action=''>\n";
$category=mysql_query("select * from category_mode order by `id` asc");
echo 
"<table class='table' border='0' width='970px'>\n";
while (
$cat=mysql_fetch_array($category)) {
echo 
"<tr valign='top'><td width='200px' valign='top'><input type='hidden' class='name' type='text' name='id[]' value='$cat[id]' /><input class='name' style='width: 200px;' type='text' name='cat[]' value='$cat[name]' /></td><td><select name='deletoption[]'><option value='$cat[id]' name='$cat[id]'>מחק</option><option value='' name='' selected>ללא פעולה</option></select></td>\n";
echo 
"</tr>";
}
echo 
"<tr><td width='200px'><input type='submit' name='update' value='עדכן' /></td><td></td></tr>\n";

echo 
"<table>";
echo 
"</form>\n"


Megnum 15-01-09 16:06

חחח נשבע לך בדיוק עשיתי אתזה ואז הסתכלתיי באשכול.
תודה רבה ולכל מי שעזר :)


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

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