Foros del Web » Programando para Internet » PHP »

Error con funciones

Estas en el tema de Error con funciones en el foro de PHP en Foros del Web. Bueno, todo empezó cuando en un tutorial que estoy haciendo. MySQL me tiró este error: Database query failedYou have an error in your SQL syntax; ...
  #1 (permalink)  
Antiguo 11/08/2010, 10:24
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 5 meses
Puntos: 15
Error con funciones

Bueno, todo empezó cuando en un tutorial que estoy haciendo. MySQL me tiró este error:

Database query failedYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1


El error parece venir de una de estas dos funciones que no está recibiendo la variable $subject_id:
Código PHP:
function get_subject_by_id($subject_id) {
    global 
$connection;
    
$query "SELECT * ";
    
$query.= "FROM SUBJECTS ";
    
$query.= "WHERE ID = " $subject_id ." ";
    
$query.= "LIMIT 1 ";
    
$result_set mysql_query($query$connection);
    
confirm_query($result_set);
    
// REMEMBER
    // if no rows are returned, fetch array return false.
    
if ($subject mysql_fetch_array($result_set)) {
        return 
$subject;
    } else {
        return 
NULL;
    }
}


function 
get_page_by_id($subject_id) {
    global 
$connection;
    
$query "SELECT * ";
    
$query.= "FROM PAGES ";
    
$query.= "WHERE ID = " $subject_id " ";
    
$query.="LIMIT 1 ";
    
$result_set mysql_query($query$connection);
    
confirm_query($result_set);
    
// REMEMBER
    // if no rows are returned, fetch array return false.
    
if ($subject mysql_fetch_array($result_set)) {
        return 
$subject;
    } else {
        return 
NULL;
    }

La cuestión es que si bien en la página edit_subject.php (que es la que me tira el error) hago un include a la página functions.php que es donde tengo las funciones, en ningún momento que yo sepa, estoy llamando a esa función. Entonces la duda aquí es, ¿por qué me tira ese error?.

Aquí muestro el contenido de edit_subject.php

Código PHP:
<?php require_once ("includes/connection.php");?>
<?php 
require_once ("includes/functions.php");?>
<?php 
    find_selected_page
();    
?>

<?php
    
if (intval($_GET['subj']) == ) {
        
redirect_to("content.php");
        
    }
    if (isset(
$_POST['submit'])) {
        
$errors = array();
        
        
$required_fields = array('menu_name''position''visible');
        foreach(
$required_fields as $fieldname) {
            if (!isset(
$_POST[$fieldname]) || (empty($_POST[$fieldname]) && ($_POST[$fieldname]) !=0)) {
                
$errors[] = $fieldname;
            }
        }
        
$fields_with_lenghts = array('menu_name' => 30);
        foreach(
$fields_with_lenghts as $fieldname => $maxlength) {
            if (
strlen(trim(mysql_prep($_POST[$fieldname]))) > $maxlength) {
                
$errors[] = $fieldname;
            }
        }
        
        if (empty(
$errors)) {
            
//perform update
            
$id mysql_prep($_GET['subj']);
            
$menu_name mysql_prep($_POST['menu_name']);
            
$position mysql_prep($_POST['position']);
            
$visible mysql_prep($_POST['visible']);
            
            
$query "UPDATE subjects SET
                        menu_name = '$menu_name', 
                        position = $position,
                        visible = $visible
                      WHERE id = $id"
;
            
$result mysql_query($query$connection);
            if (
mysql_affected_rows() == 1) {
                
//Success
            
} else {
                
//failed
            
}
            
        } else {
            
//errors occurred    
        
}
        
        
        
        
    } 
// end if (isset($_POST['submit']))
?>

<?php include ("includes/header.php");?>
        <table id="structure">
            <tr>
                <td id="navigation">
                    <?php echo navigation($sel_subject$sel_page);?>
                </td>
                <td id="page">
                <h2>Edit Subject <?php echo $sel_subject['menu_name'];?></h2>
                <form action="edit_subject.php?subj=<?php urlencode($sel_subject['id']); ?>" method="post">
                    <p>Subject Name:
                        <input type="text" name="menu_name" value="<?php echo $sel_subject['menu_name'];?>" id="menu_name" />
                        
                    </p>
                    <p>Position:
                        <select name="position">
                        <?php
                            
//subject_count +1 because we're adding a subject
                            
$subject_set get_all_subjects();
                            
$subject_count mysql_num_rows($subject_set);
                            for (
$count=1$count <= $subject_count+1$count++){
                                echo 
"<option value=\"{$count}\"";
                                if (
$sel_subject['position'] == $count) {
                                    echo 
"selected";
                                }
                                echo 
">{$count}</option>";
                                
                            }
                        
?>
                            
                        </select>
                    </p>
                    <p>Visible:
                    <input type="radio" name="visible" value="0"<?php
                    
if ($sel_subject['visible'] == 0) {echo "checked";}?> /> No
                    &nbsp
                    <input type="radio" name="visible" value="1"<?php
                    
if ($sel_subject['visible'] == 1) {echo "checked";}?> /> Yes
                    </p>
                    <input type="submit" name="submit" value="Edit Subject" />
                 </form>
                <br />    
                <a href="content.php">Cancel</a>
                     
                </td>
             </tr>
          </table>
       </div>
<?php require ("includes/footer.php");?>
  #2 (permalink)  
Antiguo 11/08/2010, 11:02
Avatar de pipev25  
Fecha de Ingreso: septiembre-2009
Mensajes: 93
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Error con funciones

Hola, la verdad no entiendo por que separas en varias lineas el query y segundo por que no ensayas poniendo el error poniendo LIMIT 0,1 por que es la sintaxis adecuada y el error te lo esta generando alli precisamente

"SELECT *
FROM SUBJECTS
WHERE ID = '$subject_id'
LIMIT 0,1 ";
  #3 (permalink)  
Antiguo 11/08/2010, 12:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: Error con funciones

Probaré a ver si así me funciona
  #4 (permalink)  
Antiguo 12/08/2010, 11:32
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: Error con funciones

El problema creo que no tiene que ver con eso. Sino que la función no está recibiendo la variable $subject_id; pero lo curioso es que en ningún momento la estoy llamando. No entiendo
  #5 (permalink)  
Antiguo 16/08/2010, 11:24
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: Error con funciones

¿Nadie sabe donde podría estar el error, es que por más que trato de encontrarlo no lo encuentro?
  #6 (permalink)  
Antiguo 16/08/2010, 14:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error con funciones

Cita:
Iniciado por alvarols Ver Mensaje
¿Nadie sabe donde podría estar el error, es que por más que trato de encontrarlo no lo encuentro?
antes de ejecutar la consulta procura imprimirla y verificarla por ti mismo...
Código PHP:
echo $query
¿esta bien formulada?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 16/08/2010, 15:35
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: Error con funciones

Parece que ya encontré de donde viene el problema.

Etiquetas: funciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:25.