Foros del Web » Programando para Internet » PHP »

No veo errores en este script

Estas en el tema de No veo errores en este script en el foro de PHP en Foros del Web. El siguiente script no me lo ejecuta. Es echo con un mysql_fetch_array y no se que pasa, si quereis os posteo todo el codigo pero ...
  #1 (permalink)  
Antiguo 21/06/2006, 12:43
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 19 años, 4 meses
Puntos: 3
No veo errores en este script

El siguiente script no me lo ejecuta. Es echo con un mysql_fetch_array y no se que pasa, si quereis os posteo todo el codigo pero lo unico que no me ejecuta es el de Actualizar el co_pen y el co_puntos.

Código PHP:
<?     
    
if ($registro["co_puntos"] < 3) { 
    
$id22 $registro["co_id"];
    
$pen $registro["co_pen"] + "1";
    
mysql_query("UPDATE `comercios` SET `co_pen` = '$pen' WHERE `co_id` = $id22");
    
mysql_query("UPDATE `comercios` SET `co_puntos` = '6' WHERE `co_id` = $id22");
    
    } else { 
    echo 
$registro["co_puntos"];
    } 
?>
*** Está solucionado poniendo esto: ***
Código PHP:
        $link mysql_connect("localhost","root",""); 
        
mysql_select_db("tpv",$link); 
*** Porque lo tengo que poner si ya inicié la conexión con la base de datos anteriormente? ***
  #2 (permalink)  
Antiguo 21/06/2006, 13:28
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 18 años, 6 meses
Puntos: 3
hola

Código PHP:
$link mysql_connect("localhost","root","");  
        
mysql_select_db("tpv",$link); 
por su puesto que esta solucionado si pones eso

si este script esta solo en un file no veo conexion con la BD
Código PHP:
<?      
    
if ($registro["co_puntos"] < 3) {  
    
$id22 $registro["co_id"]; 
    
$pen $registro["co_pen"] + "1"
    
mysql_query("UPDATE `comercios` SET `co_pen` = '$pen' WHERE `co_id` = $id22"); 
    
mysql_query("UPDATE `comercios` SET `co_puntos` = '6' WHERE `co_id` = $id22"); 
     
    } else {  
    echo 
$registro["co_puntos"]; 
    } 
?>
en todo caso

config.php
Código PHP:
$host "server"
$bd "tpv"
$user "root"
$pass "pass" 
Código PHP:
$link mysql_connect("$host","$user","$pass");  
        
mysql_select_db("$bd",$link); 
y

Código PHP:
<?      
include ("config.php")
    if (
$registro["co_puntos"] < 3) {  
    
$id22 $registro["co_id"]; 
    
$pen $registro["co_pen"] + "1"
    
mysql_query("UPDATE `comercios` SET `co_pen` = '$pen' WHERE `co_id` = $id22"); 
    
mysql_query("UPDATE `comercios` SET `co_puntos` = '6' WHERE `co_id` = $id22"); 
     
    } else {  
    echo 
$registro["co_puntos"]; 
    } 
?>
saludos
bye
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #3 (permalink)  
Antiguo 21/06/2006, 15:07
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 19 años, 4 meses
Puntos: 3
Cita:
*** Porque lo tengo que poner si ya inicié la conexión con la base de datos anteriormente? ***
Por supuesto no está solo, lo digo en dos ocasiones, la que te he puesto y tambien
Cita:
si quereis os posteo todo el codigo
jeje, un despiste lo tiene cualquiera, la conexión ya la tenia, es solo un pequeño fragmento. Dentro del if tal tal tal tengo que poner otra vez la conexión y no se porque lo tengo que hazer Otra vez
  #4 (permalink)  
Antiguo 21/06/2006, 15:15
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 18 años, 6 meses
Puntos: 3
ok postea todo el codigo de ese archivo en que te sale el error
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #5 (permalink)  
Antiguo 21/06/2006, 15:22
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 18 años, 6 meses
Puntos: 3
aunque creo que no lo tengo muy entendido soy nuevo en el php pero creo que cada vez que
<? php

?>
en un mismo archivo

hay que dar conexion a BD
$link = mysql_connect("","","");
mysql_select_db("") or die("No puedo seleccionar la bd.");

vuelvo y repito muy nuevo en php de lo que se
saludos
bye
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #6 (permalink)  
Antiguo 21/06/2006, 15:30
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 19 años, 4 meses
Puntos: 3
Jeje, no amigo, yo tenia en distintos <?php ?> y funcionava, tranki, yo llevo mucho pero tampoco soy gran cosa :P jeje el codigo completo no me deja el foro tu tranki
lo pondré dentro de poco
  #7 (permalink)  
Antiguo 22/06/2006, 06:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por hebo
Jeje, no amigo, yo tenia en distintos <?php ?> y funcionava, tranki, yo llevo mucho pero tampoco soy gran cosa :P jeje el codigo completo no me deja el foro tu tranki
lo pondré dentro de poco
Te costaría mucho indicar el cópdigo completo de lo que estás usando . .incluido los scripts auxiliares que puedas llamar (vía include() .. etc). Eso ayudará a no hacerte preguntas (como ya te las han hecho) que para ti te parezcan "obvias" como "incluistes la conexión a tu BBDD?" y cosas así ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 23/06/2006, 12:54
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 19 años, 4 meses
Puntos: 3
Cluster, siento contestar tarde pero esque el foro no me deja, es muy largo o algo. ahora lo pongo que si me deja
Código PHP:
<? 
    mysql_connect
("localhost","root",""); 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>Puntos</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<meta http-equiv="Pragma" content="no-cache" /> 
<style type="text/css"> 
<!-- 
a.p:link { 
    color: #0066FF; 
    text-decoration: none; 

a.p:visited { 
    color: #0066FF; 
    text-decoration: none; 

a.p:active { 
    color: #0066FF; 
    text-decoration: none; 

a.p:hover { A
    color: #0066FF; 
    text-decoration: underline; 

a.ord:link { 
    color: #000000; 
    text-decoration: none; 

a.ord:visited { 
    color: #000000; 
    text-decoration: none; 

a.ord:active { 
    color: #000000; 
    text-decoration: none; 

a.ord:hover { 
    color: #000000; 
    text-decoration: underline; 

--> 
</style> 
</head> 
<body bgcolor="#FFFFFF"> 
<script language="JavaScript"> 
function muestra(queCosa) 

    alert(queCosa); 

</script> 
<div align="center"><strong><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Paginación 
de Resultados de una consulta SQL (sobre MySQL)<br><br><p><a href="http://www.pclandia.com">www.pclandia.com</a></p> </font></strong> </div> 
<hr noshade style="color:CC6666;height:1px"> 
<br> 
<? 
//inicializo el criterio y recibo cualquier cadena que se desee buscar 
$criterio ""
$txt_criterio ""
if (
$_GET["criterio"]!=""){ 
   
$txt_criterio $_GET["criterio"]; 
   
$criterio " where co_id like '" $txt_criterio "' or co_nombre like '%" $txt_criterio "' or co_dir like '" $txt_criterio "'"

if (
$_GET["hola"]!=""){ 
   
$txt_criterioo $_GET["hola"]; 
   echo 
$txt_criterioo;



$sql="SELECT * FROM tpv.comercios ".$criterio
$res=mysql_query($sql) or
die(
"Could not connect: " mysql_error());
$numeroRegistros=mysql_num_rows($res); 
if(
$numeroRegistros<=0

    echo 
"<div align='center'>"
    echo 
"<font face='verdana' size='-2'>No se encontraron resultados</font>"
    echo 
"</div>"
}else{ 
    
//////////elementos para el orden 
    
if(!isset($orden)) 
    { 
       
$orden="co_id"
    } 
    
//////////fin elementos de orden 

    //////////calculo de elementos necesarios para paginacion 
    //tamaño de la pagina 
    
$tamPag=5

    
//pagina actual si no esta definida y limites 
    
if(!isset($_GET["pagina"])) 
    { 
       
$pagina=1
       
$inicio=1
       
$final=$tamPag
    }else{ 
       
$pagina $_GET["pagina"]; 
    } 
    
//calculo del limite inferior 
    
$limitInf=($pagina-1)*$tamPag

    
//calculo del numero de paginas 
    
$numPags=ceil($numeroRegistros/$tamPag); 
    if(!isset(
$pagina)) 
    { 
       
$pagina=1
       
$inicio=1
       
$final=$tamPag
    }else{ 
       
$seccionActual=intval(($pagina-1)/$tamPag); 
       
$inicio=($seccionActual*$tamPag)+1

       if(
$pagina<$numPags
       { 
          
$final=$inicio+$tamPag-1
       }else{ 
          
$final=$numPags
       } 

       if (
$final>$numPags){ 
          
$final=$numPags
       } 
    } 

//////////fin de dicho calculo 

//////////creacion de la consulta con limites 
$sql="SELECT * FROM tpv.comercios ".$criterio." ORDER BY ".$orden.",co_id ASC LIMIT ".$limitInf.",".$tamPag
$res=mysql_query($sql); 

//////////fin consulta con limites 
echo "<div align='center'>"
echo 
"<font face='verdana' size='-2'>encontrados ".$numeroRegistros." resultados<br>"
echo 
"ordenados por <b>".$orden."</b>"
if(isset(
$txt_criterio)){ 
    echo 
"<br>Valor filtro: <b>".$txt_criterio."</b>"

echo 
"</font></div>"
echo 
"<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0'>"
echo 
"<tr><td colspan='3'><hr noshade></td></tr>"
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_id&criterio=".$txt_criterio."'>ID</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_nombre&criterio=".$txt_criterio."'>Nombre </a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_dir&criterio=".$txt_criterio."'>Apellido</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_puntos&criterio=".$txt_criterio."'>Puntos</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_pen&criterio=".$txt_criterio."'>P. Totales</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_pen1&criterio=".$txt_criterio."'>P. Cumplidas</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_pen1&criterio=".$txt_criterio."'>P. A Cumplir</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=co_fecha&criterio=".$txt_criterio."'>Fecha</a></th>";
while(
$registro=mysql_fetch_array($res)) 

?> 
   <!-- tabla de resultados --> 
  <tr bgcolor="#CC6666" onMouseOver="this.style.backgroundColor='#FF9900';this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='#CC6666'"o"];">
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_id"]; ?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_nombre"]; ?></b></font></td>
    <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_dir"]; ?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b>
      <?     
        $link 
mysql_connect("localhost","root",""); 
        
mysql_select_db("tpv",$link);
    if (
$registro["co_puntos"] < 1) { 
    echo 
"Añadiendo penalización";
    
$id22 $registro["co_id"];
    
$pen $registro["co_pen"] + "1";
    
mysql_query("UPDATE `comercios` SET `co_pen` = '$pen' WHERE `co_id` = $id22");
    
mysql_query("UPDATE `comercios` SET `co_puntos` = '6' WHERE `co_id` = $id22");
    
    } else { 
    echo 
$registro[co_puntos];
    } 
?>
</b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_pen"]; ?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_pen1"]; ?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_pen"] - $registro["co_pen1"]; ?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["co_fecha"]; ?></b></font></td>

  </tr> 
   <!-- fin tabla resultados --> 
<? 
}//fin while 
echo "</table>"
}
//fin if 
//////////a partir de aqui viene la paginacion 
?> 
    <br> 
    <table border="0" cellspacing="0" cellpadding="0" align="center"> 
    <tr><td align="center" valign="top"> 
<? 
    
if($pagina>1
    { 
       echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&criterio=".$txt_criterio."'>"
       echo 
"<font face='verdana' size='-2'>anterior</font>"
       echo 
"</a> "
    } 

    for(
$i=$inicio;$i<=$final;$i++) 
    { 
       if(
$i==$pagina
       { 
          echo 
"<font face='verdana' size='-2'><b>".$i."</b> </font>"
       }else{ 
          echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&criterio=".$txt_criterio."'>"
          echo 
"<font face='verdana' size='-2'>".$i."</font></a> "
       } 
    } 
    if(
$pagina<$numPags
   { 
       echo 
" <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criterio=".$txt_criterio."'>"
       echo 
"<font face='verdana' size='-2'>siguiente</font></a>"
   } 
//////////fin de la paginacion 
?> 
    </td></tr> 
    </table> 
<hr noshade style="color:CC6666;height:1px"> 
<div align="center"><font face="verdana" size="-2"><a class="p" href="save.php">::Inicio::</a>  </font></div> 
Buscar:<br>
<form action="ole.php" method="get"> 
Criterio de búsqueda: 
<input type="text" name="criterio" size="22" maxlength="150"> 
<input type="submit" value="Buscar"> 
</form> <br>
 <br>

</body> 
</html> 
<? 
    mysql_close
(); 
?> 

  </body>
</html>
Esta es la parte en la cual tengo que volver a conectarme a la BD, sino no funciona:
Código PHP:
      <?     
        $link 
mysql_connect("localhost","root",""); 
        
mysql_select_db("tpv",$link);
    if (
$registro["co_puntos"] < 1) { 
    echo 
"Añadiendo penalización";
    
$id22 $registro["co_id"];
    
$pen $registro["co_pen"] + "1";
    
mysql_query("UPDATE `comercios` SET `co_pen` = '$pen' WHERE `co_id` = $id22");
    
mysql_query("UPDATE `comercios` SET `co_puntos` = '6' WHERE `co_id` = $id22");
    
    } else { 
    echo 
$registro[co_puntos];
    } 
?>
Es un if y to eso para que cuando llege a 0 haga unas cosas y tal y esto me funciona a la perfeccion, solo que no entiendo porque tengo que volver a conectarme.
  #9 (permalink)  
Antiguo 27/06/2006, 07:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En tu código de ejemplo .. Al principio del código te conectas a tu BBDD:
mysql_connect("localhost","root","");

Luego haces unas consultas SQL usando:
$res=mysql_query($sql) or
die("Could not connect: " . mysql_error());

Pero NO se vé antes de ese "mysql_query()" la selección de la BBDD a usar:
mysql_select_db("tpv",$link);

a todo esto .. al principio asumes que PHP va a usar en tus funciones de SQL de PHP el link creado por defecto .. luego más a bajo defines uno con nombre y a una variable $link ...

Como veras .. tienes un buen "mezclado" de llamadas a funciones de Mysql ..

Soluciones:
Define tu $link con tu mysql_connect() y mysql_select_db() al principo del script y sigue usandolo en el resto del script. Por otro lado .. PHP si no te conectas a más de una BBDD diferente .. no es necesario ni que definas y tengas que usar constantemente $link en las funciones mysql_xxxx() de PHP ..

Cita:
Cluster, siento contestar tarde pero esque el foro no me deja, es muy largo o algo. ahora lo pongo que si me deja
Cuando colocas código .. si ves que tienes "CSS" por médio u otro HTML que "adorne" la página puedes omitirlo y resumir el código .. No obstante siempre todo el código en su contexto ayuda a ver los problemas normlamente.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:30.