Hola a todos,
Os pongo en contexto, programando en php estoy haciendo consultas a mysql.
Me ha surgido la necesidad de hacer una consulta ordenada por un campo que podra ser ascendente o descendente y con un limite de lineas.
El tema es que yo probaba con la siguiente consulta, la cual devuelve el resultado ASCENDENTE:
SELECT * FROM personas ORDER BY id
DESC LIMIT 0,5
De forma gráfica he conseguido en phpmyadmin la sentencia que lo hace DESCENDIENTE:
SELECT * FROM personas ORDER BY personas
.id
DESC LIMIT 0,5
El matiz es que la segunda consulta hace el ORDER BY con tabla.campo y yo lo hacia con campo, tampoco devuelve error pero simplemente lo devolvía ascendiente que es el por defecto..
Y me pongo manos a la obra, añado lo de 'personas' antes de 'id' en el order by...
$sql="SELECT * FROM personas ORDER BY 'personas'.'id' ASC LIMIT 0,5";
también he probado sin comillas en personas:
$sql="SELECT * FROM personas ORDER BY personas.'id' ASC LIMIT 0,5";
y otras combinaciones pero no doy con la sintaxis correcta para que haga lo mismo que el phpmyadmin cuando hace 'persona'.'id'...
Lo único que he podiodo conseguir de información es este Notice:
Notice: Trying to get property of non-object in C:\Program Files (x86)\XAMPP\htdocs\agenda\index.php on line 59
Pongo el código que se corresponde a tal error, siendo la de negrita la tal 59:
<?php
$sql="SELECT FROM personas ORDER BY '".$_SESSION['campo']."' 'personas'.'".$_SESSION['orden']."' LIMIT
".$_SESSION['registro'].",5";
$result = $con->query($sql);
if($result->num_rows > 0){*
while($row=$result->fetch_assoc()){
echo '<tr>
<td>'.$row['id'].'</td>
<td>'.$row['apellido1'].' '.$row['apellido2'].'</td>
<td>'.$row['nombre'].'</td>
<td>'.$row['telefono'].'</td>
<td><a href="#">Ver</a></td>
<td><a href="#">Cambiar</a></td>
<td><a href="#">Borrar</a></td>
</tr>';
}
}
mysqli_close($con);
?>
Yo creo que no es la 59, simplemente esa ejecuta la query y por eso da el error, estoy convencido que es por la sintaxis de tabla.campo que no se trasladarla del phpmyadmin al codigo PHP,
¿Alguien puede echarme una mano o sabe la sintaxis correcta para pasar el código?
Muchas gracias de antemano.
Un saludo