Foros del Web » Programando para Internet » PHP »

Problema con Variable

Estas en el tema de Problema con Variable en el foro de PHP en Foros del Web. Hola amigos del Foro, les escribo porque estoy teniendo un error en un php, soy novato en el tema y quiero ver si alguien puede ...
  #1 (permalink)  
Antiguo 13/01/2009, 10:42
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Problema con Variable

Hola amigos del Foro, les escribo porque estoy teniendo un error en un php, soy novato en el tema y quiero ver si alguien puede ayudarme.

Tengo una base de datos asi:

CREATE TABLE `test_mysql` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`lastname` varchar(65) NOT NULL default '',
`email` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=7 ;

--
-- Dumping data for table `test_mysql`
--

INSERT INTO `test_mysql` VALUES (1, 'Billly', 'Blueton', '[email protected]');
INSERT INTO `test_mysql` VALUES (2, 'Jame', 'Campbell', '[email protected]');
INSERT INTO `test_mysql` VALUES (3, 'Mark', 'Jackson', '[email protected]');
INSERT INTO `test_mysql` VALUES (4, 'Linda', 'Travor', '[email protected]');
INSERT INTO `test_mysql` VALUES (5, 'Joey', 'Ford', '[email protected]');
INSERT INTO `test_mysql` VALUES (6, 'Sidney', 'Gibson', '[email protected]');


Y luego un php que lo que deberia hacer es el Update de los registros que tengo en la base de datos, coloco el codigo de fuente del php:

<strong>Update multiple rows in mysql</strong><br>

<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

// Count table rows
$count=mysql_num_rows($result);
?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">


<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
<td align="center"><strong>Email</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><? $id[]=$rows['id']; ?><? echo $rows['id']; ?></td>
<td align="center"><input name="name[]" type="text" id="name" value="<? echo $rows['name']; ?>"></td>
<td align="center"><input name="lastname[]" type="text" id="lastname" value="<? echo $rows['lastname']; ?>"></td>
<td align="center"><input name="email[]" type="text" id="email" value="<? echo $rows['email']; ?>"></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this
if($Submit){
for($i=0;$i<$count;$i++){
$sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
$result1=mysql_query($sql1);
}
}

if($result1){
header("location:update_multiple.php");
}
mysql_close();
?>

Esto lo estoy usando en local en mi pc con elo EasyPhp, el problema surge que a la hora de ejecutar el php me tira el siguiente error:


Notice: Undefined variable: Submit in C:\Program Files\EasyPHP 2.0b1\www\update_multiple.php on line 55

Notice: Undefined variable: result1 in C:\Program Files\EasyPHP 2.0b1\www\update_multiple.php on line 63

Y no logro deducir cual puede ser el problema, les pido si alguien puede darme una mano, desde ya muchas gracias por todo.

Saludos Hollowmanf
  #2 (permalink)  
Antiguo 13/01/2009, 10:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con Variable

se debe al error típico de register_globals el ejemplo que tienes ha de ser de antaño...

mira, el $Submit es igual a... $_POST['Submit']

y el $result1 hazlo así... isset($result1)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/01/2009, 11:00
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
De acuerdo Respuesta: Problema con Variable

Muchas gracias por la data, ahi no me tira el error lo que ahora cuando ejecuto el php los campos que me deberian traer los datos de la DB me aparece lo siguiente.

<? echo $rows['name']; ?> para el campo Nombre
<? echo $rows['lastname']; ?> para el campo Apellido
<? echo $rows['email']; ?> para el campo Email

Al igual que no me trae el ID de dicho usuario, que puede estar fallando en esto ? podras ayudarme.

Desde ya muchas gracias nuevamente.

Saludos Hollowmanf
  #4 (permalink)  
Antiguo 13/01/2009, 11:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con Variable

igual, tu ejemplo es viejo...

cambia las <? por sus formas completas... <?php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 13/01/2009, 11:36
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema con Variable

Grande amigazo un maestro usted, igual hay algo que no funciona y no quiero molestarte mas solo lo ultimo es por eso que te coloco como me quedo el codigo para que me lo corrijas en el caso que este mal, creo que en el primer punto que me indicaste

mira, el $Submit es igual a... $_POST['Submit']

y el $result1 hazlo así... isset($result1)

aca algo seguramente le pifie, puedes si no es mucha molestia mirar el code y decirme donde esta el error ya que al hacer el UPDATE para que me modifique los datos del usuario requerido este no lo hace, me refresca la web con el dato anterior.

Saludos y gracias nuevamente



<strong>Update multiple rows in mysql</strong><br>

<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

// Count table rows
$count=mysql_num_rows($result);
?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">


<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
<td align="center"><strong>Email</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><?php $id[]=$rows['id']; ?><?php echo $rows['id']; ?></td>
<td align="center"><input name="name[]" type="text" id="name" value="<?php echo $rows['name']; ?>"></td>
<td align="center"><input name="lastname[]" type="text" id="lastname" value="<?php echo $rows['lastname']; ?>"></td>
<td align="center"><input name="email[]" type="text" id="email" value="<?php echo $rows['email']; ?>"></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this
if(isset($Submit)){

for($i=0;$i<$count;$i++){
$sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
$result1=mysql_query($sql1);
}
}

if(isset($result1)){
header("location:update_multiple.php");
}
mysql_close();
?>
  #6 (permalink)  
Antiguo 13/01/2009, 11:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con Variable

creo que es esto....

Código:
if(isset($Submit)){

// ...

$sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
debe ir así..

Código:
if(isset($_POST['Submit'])){

// ...

$sql1="UPDATE $tbl_name SET name='$_POST[name][$i]', lastname='$_POST[lastname][$i]', email='$_POST[email][$i]' WHERE id='$_POST[id][$i]'";
nota bien las diferencias, y si algo falta... vuelve a revisar, ahí esta la clave...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 13/01/2009, 11:58
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema con Variable

Amigo modifique la linea tal cual me lo indicas ahora cuando ejecute el php me tiro este error en pantalla

Parse error: parse error, unexpected '}' in C:\Program Files\EasyPHP 2.0b1\www\update_multiple.php on line 62
  #8 (permalink)  
Antiguo 13/01/2009, 12:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con Variable

mmm.... no dije que modificaras nada, jeje...

dije, que notaras las diferencias... y como no podemos saber como esta tu codigo, menos la linea que dices...

pues, ¿que podemos hacer nosotros???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 13/01/2009, 12:04
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema con Variable

Tienes razon, bueno igual gracias de antemano por la ayuda.

Saludos y vere como solucionarlo
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:14.