Foros del Web » Programando para Internet » PHP »

Update no reconoce where pero si reconoce la variable de condición

Estas en el tema de Update no reconoce where pero si reconoce la variable de condición en el foro de PHP en Foros del Web. Tengo un sitio para modificar noticas, un formulario recorreo todos los titulos de las noticias en la base de datos y otro formulario toma el ...
  #1 (permalink)  
Antiguo 24/08/2010, 02:37
Avatar de MarioAlejandroCR2  
Fecha de Ingreso: mayo-2010
Ubicación: Esparza - Puntarenas
Mensajes: 98
Antigüedad: 14 años
Puntos: 2
Pregunta Update no reconoce where pero si reconoce la variable de condición

Tengo un sitio para modificar noticas, un formulario recorreo todos los titulos de las noticias en la base de datos y otro formulario toma el valor enviado en el anterior rellena los datos cuando noticia es igual al valor dicho anteriormente, hasta funciona bien, pero el update toma todos los datos excepto el titulo, lo extraño es que si lo reconoce para haber llenado, pero si se pone en el where ya no la reconoce, este es el código.

Código PHP:
Ver original
  1. <?php
  2. require_once('conexion.php');
  3.  
  4. //Funcion que devuelve el tipo de dato que se desea aplicar a una consulta de sql de
  5. // insert o update,
  6. function ObtenerValor($elValor, $elTipo, $elValorDefinido = "", $elValorSinDefinir = "")  
  7. {
  8. $elValor = (!get_magic_quotes_gpc()) ? addslashes($elValor) : $elValor;
  9. switch ($elTipo) {
  10. case "text":
  11. $elValor = ($elValor != "") ? "'" . $elValor . "'" : "NULL";
  12. break;    
  13. case "long":
  14. case "int":
  15. $elValor = ($elValor != "") ? intval($elValor) : "NULL";
  16. break;
  17. case "double":
  18. $elValor = ($elValor != "") ? "'" . doubleval($elValor) . "'" : "NULL";
  19. break;
  20. case "date":
  21. $elValor = ($elValor != "") ? "'" . $elValor . "'" : "NULL";
  22. break;
  23. case "defined":
  24. $elValor = ($elValor != "") ? $elValorDefinido : $elValorSinDefinir;
  25. break;
  26. }
  27. return $elValor;
  28. } //fin de la funcion
  29. ?>
  30. <?php
  31. require_once('conexion.php');
  32.  
  33. //cAPTURA VALOR ENVIADO COMO PARAMETRO
  34. //Consulta los row_regis del usuario para la interfase
  35. mysql_select_db($Basedatos, $MiConexion);
  36. $AuxSql = "SELECT * FROM noticia order by idnoticia desc";
  37. $regis = mysql_query($AuxSql, $MiConexion) or die(mysql_error());
  38. $Accion_Formulario = $_SERVER['PHP_SELF'];
  39. if ((isset($_POST["OC_insertar"])) && ($_POST["OC_insertar"] == "formita")) {
  40. $SQL = sprintf("select * from noticia where titulo='".$_POST['lsttitulo']."' order by idnoticia desc");
  41. mysql_select_db($Basedatos, $MiConexion);
  42. $regis2 = mysql_query($SQL, $MiConexion) or die(mysql_error());
  43. $row_regis2= mysql_fetch_assoc($regis2);
  44. }// fin del if
  45. ?>
  46. <?php
  47. $Formulario = $_SERVER['PHP_SELF'];
  48. if ((isset($_POST["OC_insertar"])) && ($_POST["OC_insertar"] == "formitamod")) {
  49. $insertSQL = sprintf("update noticia set titulo='".$_POST['titulo']."',contenido='".$_POST['contenido']."',autor='".$_POST['autor']."',fecha='".$_POST['fecha']."',hora='".$_POST['hora']."',tag='".$_POST['tag']."' where titulo = '".$row_regis["titulo"]."'");
  50.  
  51. mysql_select_db($Basedatos, $MiConexion);
  52. $Result1 = mysql_query($insertSQL, $MiConexion) or die(mysql_error());
  53.  
  54. echo $insertSQL;
  55. //$insertIrA = "./supexitomodnoticia.php?noti=".$_POST['titulo'];
  56. //header(sprintf("Location: %s", $insertIrA));
  57.  
  58. };// fin del if
  59. ?>
  60. <!DOCTYPE HTML>
  61. <html>
  62. <head>
  63. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  64. <title>Tecnologías de Información | UTN Costa Rica - Puntarenas</title>
  65. <link href="estilo.css" rel="stylesheet" type="text/css">
  66. <!--Invoca a la hoja de estilos CSS-->
  67. </head>
  68.  
  69. <body>
  70. <section><!--Sección para el banner y menú-->
  71.   <div class="banner"><!--Div que contiene el banner, el menu de navegación y el banner inferior-->
  72.     <img src="media/img/banner.png"/><!--Banner principal de la página-->
  73.     <nav>
  74.       <ul class="menu utntip">
  75.         <!--Menú de navegación-->
  76.         <li><a href="index.php" title="Visitar este sitio web como visitante" target="_new">Ver Sitio</a></li>
  77.         <li><a href="supadmindex.php" title="Página de inicio del ...
  78.       </ul>
  79.       <!--Cierre del menú-->
  80.     </nav>
  81.     <img src="media/img/bannerbajo.png" /><!--Banner inferior de la página-->
  82.   </div>
  83.   <!--Cierra banner-->
  84. </section>
  85. <section>
  86.   <div class="divcont"><!--Div que contiene el marco de la sección media de la página divcontgral, divsep y divlat-->
  87.    
  88.     <div class="divizq"><!--Marco izquierdo de la sección media-->
  89.      
  90.       <div class="divgral"><!--Div que contiene los elementos principales como noticias, galerias entre otros-->
  91.         <img src="media/img/sup_gral.png" />
  92.         <div class="divadd"><!--Div que contiene las entradas de inicio-->
  93.         <h1>Modificar noticia</h1>
  94.           Seleccione la noticia que desea modificar
  95.  <form method="post" name="formita" onsubmit='return checkdata(this)' action="<?php echo $Accion_Formulario; ?>" >
  96.               <select name="lsttitulo">
  97. <?php
  98. while($row_regis = mysql_fetch_assoc($regis)){
  99. echo "<option value='".$row_regis["titulo"]."'>".$row_regis["titulo"]."</option>";
  100. $nota = $row_regis["titulo"];
  101. }
  102. $notb = $row_regis["titulo"];
  103. ?>
  104.             </select></td>
  105.         </tr>
  106.         <tr>
  107.           <td><input name="enviar" type="submit" value="Mostrar" class="white"/>
  108.             <p></p></td>
  109.         </tr>
  110.         <tr>
  111.           <td><hr /></td></tr>
  112.         <input type="hidden" name="OC_insertar" value="formita">
  113.       </form>
  114.      
  115.       <?php
  116.       echo "<form method='post' name='formita' onsubmit='return checkdata(this)'>";
  117.           $not = $row_regis2['titulo'];
  118.           echo "<div>ID Noticia:</div>";
  119.           echo "<div><input name='idnoticia' value='".$row_regis2['idnoticia']."' type='text' size='80' maxlength='9' /></div>
  120.          <div>Título:</div>
  121.          <div><input name='titulo' value='".$row_regis2['titulo']."' type='text' size='80' maxlength='9' /></div>
  122.          <div>Contenido:</div>
  123.          <div><textarea name='contenido' type='text' style='width:500px; height:500px;'>".$row_regis2['contenido']."</textarea></div>
  124.          <div>Autor:</div>
  125.          <div><input name='autor' value='".$row_regis2['autor']."' type='text' size='80' maxlength='9' /></div>
  126.          <div>Fecha:</div>
  127.          <div><input name='fecha' value='".$row_regis2['fecha']."' type='text' size='80' maxlength='10' /></div>
  128.          <div>Hora:</div>
  129.          <div><input name='hora' value='".$row_regis2['hora']."' type='text' size='80' maxlength='9' /></div>
  130.          <div>Categoría:</div>
  131.          <div><input name='tag' value='".$row_regis2['tag']."' type='text' size='80' maxlength='9' /></div>
  132.          <br />";
  133.                
  134.  echo "<div><input name='enviar' type='submit' value='Modificar noticia' class='white'/></div>
  135.        <input type='hidden' name='OC_insertar' value='formitamod'>
  136.      </form>";
  137. ?>
  138.           <p></p>
  139.         </div>
  140.         <!--Cierra add-->
  141.       </div>
  142.       <!--Cierra divgral--><img src="media/img/baj_gral.png" /> </div>
  143.     <!--Cierra divizq-->
  144.    
  145.     <div class="divsep"></div>
  146.     <!--Div que separa el marco derecho del izquierdosolo es estetico-->
  147.    
  148.     <div class="divlat"><!--Div de función de logeuo, informativo, entre otras-->
  149.      
  150.       <div class="divsocial"> <!--Div para uso social, en redes, principalmente twitter-->
  151.        
  152.         <div class="divminilat"><img src="media/img/sup_lat.png" /> <br />
  153.           <a href="http://www.facebook.com/home.php?#!/profile.php?id=100001259469833&v=wall" target="_new"><img style="border:none;" src="media/iconos/FaceBook.png" onmouseover="this.src='media/iconos/Hover_FaceBook.png'" onmouseout="this.src='media/iconos/FaceBook.png'"/></a><!--Conexión a Facebook--><a href="https://twitter.com/UTNTIPACIFICOCR" target="_new"><img style="border:none;" src="media/iconos/twitter.png" onmouseover="this.src='media/iconos/Hover_twitter.png'" onmouseout="this.src= 'media/iconos/twitter.png'"/></a><!--Conexión a Twitter--><img style="border:none;" src="media/iconos/feed.png" onmouseover="this.src='media/iconos/Hover_feed.png'" onmouseout="this.src= 'media/iconos/feed.png'"/><!--Conexión aún no creada a fuente de rss-->&nbsp;
  154.           <script src="http://widgets.twimg.com/j/2/widget.js"></script><!--Script para conectar a Twitter-->
  155.           <script src="twitter.js"></script><!--Propiedades del gadget de twitter-->
  156.         </div>
  157.         <!--Cierra el divminilat de las redes sociales-->
  158.         <img src="media/img/baj_lat.png" /> </div>
  159.       <!--Cierra divsocial-->
  160.      
  161.       <div class="divseplat"></div>
  162.       <!--Div con funciones de diseño para separa divminilat`s-->
  163.      
  164.       <div class="divsocial"><!--Div para enmaque de divsocial-->
  165.         <div class="divminilat"><!--Div que funciona para logueo-->
  166.           <div class="divlogi"><!--Div para logueo-->
  167.             <img src="media/img/sup_lat.png" />
  168.             ploc
  169.             </div>
  170.           <!--Cierra divlogui-->
  171.         </div>
  172.         <!--Cierra minilat-->
  173.         <img src="media/img/baj_lat.png" /> </div>
  174.       <!--Cierra divsocial-->
  175.    
  176.     </div>
  177.     <!--Cierra divlat-->
  178.    
  179.   </div>
  180.   <!--Cierra divcont-->
  181. </section>
  182. </body>
  183. </html>

Disculpen si se va código de más pero es para que nop omitir nada, llevo rato creando variables y ninguna es reconocida, la pagina es para modificar....
Imprimo lo que lleva a la hora de insertar pero me da el siguiente informe:
Código PHP:
Ver original
  1. Notice: Undefined variable: row_regis in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\ti\supmodnoticias.php on line 50 update noticia set titulo='hello lad',contenido='Finito alpha Cómo podemos descartar que se puede haber desarrollado la ... entrevista al periódico, cuyo titular era: “El extraterrestre es mi hermano”. “Así..., podría haber otros seres, incluso inteligentes, creados por Dios. Esto no contradice nuestra fe, porque no podemos poner límites a la libertad creadora de DIOS... del universo. Pero aún así, “continúo creyendo que Dios es el creador del universo y que no somos el producto del azar”, dijo Funes en la entrevista. ',autor='GTA',fecha='2010-08-21',hora='00:29:37',tag='Noticia' where titulo = ''

De antemano gracias, y la noticia es rara, era algo que copie y pegue jaja

Última edición por MarioAlejandroCR2; 24/08/2010 a las 03:07 Razón: Ampliar información de ayuda
  #2 (permalink)  
Antiguo 24/08/2010, 03:17
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Update no reconoce where pero si reconoce la variable de condición

Buenas,

Si te fijas, en la linea 50 que es donde te marca el error. A lo último... tienes esto:

Código PHP:
Ver original
  1. where titulo = '".$row_regis["titulo"]."'");

Cuando debería de seri:

Código PHP:
Ver original
  1. where titulo = '".$row_regis2["titulo"]."'");

Prueba ahora y comentar.

Saludos,
  #3 (permalink)  
Antiguo 24/08/2010, 13:51
Avatar de MarioAlejandroCR2  
Fecha de Ingreso: mayo-2010
Ubicación: Esparza - Puntarenas
Mensajes: 98
Antigüedad: 14 años
Puntos: 2
Respuesta: Update no reconoce where pero si reconoce la variable de condición

Aún no lo reconoce de hecho sigue con este error:
Código PHP:
Ver original
  1. Notice: Undefined variable: row_regis2 in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\ti\supmodnoticias.php on line 50 update noticia set titulo='hello lad',contenido='Finito alpha Cómo podemos descartar que se puede haber desarrollado la vida en otra parte?, dijo Funes en una entrevista al periódico, cuyo titular era: “El extraterrestre es mi hermano”. “Así como hay multitud de criaturas en la Tierra, podría haber otros seres, incluso inteligentes, creados por Dios. Esto no contradice nuestra fe, porque no podemos poner límites a la libertad creadora de Dios”, agregó Funes citado por el periódico. Así como nosotros consideramos a las criaturas terrenales como ‘hermano’ y ‘hermana’, ¿por qué no debemos hablar sobre un ‘hermano extraterrestre’? El todavía sería parte de la creación”, aseguró. Funes dijo que la ciencia, sobre todo la astronomía, no contradice la religión, con lo que mencionó un tema al que recurre a menudo Benedicto XVI, quien durante su papado ha hecho énfasis en explorar la relación entre la fe y la razón. La Biblia “no es un libro de ciencia” y la búsqueda de hechos científicos sobre el universo y su origen no pone ninguna duda en el papel de Dios en su creación, agregó Funes en la entrevista. Como ejemplo, el sacerdote dijo que él cree que la teoría del “Big Bang” o teoría de la gran explosión es la explicación más “razonable” de la creación del universo. Pero aún así, “continúo creyendo que Dios es el creador del universo y que no somos el producto del azar”, dijo Funes en la entrevista. ',autor='GTA',fecha='2010-08-21',hora='00:29:37',tag='Noticia' where titulo = ''
  #4 (permalink)  
Antiguo 24/08/2010, 14:32
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Update no reconoce where pero si reconoce la variable de condición

Cita:
$insertSQL = sprintf("update noticia set titulo='".$_POST['titulo']."',contenido='".$_POST['contenido']."',autor='".$_POST['autor']."',fecha='".$_POST['fecha']."',hora='".$_POST['hora']."',tag='".$_POST['tag']."' where titulo = '".$row_regis["titulo"]."'");
bueno noc si tenga q ver pero el sprintf las variables debes de colocar los tipos ej %d,%s etc. y luego despues que termine el texto coma el nombre de las variables ej
Código PHP:
Ver original
  1. $var=10;
  2. sprintf("la variable es %d",$var);
pero nose si tenga que ver y otra pequeña prueba que puedes hacer es un print_r($row_regis2); para ver q te trae la consulta suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 24/08/2010, 16:47
Avatar de MarioAlejandroCR2  
Fecha de Ingreso: mayo-2010
Ubicación: Esparza - Puntarenas
Mensajes: 98
Antigüedad: 14 años
Puntos: 2
Respuesta: Update no reconoce where pero si reconoce la variable de condición

No creo, el sprintf me ha funcionado asi, no se la verdad
  #6 (permalink)  
Antiguo 24/08/2010, 16:55
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Update no reconoce where pero si reconoce la variable de condición

bueno como te dig noc sencillamente de indiq lo q conosco del sprintf y te puse la documentacion donde dic eso pero si tu dices que asi te funciona bien entonces bien, hiciste el print_r de $row_regis2 y viste q te tragera todos los datos???
Código PHP:
Ver original
  1. print_r($row_regis2);
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 24/08/2010, 17:08
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Update no reconoce where pero si reconoce la variable de condición

Bueno, por lo que pude notar, en el caso de $row_regis, es que lo creas en el while, y luego tratas de usarlo fuera de este :

Código PHP:
Ver original
  1. while($row_regis = mysql_fetch_assoc($regis)){
  2. echo "<option value='".$row_regis["titulo"]."'>".$row_regis["titulo"]."</option>";
  3. $nota = $row_regis["titulo"];
  4. }
  5. $notb = $row_regis["titulo"];

$row_regis solo es visible dentro del while, no fuera de este.

En cuanto a $row_regis2, me fijé que esta variable se crea únicamente cuando ejecutas el formulario, de otro modo nunca se creará la variable. Si estás ingresando directamente a esa página, sin enviar los datos del formulario, como ya dije, nunca se creará.

No sé que más, no le di una leida muy extensa al código.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #8 (permalink)  
Antiguo 24/08/2010, 18:00
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: Update no reconoce where pero si reconoce la variable de condición

y si le quitas la función sprintf, digo, creo que solo estás concatenando.....
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #9 (permalink)  
Antiguo 24/08/2010, 18:14
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Update no reconoce where pero si reconoce la variable de condición

Cita:
Iniciado por norpool1 Ver Mensaje
y si le quitas la función sprintf, digo, creo que solo estás concatenando.....
bueno de verdad que tiene razon uno el sprintf casi siempre lo usa para darle el formato a la variable q va a ingresar pero ahi solo estas concatenando qda a criterio de cada kien suerte pero si nos dice si le esta trayendo algo la consulta lo podriamos ayudar un poco mas creo saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: condición, reconoce, update, variables
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 12:00.