Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di marcoK
    Registrato dal
    Oct 2007
    Messaggi
    36

    UPDATE, strano problema 1064

    Buongiorno a tutti, dopo diversi giorni e diversi forum mi rivolgo a voi per cercare la soluzione ad una query mysql; espongo il problema:
    codice:
    $mod = $_GET['mod'];
    $testo = $_POST['testo'];
    
    if (isset ($testo)){
    	include ("../../konn/konn.php");
    	 echo $testo;
    	$query = "UPDATE sezione SET '$mod'='$testo'";
    	 mysql_query($query,$db);
    	echo "<html>
    <head></head>
    <body>";
    echo  mysql_error();
    echo "</body>
    </html>";
    } else {
    ...
    considerando che:
    - la variabile $testo è un array proveniente da fckeditor in cui è inserito html;
    - ho provato invano a rimuovere anche gli apici;

    secondo voi perchè mi da questo spiacevole errore (Direttivo --> $mod e capperi --> $capperi):
    codice:
    1064
    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 ''Direttivo'='
    capperi
    
    '' at line 1
    Vi ringrazio anticipatamente...
    Marco

  2. #2
    Codice PHP:
    $query "UPDATE sezione SET '$mod'='".$testo."'"
    ma se $testo è un array devi dirgli anche che posizione dell'array cercare per esempio $testo[0] o simili^^

  3. #3
    considera anche che una query cosi' ti modificherebbe tutta la tabella. La sintassi prevede:

    $query = "UPDATE sezione SET nome_campo = '$testo' ";

    il nome campo non va messo tra apici e probabilmente nel tuo caso e' una variabile vuota.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di marcoK
    Registrato dal
    Oct 2007
    Messaggi
    36
    @ Pelatolandia:
    in effetti, complice la stanchezza, ho commesso un errore di spiegazione... non è un array... ma il risultato dell'invio del form di Fckeditor tramite method="post"; avevo già provato a separarlo come hai suggerito tu dal resto della query ".$testo."'" senza ottenere risultato.

    @piero.mac:
    Lo so, purtroppo è una tabella molto particolare e poco convenzionale. Ha 1 solo record e i nomi dei campi sono formati necessariamente da due parole, Consiglio Direttivo per esempio, questo spiega la motivazione dell'aver utilizzato gli apici anche per il nome del campo (altrimenti avrebbe preso solo Direttivo e bloccato in errore)... le variabili che passano sono piene, infatti ho fatto un controllo echo, sia mysql_err() che delle variabili $mod e $testo e i dati appaiono completi; in aggiunta, su altre pagine create con query identiche e nomi di campo composti tutto ciò non crea problemi e il codice funziona regolarmente apportando l'UPDATE al record...

    posto il codice completo ed il risultato ottenuto:
    Codice PHP:
    <?php
    session_start
    ();
    if (!isset(
    $_SESSION['tray_Amministrazione'])) {
        
    header("Location: ../../shared/skin.php");
        exit;
    }
    $mod $_GET['mod'];
    $testo $_POST['testo'];

    if (isset (
    $testo)){
        include (
    "../../konn/konn.php");
        
    $query "UPDATE sezione SET $mod = '".$testo."'";
        
    mysql_query($query,$db);
        echo 
    "<html>
    <head></head>
    <body>"
    ;
    echo 
    mysql_errno()."
    "
    ;
    echo 
    mysql_error()
    ;
    echo 
    $mod."
    "
    ;
    echo 
    $testo."</body>
    </html>"
    ;
    } else {

    $mod $_GET['mod'];

    include_once(
    "fckeditor/fckeditor.php") ;
    include (
    "../../konn/konn.php");

    $query "SELECT * FROM sezione";
    $dbResult mysql_query($query,$db);
    $row mysql_fetch_array($dbResult);
    ?>
    <div id='contenuto'>
      <table width="100%" height="397" border="0" align="center">
        <tr>
      <td height="25" align="center" valign="middle" bgcolor="#0099FF"><h3>Modifica <?php echo $mod?></h3></td>
      </tr>
              <tr>
                
          <td height="366" align="center" valign="top" bgcolor="#00CCFF">
    <form action="page_site.php?mod=<?php echo $mod?>" method="post">
    <?php
    $pagemod 
    $row[$mod];
    $oFCKeditor = new FCKeditor('testo') ;
    $oFCKeditor->BasePath 'fckeditor/' ;
    $oFCKeditor->Value $pagemod;
    $oFCKeditor->Create() ;
    ?>
       

       <input type="submit" value="Submit">
     </form></td>
              </tr>
      </table>
    </div>
    <?php
    };
    ?>
    1064
    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 'Direttivo = '
    Consiglio Direttivo
    ULTIME ELEZIONI EFFETTUATE: Aprile 2009
    ...
    [CODE]
    Grazie.

  5. #5
    Utente di HTML.it L'avatar di marcoK
    Registrato dal
    Oct 2007
    Messaggi
    36
    Problema risolto...
    era legato al nome del campo $mod: non accetta in nessun modo che abbia uno spazio al suo interno...

    Eppure era la prima cosa che avevo verificato modificando proprio il nome del campo togliendone lo spazio... misteri del php/mysql

    Grazie comunque!
    marco

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.