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.

1 Respuesta

Respuesta
1
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);
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
Simón, envialo
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.
Agrégame a tu messenger [email protected]
No solo me mandes tu código, mandame la db exportada de mysql.
Hola,
ya te he mandado el código y la bbdd.
Muchas gracias
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
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!
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
¿No entendí eso que decías? Como que no los seara, muéstrame exactamente el código y mandame una picture a mi email
Ya te lo envíe.
Muchas gracias
No se te olvide valorar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas