Foros del Web » Programando para Internet » PHP »

Update de BBDD (No me actualiza)

Estas en el tema de Update de BBDD (No me actualiza) en el foro de PHP en Foros del Web. Pues eso que creo que lo hice todo bien pero no me actualiza, os pongo el codigo a ver si alguien me puede echar una ...
  #1 (permalink)  
Antiguo 30/01/2005, 10:21
Avatar de MmSTOP  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 84
Antigüedad: 21 años, 9 meses
Puntos: 0
Pregunta Update de BBDD (No me actualiza)

Pues eso que creo que lo hice todo bien pero no me actualiza, os pongo el codigo a ver si alguien me puede echar una mano. Gracias por adelantado.


Código PHP:
$query="SELECT * from busquedas where texto like '$busqueda'";
$run=mysql_query($query,$dbh);
$i=mysql_fetch_array($run);
if (
mysql_num_rows($run)==0)
{
    
$insert="insert into busquedas (texto,peticiones) values ('".$busqueda."',".($i["peticiones"]+1).")";    
    
mysql_query($insert,$dbh);
}
else
{
    
$update="update busquedas set peticiones=".($i["peticiones"]+1)." where id=".$busqueda["id"]."";
    
mysql_query($update,$dbh);

__________________
--------------------------------
Gracias a la gente de WWW.FOROSDELWEB.COM que se preocupa de ayudar a la gente novatilla!! me incluyo :D
  #2 (permalink)  
Antiguo 30/01/2005, 10:44
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 20 años, 1 mes
Puntos: 7
En el caso de el primer insert, si mysql_num_rows es igual a 0, $i no tiene ningún valor, tendrías que hacer otra consulta para capturar el valor máximo del campo peticiones, como SELECT MAX(peticiones) AS maximopeticiones FROM busquedas.
  #3 (permalink)  
Antiguo 30/01/2005, 10:56
Avatar de MmSTOP  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 84
Antigüedad: 21 años, 9 meses
Puntos: 0
Pregunta

Claro lo que yo digo es que si es igual a 0 lo inserte, creo que esta bien, y que sino es igual a 0 actualice el campo peticiones en 1 mas.

No?? Por lo tanto donde esta el fallo??
__________________
--------------------------------
Gracias a la gente de WWW.FOROSDELWEB.COM que se preocupa de ayudar a la gente novatilla!! me incluyo :D
  #4 (permalink)  
Antiguo 30/01/2005, 12:46
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 20 años, 1 mes
Puntos: 7
Por que si mysql_num_rows es igual a 0, la línea $i=mysql_fetch_array($run); da que $i es igual a false, no a un array al que se pueda acceder.

Si quieres saber su valor global más alto de peticiones y añadirle 1 tienes que hacer lo que te decía en la consulta de mi anterior ejemplo utilizando MAX(peticiones). Pero si el campo no es global, sinó que hace referencia cada fila la sentencia insert quedaría así:

Código PHP:
$insert="insert into busquedas (texto,peticiones) values ('$busqueda',1)"
Aparte veo que hay otro problema en el update, ya que haces referencia a un $busqueda["id"] que no veo que esté definido antes como array, sino como una cadena en la primera consulta select. Quizás por algún cambio que hiciste de implementación. Creo que quedaría así:

Código PHP:
$update="update busquedas set peticiones=".($i["peticiones"]+1)." where id=".$i["id"]; 

Última edición por pintix; 30/01/2005 a las 13:11
  #5 (permalink)  
Antiguo 30/01/2005, 14:11
Avatar de MmSTOP  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 84
Antigüedad: 21 años, 9 meses
Puntos: 0
De acuerdo

Muchiiiiiiiiiiiisimas gracias tio :) ya rula
__________________
--------------------------------
Gracias a la gente de WWW.FOROSDELWEB.COM que se preocupa de ayudar a la gente novatilla!! me incluyo :D
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:12.