Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problemas PHP y MSSQL

Estas en el tema de Problemas PHP y MSSQL en el foro de Bases de Datos General en Foros del Web. Hola lista: La cosa es que tengo un código para que me muestre frases aleatorias seleccionadas de una BDatos MSSQL Server. Este es el código ...
  #1 (permalink)  
Antiguo 25/08/2004, 08:56
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Problemas PHP y MSSQL

Hola lista:
La cosa es que tengo un código para que me muestre frases aleatorias seleccionadas de una BDatos MSSQL Server. Este es el código de conexión:
Código PHP:
function OpenServerConection($tipo=0){
$host "INTER";
$user "jcgrm";
$passwd "jcgrm";
$dbase "jovenclubgrm";
if(
$tipo==0){
$id mssql_pconnect($host,$user,$passwd) or die("No se ha podido establecer la conexión con el servidor de Bases de Datos. Error: ".mssql_get_last_message());
mssql_select_db($dbase,$id) or die("No se ha podido seleccionar la Base de Datos. Error: ".mssql_get_last_message());
}elseif(
$tipo==1){
$id mssql_connect($host,$user,$passwd) or die("No se ha podido establecer la conexión con el servidor de Bases de Datos. Error: ".mssql_get_last_message());
mssql_select_db($dbase,$id) or die("No se ha podido seleccionar la Base de Datos. Error: ".mssql_get_last_message());
}elseif(
$tipo<|| $tipo>1){
echo 
"Conexión inválida";
}

Este es el de mostrar las frases aleatorias:
Código PHP:
function FraseAleatoria(){
session_start();
$sid "sid=".session_id();
$query "select * from jcgrm_frases where visible<>0 order by RAND()";
$result mssql_query($query) or die("No se ha podido ejecutar la consulta $query. MySQL ha dicho: ".mssql_get_last_message());
$fetch mssql_fetch_assoc($result);
echo 
"<table width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td width='14%' align='left' class='padding font frases'><a href=\"http://www.jovenclub.cu/grm/index.php\" class=\"chlnk\" onclick=\"this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.jovenclub.cu/grm/index.php');\" style='cursor'><img src='images/homepage.gif' class='cursor' border='0' alt='Hacer de esta tu página de inicio'></a> <a href=\"javascript:window.external.AddFavorite('http://www.jovenclub.cu/grm/index.php','Portal de los Joven Club de Computación y Electrónica de Granma');\"><img src='images/favorites.gif' class='cursor' border='0' alt='Adicionar a favoritos'></a> <a href='[email protected]&"
.$sid."'><img src='images/mailer.gif' class='cursor' border='0' alt='Enviar comentarios al webmaster'></td>
<td width='86%' align='right' class='padding font frases'>"
.$fetch['frase']."</td>
</tr>
<tr>
<td colspan='2' align='right' class='padding font frases'>"
.$fetch['autor']."</td>
</tr>
</table>"
;

las llamadas las hago de esta forma
Código PHP:
require("includes/mainfunctions.php");
session_start();
OpenServerConection();
FraseAleatoria(); 
en el archivo index.php
Lo que me pasa es que no me saca la frase aleatoria con el uso de RAND() y me saca caracteres extraños como este ejemplo:
"La armon¡a total de este mundo est formada por una natural aglomeraci¢n de discordancias." (¢). Se que eso está en la codificación pero no recuerdo el parametro RFC correcto.
Sin más
Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 25/08/2004, 10:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Yo no conozco el SQL particular de M$ SQL Server .. pero lo primero que tendrías que resolver es justamente ese punto vía SQL y luego ver otros temás.

¿seguro que "RAND()" se usa igual que en Mysql? (¿quieres mostrar toda esa tabla (resultados) aleatóriamente o sólo un grúpo de registros .. o uno sólo aletorío del total?)


Un saludo,
  #3 (permalink)  
Antiguo 25/08/2004, 11:16
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Pues no se

En realidad no se si puede usar el RAND() con M$SQL Server. Pero me imagino que si puesto que es SQL que es un estnándar (eso creo). Lo que quiero es mostrar un solo resultado aleatorio cada vez. Cuando actualizo la página me sale solo un registro y siempre es el mismo. No se porque razón sea.

Salu2
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 25/08/2004, 12:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
En realidad no se si puede usar el RAND() con M$SQL Server. Pero me imagino que si puesto que es SQL que es un estnándar (eso creo).
Pues resulta que hay vários standars. Mysql no cumple todo el ANSI92/99 .. etc .. que otras BD cumplen. M$ SQL Server no sé cual cumplirá .. pero en su manual oficial describirá cual es (hay que leerlo).

Muevo tu mensaje al foro de Base de datos para que te orienten sobre la consulta SQL más apropiada.

PD: Por cierto .. ¿no pruebas tus consultas SQL sobre algún GUI para MS SQL server como en Mysql puedes usar por ejemplo phpMyadmin? .. Si trabajas con una base de datos, estaría bueno que te rodees de ese tipo de herramientas para "analisis" y "administración" de tus Base de datos, ejecutes y pruebes hasta la saciedad tus consultas SQL y cuando lo tengas todo claro y andando en tu "GUI" .. lo implementas en PHP. Sino, seguiras haciendo preguntas en el foro de PHP cuando tienes problemas con SQL.

Última edición por Cluster; 25/08/2004 a las 12:10
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 17:09.