Urgente problema con consulta sql en php
Estoy realizando una paginación con php y mysql y, al hacer una consulta me aparece este problema:
Parse error: syntax error, unexpected t_constant_encapsed_string in C:\AppServ\www\musica\musica\paginacion_disco.php on line 56
la consulta a la que se refiere este error es la siguiente:
$resultados = mysql_query("Select * from disco where cantante=""".$_request['id']" limit $inicio, $registros");
Supongo que sera un problema de comillas, pero no sé cómo solucionarlo.
Parse error: syntax error, unexpected t_constant_encapsed_string in C:\AppServ\www\musica\musica\paginacion_disco.php on line 56
la consulta a la que se refiere este error es la siguiente:
$resultados = mysql_query("Select * from disco where cantante=""".$_request['id']" limit $inicio, $registros");
Supongo que sera un problema de comillas, pero no sé cómo solucionarlo.
1 Respuesta
Respuesta de Jesus Alberto Acosta Heredia
1
1
Jesus Alberto Acosta Heredia, Actualmente desarrollo aplicaciones para internet, como bases de...
si, mira, es algo asi de sencillo, es una regla de cadenas
para imprimir una comilla, haces Doble Comilla - comilla sencilla - doble comilla
te dare ejemplos
echo "Prueba comillas ' ' Simples";
echo "Como Imprimo Dobles comillas?? \" \" ";
echo "Imprimie comillas simples '' imprimer dobles comillas \"\"";
lo que te recomiendo es que unas usando el punto
$resultados = mysql_query("Select * from disco where cantante = '" . $_REQUEST['id'] . "' limit " . $inicio . ", " . $registros);
para imprimir una comilla, haces Doble Comilla - comilla sencilla - doble comilla
te dare ejemplos
echo "Prueba comillas ' ' Simples";
echo "Como Imprimo Dobles comillas?? \" \" ";
echo "Imprimie comillas simples '' imprimer dobles comillas \"\"";
lo que te recomiendo es que unas usando el punto
$resultados = mysql_query("Select * from disco where cantante = '" . $_REQUEST['id'] . "' limit " . $inicio . ", " . $registros);
Hola,
primero de todo, muchas gracias por la contestación y la aclaración.
He intentado lo que me decías, y ahora me da fallos en otras partes del código. Lo he estado mirando pero no encuentro nada. Si no es mucho pedir, ¿podría mandarte el código y me echas una ojeada haber por qué puede ser?
Gracias
primero de todo, muchas gracias por la contestación y la aclaración.
He intentado lo que me decías, y ahora me da fallos en otras partes del código. Lo he estado mirando pero no encuentro nada. Si no es mucho pedir, ¿podría mandarte el código y me echas una ojeada haber por qué puede ser?
Gracias
Esta es la primera página (aquí creo que no hay problemas)
paginacion_cantantes.php
function conectar()
{
$base_de_datos = "musica";
$db_usuario = "root";
$db_password = "usuario";
if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
$db = conectar();
$registros = 7;
if (!$pagina) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros;
}
?>
Cantantes
<br /> body { font-family: arial; font-size:10pt}<br /> #color{background-color: olive}<br /> #cuerpo{color: white; padding-left: 20px;background-color: olive; padding-top: 20px}<br /> #contenedor{width: 750px;padding-left: 100px;background-color:olive;}<br /> a.enlacenav{color:white; text-decoration:none;}<br /> a.enlacenav:hover{color: orange; font-weight:bold; font-style:italic; font-size: 11pt;border-bottom-width: 3px; border-bottom-style: solid; border-bottom-color: #369;}<br />
$resultados=mysql_query("SELECT id FROM cantantes");
$total_registros=mysql_num_rows($resultados);
$resultados=mysql_query("SELECT * FROM cantantes ORDER BY nombre LIMIT $inicio, $registros");
$total_paginas=ceil($total_registros / $registros);
if($total_registros) {
while($articulo=mysql_fetch_array($resultados)) {
echo "
<div id="\"contenedor\"">"."
<div id="\"cuerpo\"">"."
<div id="\"color\"">"."[url=\]".$articulo["nombre"]."
[/url]";
echo "[color=#660066]".$articulo["pais"]."[/color]
</div>
</div>
</div>
";
}
} else {
echo "[color=darkgray](sin resultados)[/color]";
}
mysql_free_result($resultados);
if($total_registros) {
echo "";
if(($pagina - 1) > 0) {
echo "< Anterior ";
}
for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i)
echo "".$pagina." ";
else
echo "$i ";
}
if(($pagina + 1)<=$total_paginas) {
echo " Siguiente >";
}
echo "";
}
?>
y esta me lleva a donde tengo problemas: paginacion_disco.php:
<?
function conectar()
{
$base_de_datos = "musica";
$db_usuario = "root";
$db_password = "usuario";
if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
$db = conectar();
$registros = 3;
if (!$pagina) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros;
}
$id=$_request['id'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Noticias</title>
<style>
body { font-family: arial;}
#color{background-color: olive}
#cuerpo{color: white; padding-left: 20px;background-color: olive;}
#contenedor{width: 750px;padding-left: 100px;background-color:olive}
a.enlacenav{color:white; text-decoration:none;}
a.enlacenav:hover{color: orange; text-decoration: underline;font-weight:bolder;font-size:14px;}
</style>
</head>
<body>
<?
$resultados=mysql_query("SELECT id FROM disco where cantante=".$_REQUEST['id']);
$total_registros=mysql_num_rows($resultados);
$resultados=mysql_query('Select * from disco where cantante="'.$_REQUEST['id']."\"limit $inicio, $registros"); $total_paginas=ceil($total_registros / $registros);
if($total_registros) {
while($articulo=mysql_fetch_array($resultados)) {
echo "<br>"."
<div id=\"contenedor\">"."
<div id=\"cuerpo\">"."
<div id=\"color\">"."<a href=\"paginacion_disco.php?id=".$articulo['id']."\" class=\"enlacenav\">".$articulo["nombre"]."</b><br></a>";
echo "<font color='#660066'>".$articulo["pais"]."</font><br><br><br></div>
</div>
</div>
";
}
} else {
echo "<font color='darkgray'>(sin resultados)</font>";
}
mysql_free_result($resultados);
if($total_registros) {
echo "<center>";
if(($pagina - 1) > 0) {
echo "<a href='paginacion_disco.php?pagina=".($pagina-1)."'>< Anterior</a> ";
}
for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i)
echo "<b>".$pagina."</b> ";
else
echo "<a href='paginacion_disco.php?pagina=$i'>$i</a> ";
}
if(($pagina + 1)<=$total_paginas) {
echo " <a href='paginacion_disco.php?pagina=".($pagina+1)."'>Siguiente ></a>";
}
echo "</center>";
}
?>
</body>
</html>
<? mysql_close($db);?>
Muchas gracias.
paginacion_cantantes.php
function conectar()
{
$base_de_datos = "musica";
$db_usuario = "root";
$db_password = "usuario";
if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
$db = conectar();
$registros = 7;
if (!$pagina) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros;
}
?>
Cantantes
<br /> body { font-family: arial; font-size:10pt}<br /> #color{background-color: olive}<br /> #cuerpo{color: white; padding-left: 20px;background-color: olive; padding-top: 20px}<br /> #contenedor{width: 750px;padding-left: 100px;background-color:olive;}<br /> a.enlacenav{color:white; text-decoration:none;}<br /> a.enlacenav:hover{color: orange; font-weight:bold; font-style:italic; font-size: 11pt;border-bottom-width: 3px; border-bottom-style: solid; border-bottom-color: #369;}<br />
$resultados=mysql_query("SELECT id FROM cantantes");
$total_registros=mysql_num_rows($resultados);
$resultados=mysql_query("SELECT * FROM cantantes ORDER BY nombre LIMIT $inicio, $registros");
$total_paginas=ceil($total_registros / $registros);
if($total_registros) {
while($articulo=mysql_fetch_array($resultados)) {
echo "
<div id="\"contenedor\"">"."
<div id="\"cuerpo\"">"."
<div id="\"color\"">"."[url=\]".$articulo["nombre"]."
[/url]";
echo "[color=#660066]".$articulo["pais"]."[/color]
</div>
</div>
</div>
";
}
} else {
echo "[color=darkgray](sin resultados)[/color]";
}
mysql_free_result($resultados);
if($total_registros) {
echo "";
if(($pagina - 1) > 0) {
echo "< Anterior ";
}
for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i)
echo "".$pagina." ";
else
echo "$i ";
}
if(($pagina + 1)<=$total_paginas) {
echo " Siguiente >";
}
echo "";
}
?>
y esta me lleva a donde tengo problemas: paginacion_disco.php:
<?
function conectar()
{
$base_de_datos = "musica";
$db_usuario = "root";
$db_password = "usuario";
if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
$db = conectar();
$registros = 3;
if (!$pagina) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros;
}
$id=$_request['id'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Noticias</title>
<style>
body { font-family: arial;}
#color{background-color: olive}
#cuerpo{color: white; padding-left: 20px;background-color: olive;}
#contenedor{width: 750px;padding-left: 100px;background-color:olive}
a.enlacenav{color:white; text-decoration:none;}
a.enlacenav:hover{color: orange; text-decoration: underline;font-weight:bolder;font-size:14px;}
</style>
</head>
<body>
<?
$resultados=mysql_query("SELECT id FROM disco where cantante=".$_REQUEST['id']);
$total_registros=mysql_num_rows($resultados);
$resultados=mysql_query('Select * from disco where cantante="'.$_REQUEST['id']."\"limit $inicio, $registros"); $total_paginas=ceil($total_registros / $registros);
if($total_registros) {
while($articulo=mysql_fetch_array($resultados)) {
echo "<br>"."
<div id=\"contenedor\">"."
<div id=\"cuerpo\">"."
<div id=\"color\">"."<a href=\"paginacion_disco.php?id=".$articulo['id']."\" class=\"enlacenav\">".$articulo["nombre"]."</b><br></a>";
echo "<font color='#660066'>".$articulo["pais"]."</font><br><br><br></div>
</div>
</div>
";
}
} else {
echo "<font color='darkgray'>(sin resultados)</font>";
}
mysql_free_result($resultados);
if($total_registros) {
echo "<center>";
if(($pagina - 1) > 0) {
echo "<a href='paginacion_disco.php?pagina=".($pagina-1)."'>< Anterior</a> ";
}
for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i)
echo "<b>".$pagina."</b> ";
else
echo "<a href='paginacion_disco.php?pagina=$i'>$i</a> ";
}
if(($pagina + 1)<=$total_paginas) {
echo " <a href='paginacion_disco.php?pagina=".($pagina+1)."'>Siguiente ></a>";
}
echo "</center>";
}
?>
</body>
</html>
<? mysql_close($db);?>
Muchas gracias.
Agrégame a tu messenger [email protected]
Ok, lo estoy viendo, mira, en primero, ¿usa <?php al inicio, ¿no nomas <?
Eso te genero los errores, de ahí, el id lo perdías al usar id como nombre clave en más de una tabla, checalo
Eso te genero los errores, de ahí, el id lo perdías al usar id como nombre clave en más de una tabla, checalo
Hola,
dándole a un elemento que tenga valores me da estos fallos:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\musica\musica\paginacion_disco.php on line 58
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\musica\musica\paginacion_disco.php on line 65
y si no tiene valores, me da esto:
(sin resultados)
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\musica\musica\paginacion_disco.php on line 65
muchas gracias!
dándole a un elemento que tenga valores me da estos fallos:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\musica\musica\paginacion_disco.php on line 58
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\musica\musica\paginacion_disco.php on line 65
y si no tiene valores, me da esto:
(sin resultados)
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\musica\musica\paginacion_disco.php on line 65
muchas gracias!
Disculpa, ya lo he mirado, y sale genial. Muchas gracias.
Lo único, una cosilla más: por cada dato que me da (en paginacion_disco.php, el tema de css lo separa (entre dato y dato, no coge los parámetros de css).
Muchísimas gracias
Lo único, una cosilla más: por cada dato que me da (en paginacion_disco.php, el tema de css lo separa (entre dato y dato, no coge los parámetros de css).
Muchísimas gracias
- Compartir respuesta
- Anónimo
ahora mismo