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

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



  #1  
ישן 07-06-2006, 10:26
  המחפש המחפש אינו מחובר  
 
חבר מתאריך: 24.11.05
הודעות: 317
בעיה בהכנסת נתונים למסד

שלום,
יש לי את הקוד הבא:
קוד PHP:
 foreach ($_POST as $k=>$x)
     {
        if (
$k=="posted" || $k=="submit")
         continue;
            
$cond .= "`{$k}`='{$x}',";
     }
     
$cond[strlen($cond)-1]="";
     
$cond "UPDATE `cms_data` SET ".$cond." WHERE `id`='".$id."'";
     echo 
$cond;
     
mysql_query($cond) or die(mysql_error()); 

והmysql_error מציג לי:
קוד PHP:
 You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE `cms_data` SET `fullname`='testinggg',`pack`='test',`comment`='te  sting te' at line 1 


והפלט של cond זה:
קוד PHP:
 UPDATE `cms_dataSET `fullname`='testinggg',`pack`='test',`comment`='te  sting testing',`tesing`='test',`check`='test',`email`='t  eest',`sapar`='testing',`date`='test',`hour`='test  ' WHERE `id`='7' 

ואני לא מוצא את הבעיה..
מישהו יכול לעזור לי?

תודה מראש

נערך לאחרונה ע"י המחפש בתאריך 07-06-2006 בשעה 10:38.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 07-06-2006, 16:39
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 1 שנכתבה על ידי המחפש שמתחילה ב "בעיה בהכנסת נתונים למסד"

1. אתה פותח פתח להזרקות בצורה כזאת, מוטב שתשרשר ידנית את השדות הרצויים, ואת הערך המתקבל מהלקוח "תבריח" באמצעות הפונקצי המתאימה.

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

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

4. אם אתה כבר תוחם מחרוזת במרכאות כפולות -מה שאומר שבמידה מסויימת ניתוח המחרוזת יתבצע במורה מורכבת יותר- אז למה לסגור את המחרוזת כדי לשלב בו משתנים ? תבחר את הדרך הנוחה לך:
קוד PHP:
 "UPDATE `cms_data` SET $cond WHERE `id`='$id'";
or
'UPDATE `cms_data` SET '.$cond.' WHERE `id`=\''.$id.'\''


5. לא כל קוד צריך לתחום בתגי PHP, בשביל זה יש את התג CODE, זה מרל על הקריאות.

בהצלחה
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 07-06-2006, 18:22
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 5 שנכתבה על ידי המחפש שמתחילה ב "1. אוקי, נלקח לצומת ליבי. ..."

5. יש כאן בפורום תג PHP ותג CODE.
התג PHP נועד לקוד php, ומתאים גם למספר שפות תכנות, אך ממש לא להודעות שגיאה, שאילתות SQL וכל מלל שהצבעים בו לא יוצגו בהתאם לחוק מסויים [מה שהופך את ההודעת שגיאה ובמיוחד שאילתות לפחות קריא מאשר ההודעה המקורית בצבע אחיד].

נסיתי שוב לראות היכן הבעיה בשאילתה, אני לא רואה בעיה. נסה שוב לכתוב את המילה UPDATE, או אף לעשות "העתק הדבק" משורת קוד שכן פועלת כראוי.
תשתדל מאד שלא יהיה שום תו לבן (תו לבן = תו שאינו נראה כגון רווח, טאב, מעבר שורה וכדומה) לפחות בתחילת השאילתה.

אגב, אני מניח שלאחר השינוי, למרות שהוא קטן ולא משמעותי במיוחד, הפלט השתנה, כך שחבל שלא צירפת.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #11  
ישן 07-06-2006, 22:04
  המחפש המחפש אינו מחובר  
 
חבר מתאריך: 24.11.05
הודעות: 317
בתגובה להודעה מספר 10 שנכתבה על ידי ישראל K שמתחילה ב "אז גם בעדכון תקח אותם מהמסד..."

זה הקוד המלא של העמוד:
קוד PHP:
<? ob_start(); ?>
<html dir="rtl" lang="he">
 <head>
  <title>לוח הבקרה למנהלים- עריכת תור</title>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-8-I" />
 </head>
 <body>
  <?php
   
require('db.php');
   
$query mysql_query("SELECT * FROM cms_user WHERE id=1");
   
$arr mysql_fetch_array($query);
   
$check=include "check.php";
   if(
$_COOKIE["cmsname"] == $arr["name"] && $_COOKIE["cmspass"] == $arr["pass"]){ 
    
?>
    <?php 
     $id
=$_GET['id'];
     
$qpage mysql_query("SELECT * FROM cms_form");
     if(
$_POST["posted"] != 1) {     
    
?>
    <form action="editwait.php?id=<?php echo $id?>" method="post">
     <input type="hidden" name="posted" value="1">  
     <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
       <?php
      
while ($apage mysql_fetch_array($qpage)){
       echo 
"<tr><td width='33%'>".$apage["name"]."</td>"
       echo 
"<td width='67%'>";
       
$test=$apage["Ename"];
       
$qpage2 mysql_query("SELECT * FROM cms_data WHERE `id`=".$id);
       
$apage2 mysql_fetch_array($qpage2);
       switch (
$apage["type"])
       {
        case 
1: echo "<input name='".$apage["Ename"]."' size=10 value='".$apage2["$test"]."'>"; break;
        case 
2: echo "<textarea cols=30 rows=10 name='".$apage["Ename"]."' value='".$apage2["$test"]."'>".$apage2["$test"]."</textarea>"; break;
        case 
3: echo "<select size='1' name='".$apage["Ename"]."'>";
         
$qdownbox mysql_query("SELECT `name` FROM `cms_downbox` WHERE `to`='".$apage["id"]."' ORDER BY 'id' ASC") or die(mysql_error);
         while(
$downbox mysql_fetch_assoc($qdownbox)) 
         {
          if (
$downbox["name"] == $apage2["pack"]) {
           
$selected "selected";
          } else {
              
$selected "";
          }
          echo 
"<option ".$selected." value='".$downbox["name"]."'>".$downbox["name"]."</option>";
         }
         echo 
"</select>"; break;
       }
       echo 
"</td>";
       echo 
"</tr>";
       
      }
      echo 
'<tr><td valign=top>תאריך:</td><td><input class="lineinfo" name="date" size=10 value='.$apage2['date'].'></td></tr>';
      echo 
'<tr><td valign=top>שעה</td><td><input class="lineinfo" name="hour" size=10 value='.$apage2['hour'].'></td></tr>';
 
     
?>
     </table>
     <input type="submit" name="submit" value="עדכן שדה!">
    </form>
    <?php
     
} else {
       foreach (
$_POST as $k=>$x)
       {
        if (
$k=="posted" || $k=="submit")
         continue;
            
$cond .= "{$k}='{$x}',";
       }
       
$cond[strlen($cond)-1]="";
       
$cond "UPDATE cms_data SET $cond WHERE `id`=".$id;
       echo 
$cond;
       
mysql_query($cond) or die(mysql_error());
       echo 
"התור נערך בהצלחה<br>"
     }
   } else {
      echo 
'<script language="JavaScript">
        alert("אינך מחובר! אנא התחבר!") ;
       </script>'
;
     }
    
   
  
?>
 </body>
</html>


מה לדעתך הבעיה פה?
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #18  
ישן 09-06-2006, 07:01
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 17 שנכתבה על ידי המחפש שמתחילה ב "המערך POST: [CODE]Array (..."

ראשית כדי שיהיה לכולנו קל יותר לקרוא את הקוד אני מציג את אותו קוד רק עם הזחות:
קוד:
Array ( [posted] => 1 [fullname] => TEST [pack] => תספורת מבוגר [comment] => TEST TEST [tesing] => 1 [check] => 2 [email] => 3 [sapar] => testing [date] => 4 [hour] => 5 [submit] => עדכן שדה! ) UPDATE `cms_data` SET `fullname`='TEST', `pack`='תספורת מבוגר', `comment`='TEST TEST', `tesing`='1', `check`='2', `email`='3', `sapar` ='testing', `date`='4', `hour`='5' WHERE `id`=7 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


תשים לב שכרגע ההודעת שגיאה שונה, רק היות וההודעת שגיאה לא מכילה אף תו מהשאילתה, קשה להבין היכן הבעיה ולמה היא מתייחסת, לכן תנסה בבקשה להגדיר את המשתנה cond באופן הבא, כך אולי לפי מספר השורה בהודעת שגיאה נוכל לדעת היכן הבעיה:
קוד PHP:
 $cond "
    UPDATE cms_data SET
    
$cond
    WHERE `id`=
$id"
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.13 שניות עם 10 שאילתות

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

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