Foros del Web » Programando para Internet » PHP »

Problemad con el JOIN

Estas en el tema de Problemad con el JOIN en el foro de PHP en Foros del Web. Tengo un problema, necesito que en mi buscador cuando ingresen X datos ejemplo "Prueba" el mismo busque en dos tablas las cuales son sistema_noticias y ...
  #1 (permalink)  
Antiguo 07/02/2007, 13:58
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 21 años
Puntos: 3
Pregunta Problemad con el JOIN

Tengo un problema, necesito que en mi buscador cuando ingresen X datos ejemplo "Prueba" el mismo busque en dos tablas las cuales son sistema_noticias y sistema_noticias_archivo, las dos tienen el mismo campo para TITULO y NOTAS las dos tienen el privilegio de FULL TEXT...

estuve revisando funciones MySQL y consegui este condigo de Join que se supone debe solucionar el problema:
Código PHP:
          SELECT Clientes.NombreEmpleados.Nombre 
          FROM Clientes JOIN Empleados
          ON Clientes
.Vendedor Empleados.Id
ahora aplicandolo a mi necesidad seria algo asi:

Código PHP:
SELECT sistema_noticias.noticia,sistema_noticias_archivo.noticia FROM sistema_noticias JOIN sistema_noticias_archivo ON 
sistema_noticias
.noticia sistema_noticias_archivo.noticia where MATCH(noticiaAGAINST ('$story'); 
siguiendo los pasos deberia de funcionar pero ahora me lanza un error:

Código PHP:
Warningmysql_num_rows(): supplied argument is not a valid MySQL result resource in C:Program FilesApache GroupApache2htdocsDLA_search_part1.php on line 29 
donde creen ustedes que este el error?
Gracias por su ayuda....
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!

Última edición por el cirujano; 07/02/2007 a las 14:42
  #2 (permalink)  
Antiguo 07/02/2007, 15:35
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Re: Problemad con el JOIN

Trata de usar el mysql_error() para que veas que fallo en tu consulta..

la forma de usarlo es la siguiente:

Código PHP:
$sql "SELECT * FROM tabla WHERE idtabla <> 0";
$query mysql_query($sql);
if (!
$query)  die ("Error en la consulta: "mysql_error()); 
  #3 (permalink)  
Antiguo 07/02/2007, 16:22
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 21 años
Puntos: 3
Re: Problemad con el JOIN

Gracias erlingfiallos con tu aporte logre hacer que me diera el numero de registro pero ahora no me quiere respetar los $row[campo].... porque?

if (mysql_num_rows($resultados)>0){

while ($row = mysql_fetch_array($resultados)){
if (1){
echo $row["titulo"];

}

}} else {
echo "<font color='darkgray'>(sin resultados)</font>";
}
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #4 (permalink)  
Antiguo 07/02/2007, 18:46
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Problemad con el JOIN

proba con esto

SELECT Clientes
.Nombre, Empleados.Nombre
FROM Clientes INNER JOIN Empleados
ON Clientes
.Vendedor = Empleados.Id;

while ($row = mysql_fetch_array($resultados)){
if (1){
echo $row['titulo'];//comillas simples
  #5 (permalink)  
Antiguo 07/02/2007, 19:43
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
De acuerdo Re: Problemad con el JOIN

yo lo hago asi es la mejor forma:


Código PHP:
$sql "SELECT campo1,campo2 FROM tabla WHERE condicion ";

$result mysql_query($sql);

if (
$row mysql_fetch_array($result)) 
  {
     echo 
$row[campo1];
  } 
salu2
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #6 (permalink)  
Antiguo 07/02/2007, 21:36
hen
 
Fecha de Ingreso: diciembre-2003
Ubicación: Buenos Aires
Mensajes: 63
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Problemad con el JOIN

No seria mejor relacionar los registros de tus tablas 'sistema_noticias' y 'sistema_noticias_archivo' a travez de una clave foranea.
Por ejemplo:

esta seria una de las dos tablas:

=============================
Tabla: sistema_noticias
=============================
id_noticia : 1
titulo : Club River Plate Campeon
-------------------------------------
id_noticia : 2
titulo : Saviola se consagra goleador
-------------------------------------

y por otro lado, tenemos la otra tabla:

=============================
tabla : sistema_noticias_archivo
=============================
id_noticia : 1
noticia : El Club River es el mejor ;D
-------------------------------------
id_noticia : 2
noticia : Saviola "Grande", paradojico no
-------------------------------------

Bueno estas son las tablas, ahora suponiendo q alguien entra en tu web y busca la palabra 'River'

$palabra = 'River';

El script seria asi:

$link = mysql_connect("localhost", "user", "password");

if ($link) {

if (mysql_select_db('test')) {

$sql = "
SELECT
N.titulo,
NA.noticia
FROM sistema_noticias AS N
JOIN sistema_noticias_archivo AS NA
USING(id_noticia)
WHERE MATCH(N.titulo) AGAINS ('$palabra')
";
$res = mysql_query($sql, $link);
if (mysql_num_rows($res) > 0) {
$i = 0;
while ($fila = mysql_fetch_array($res)) {
echo $i."- ".$fila['titulo']." ===> ".$fila['noticia']."<br />";
$i++;
}
}
else {
echo "Sin resultados";
}
}
else {
die("Error en la seleccion de la tabla -> ".mysql_error());
}
}
else {
die("Error en la conexion a la base de datos -> ".mysql_error());
}


Bueno a mi parecer esa seria la forma de la consulta. Igual te podes bajar el manual de MySQL en espaniol desde mysql.com

http://dev.mysql.com/doc/

Yo me baje el manual en version CHM y me resulta muy util.
Espero haber echado un poco de luz sobre el tema.

Chao
__________________
.:hEN
DevHen
EXITOS
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 10:51.