Foros del Web » Programando para Internet » PHP »

Error en script ¡Ayuda por favor!

Estas en el tema de Error en script ¡Ayuda por favor! en el foro de PHP en Foros del Web. Hola amigos, he perdido tiempo sin poder resolver este problema con php y Mysql, me arroja parse error. if (!$id) { $result = mysql_query("SELECT * ...
  #1 (permalink)  
Antiguo 07/04/2005, 19:53
 
Fecha de Ingreso: junio-2003
Ubicación: La Serena - Chile
Mensajes: 29
Antigüedad: 20 años, 10 meses
Puntos: 0
Error en script ¡Ayuda por favor!

Hola amigos, he perdido tiempo sin poder resolver este problema con php y Mysql, me arroja parse error.


if (!$id) {


$result = mysql_query("SELECT * FROM contactos",$link);

while ($myrow = mysql_fetch_array($result)) {

echo $myrow["nombre"], $myrow["direccion"], $myrow["fono"], $myrow["email"];

echo "<a href=$PHP_SELF?id=".$myrow["id"]."$delete=yes">Borrar</a>";

echo " - ";

echo "<a href=$PHP_SELF?id=".$myrow["id"].">Modificar</a><br>";

}


Gracias por su colaboración.
  #2 (permalink)  
Antiguo 07/04/2005, 20:13
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Probá con este código... te recomiendo usar comillas simples para los arrays y dobles para los echos
Código PHP:
if (!$id) {


$result mysql_query("SELECT * FROM contactos",$link);

while (
$myrow mysql_fetch_array($result)) {

echo 
$myrow['nombre'], $myrow['direccion'], $myrow['fono'], $myrow['email'];

echo 
"<a href=".$PHP_SELF."?id=".$myrow['id']."&".$delete."=yes">Borrar</a>";

echo " 
";

echo "
<a href=".$PHP_SELF."?id=".$myrow['id'].">Modificar</a><br>";


  #3 (permalink)  
Antiguo 08/04/2005, 21:02
 
Fecha de Ingreso: junio-2003
Ubicación: La Serena - Chile
Mensajes: 29
Antigüedad: 20 años, 10 meses
Puntos: 0
Aun no funciona

Te mando el script completo por si el error viene de otra parte.



Código PHP:
$link = mysql_connect("localhost", "root", "");

mysql_select_db("sermaq",$link); 
if ($enviar) {


if ($id) {

$sql = "UPDATE contactos SET nombre='$nombre', direccion='$direccion'"; 

$sql.= "fono='$fono', email='$email' WHERE id=$id";

echo "Registro Actualizado<p>";

} else {

$sql = "INSERT INTO contactos (nombre, direccion, fono, email) ";

$sql .= "VALUES ('$nombre', '$direccion', '$fono', '$email')";

echo "Registro Añadido<p>";

}


$result = mysql_query($sql);

} elseif ($delete) {



$sql = "DELETE FROM contactos WHERE id=$id";

$result = mysql_query($sql);

echo "Registro Borrado<p>";

} else {


if (!$id) {


$result = mysql_query("SELECT * FROM contactos",$link);

while ($myrow = mysql_fetch_array($result)) {

echo $myrow["nombre"]." - ".$myrow["direccion"]." - ".$myrow["fono"]." - ".$myrow["email"];

echo "<a href=$PHP_SELF?id=".$myrow["id"]."$delete=yes">Borrar</a>";

echo " - ";

echo "<a href=$PHP_SELF?id=".$myrow["id"].">Modificar</a><br>";

}

}

?>

<p><a href="<?php echo $PHP_SELF?>">Añadir un registro</a></p>

<p><form method="post" action="<?php echo $PHP_SELF?>"></p>

<?php

if ($id) {



$sql "SELECT * FROM contactos WHERE id=$id";

$result mysql_query($sql);

$myrow mysql_fetch_array($result);

$id $myrow["id"];

$nombre $myrow["nombre"];

$direccion $myrow["direccion"];

$fono $myrow["fono"];

$email $myrow["email"];


echo 
"<input type=hidden name="id" value=$id>";

}

?>

Nombre:<input type="Text" name="nombre" value="<?php echo $nombre ?>"><br>

Dirección:<input name="direccion" type="text" value="<?php echo $direccion ?>"><br>

fono:<input type="Text" name="fono" value="<?php echo $fono ?>"><br>

Email:<input type="Text" name="email" value="<?php echo $email ?>"><br>

<input type="Submit" name="enivar" value="Enviar Información">

</form>

<?php

// End If if ($enviar)
como te das cuenta se corta la secuencia del script aparentemente por un error de sintaxis en la linea 63

echo "<a href=$PHP_SELF?id=".$myrow["id"]."$delete=yes">Borrar</a>";

Gracias por la ayuda
  #4 (permalink)  
Antiguo 08/04/2005, 22:49
 
Fecha de Ingreso: enero-2005
Mensajes: 11
Antigüedad: 19 años, 3 meses
Puntos: 1
Debes hacer uso de las variables superglobales
Por ejemplo tu variable $id , deberias recogerla asi $_GET['id']
  #5 (permalink)  
Antiguo 09/04/2005, 08:26
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 277
Antigüedad: 19 años, 1 mes
Puntos: 2
podria estar en las comillas No he ledio el codigo pero $delete se refiere a una variable o es simplemente un GET mas, si es asi debes cambiar $delete por &delete
ademas las comillas deben ser diferentes las de codigo html que las del echo:
"<a href=$PHP_SELF?id=".$myrow['id']."&delete=yes>Borrar</a>";
si $delete era una varable no deberia ir entre comillas supongo.
o asi ams correcto (creo):
"<a href='$PHP_SELF?id=".$myrow['id']."&delete=yes'>Borrar</a>";

Última edición por Manu_Leon; 09/04/2005 a las 08:30
  #6 (permalink)  
Antiguo 09/04/2005, 09:01
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
Código PHP:
 $link = mysql_connect("localhost", "root", "");

mysql_select_db("sermaq",$link);
if ($enviar) {


if ($id) {

$sql = "UPDATE contactos SET nombre='".$nombre."', direccion='".$direccion."'";

$sql.= "fono='".$fono."', email='".$email."' WHERE id=".$id."";

echo "Registro Actualizado<p>";

} else {

$sql = "INSERT INTO contactos (nombre, direccion, fono, email) ";

$sql .= "VALUES ('".$nombre."', '".$direccion."', '".$fono."', '".$email."')";

echo "Registro Añadido<p>";

}


$result = mysql_query($sql);

} elseif ($delete) {



$sql = "DELETE FROM contactos WHERE id=".$id."";

$result = mysql_query($sql);

echo "Registro Borrado<p>";

} else {


if (!$id) {


$result = mysql_query("SELECT * FROM contactos",$link);

while ($myrow = mysql_fetch_array($result)) {

echo $myrow["nombre"]." - ".$myrow["direccion"]." - ".$myrow["fono"]." - ".$myrow["email"];

echo "<a href=".$PHP_SELF."?id=".$myrow["id"]."&delete=yes">Borrar</a>";

echo " - ";

echo "<a href=$PHP_SELF?id=".$myrow["id"].">Modificar</a><br>";

}

}

?>

<p><a href="<?php echo $PHP_SELF?>">Añadir un registro</a></p>

<?php

if ($id) {

$sql "SELECT * FROM contactos WHERE id=$id";

$result mysql_query($sql);

$myrow mysql_fetch_array($result);

$id $myrow["id"];

$nombre $myrow["nombre"];

$direccion $myrow["direccion"];

$fono $myrow["fono"];

$email $myrow["email"];
}

?>
<form method="post" action="<?php echo $PHP_SELF?>">
<input type=hidden name="id" value=$id>
Nombre:<input type="Text" name="nombre" value="<?php echo $nombre ?>"><br>

Dirección:<input name="direccion" type="text" value="<?php echo $direccion ?>"><br>

fono:<input type="Text" name="fono" value="<?php echo $fono ?>"><br>

Email:<input type="Text" name="email" value="<?php echo $email ?>"><br>

<input type="Submit" name="enivar" value="Enviar Información">

</form>

<?php

// End If if ($enviar)
?>

En fin ...por orden y regularidad, las variables que recibes de un formulario enviado por el metodo POST se deberian llamar con $_POST['la_variable']...


Chaop!
  #7 (permalink)  
Antiguo 09/04/2005, 10:46
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Cita:
echo "<a href=$PHP_SELF?id=".$myrow["id"]."$delete=yes">Borrar</a>";
No he leído las correcciones q han hecho a tu código. Pero si el error de la línea. Desconozco de donde proviene la $delete, pero si q te falta un &, es decir
Código PHP:
echo "<a href=$PHP_SELF?id=".$myrow["id"]."&delete=yes">Borrar</a>"; 
__________________
Dios dira que esto no es justo, pero lo sera...
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 15:45.