Interrogar a mysql desde php

Hola, lo primero felicitaros por el trabajo que realizais. Mi consulta: Comienzo a estudiar php. Intento conseguir interrogar a la base de datos...

La FAQ Interrogar a mysql desde php tiene

Pertenece a la categoría:

Pregunta
Hola, lo primero felicitaros por el trabajo que realizais.
Mi consulta:

Comienzo a estudiar php.
Intento conseguir interrogar a la base de datos mysql desde php, sólo en los registros que me interesan.

NO consigo hacer que me funcione WHERE.
MI EJEMPLO: despues de conectarme a la base datos, etc.
table>

CODIGO
NOMBRE
DIRECCION

$dbname="ejemplo";
$tablename="clientes";
$query="SELECT * FROM $tablename;";
$result=mysql_db_query ($dbname, $query, $link);
while ($row = mysql_fetch_array ($result))
{
print ("");
print ("$row[codigo]
");
print ("$row[nombre]
");
print ("$row[direccion]
");
print ("");
}
mysql_free_result($result);
?>
Este trozo funciona bien,pero sale toda la base de datos.
Quiero poder seleccionar sólo, clientes de una direccion, o de un nombre, etc.
Lo intento con WHERE y no hay manera. Ya no se ni donde escribir.
Gracias por la ayuda.


Respuesta de Ricardo Ruiz
Este es para el área de SQL, pero normalmente cuando se genera el código SQL de manera dinamica desde PHP deberas de tener mucho cuidado.

La respuesta pudiera ser:

$query="SELECT * FROM $tablename";
$query.="WHERE id_cliente LIKE %".$variable."%;";

Ten cuidado de las varibles, antes de insertarlas o correr cualquier consulta deberas parsearlas o algun método en el cual puedas hacer querys que no vayan a poder inyectarle codigo SQL.

La segunda parte, ahi empezaras a poner todas las clausulas como si correr la consulta en consola.

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios
Fueron enviados 8 comentarios a la faq
4 comentarios no revisados
4 comentarios revisados:
mysql desde php
14/2/2012
pudes trabajarlo asi:

SELECT * FROM $tablename WHERE id=$table_id
é incluso podriar realizar otro filtro con la palabra AND por ejemplo:

SELECT * FROM $tablename WHERE id=$table_id AND $table_estado = 'active';

Por otra parte si vas a trabajar con mysql y php utiliza la funcion mysql_query($sql); para realizar las consultas.

Por otra parte no olvides siempre de cerrar la conexion utilizando mysql_close($conexion); al final de tu código.

Seether
Consulta Especifica
22/2/2012
Para la consulta que tu necesitas debes hacerlo con el operador OR ya que tu buscas por nombre o por domicilio es la consulta que mas se acercaria a lo que buscas quedaria asi:

$result = mysql_query("SELECT * FROM $tablename WHERE nombre = '$variable_nombre' || direccion = '&variable_direccion'");

while($row = mysql_fetch_array($result)) {
echo $row['codigo'] . "<br>";
echo $row['nombre'] . "<br>";
echo $row['direccion'];
}

Esta consulta te debera arrojar solo los registros que cumplan con una u otra condicion

engendr...
Lo que yo hago....
15/3/2012
A mi me gusta hacer uso de matrices, de este modo:

$where[] = "nombre like '%".mysql_real_escape_string($variableNombre)."%'";
$where[] = "id = ".$variableId;
$where[] = "nombrecampo = ".$variableCampo;

Nota el uso de mysql_real_escape_string, te sirve para asegurarte que el query este bien estructurado y ademas puedes llegar a evitar un poco la inyección de SQL

Una vez que tengo mi matriz cargada lo que hago es:

$query = "select * from tabla where ".implode(", ", $where);

de esa manera tu sentencia es tan dinámica como se pueda. Es obvio que debes agregar validaciones, en el caso de que la matriz $where no contenga registros, los tipos de datos, etc.

Espero que te sirva, yo lo uso con mucha frecuencia
MySQL desde PHP
17/7/2012
Una herramienta que es muy útil cuando estas comenzando a aprender sobre PHP y MySQL son los manejadores de bases de datos. Uno que te recomiendo es phpMyAdmin. En casi todos los servidores de hospedaje lo tienen disponible. Este te va a permitir aprender de una forma un poco mas simple el uso del lenguaje SQL.
El phpMyAdmin, cuenta con herramientas que te permiten incluso, generar el código PHP de una consulta (query) en particular.
Otra opción es el MySQL workbench, ese lo encuentras en el sitio de MySQL.
Suerte !!

Volver al árbol de categoríasVolver al árbol de categorías

Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...