PHP - Problema con consulta sql

   
Vista:

Problema con consulta sql

Publicado por Luis (54 intervenciones) el 24/09/2009 06:34:37
Me gustaria que alguien por favor me ayuede.

Tengo un problema con el siguiente codigo

<?php require_once('Connections/conex.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

//$id_DetailRS2 = "A1801Q"; // valor por defecto
if (isset($_POST['proId'])) {
$id_DetailRS2 = $_POST['proId'];
}

echo "Id".$id_DetailRS2; // Siempre imprime

mysql_select_db($database_conex, $conex);
$query_DetailRS2 = sprintf("SELECT * FROM color, coloresproducto, productos WHERE productos.idProductos = %s AND coloresproducto.idProductos = productos.idProductos AND color.idColor=coloresproducto.idColor ORDER BY color.color ASC", GetSQLValueString($id_DetailRS2, "text"));
$DetailRS2 = mysql_query($query_DetailRS2, $conex) or die(mysql_error());
$row_DetailRS2 = mysql_fetch_assoc($DetailRS2);
$totalRows_DetailRS2 = mysql_num_rows($DetailRS2);

echo "desc " . $row_DetailRS2['descripcion'] . " color " . $row_DetailRS2['color']; // imprime solamente cuando lo ejecuto con el valor por defecto.

Si ejecuto este codigo directamente el navegador con el valor por defecto funciona como deberia funcionar, pero cuando lo llamo desde la otra pagina no funciona, y lo raro es que he pasado el id por post y por get y siempre lo imprime pero no ejecuta la sentencia.

No me da ningun error sql y si imprimo esto $totalRows_DetailRS2 imprime 0.

Es demasiado extraño para mi este error.

Gracias por adelantado al que pueda ayudarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con consulta sql

Publicado por federico (1 intervención) el 24/09/2009 11:50:37
Sinceramente, no sé para que usas esa "pedazo" de función (GetSQLValueString) y sprintf para hacer un simple SELECT...

Prueba a hacerlo así:

$query_DetailRS2 = "SELECT * FROM color, coloresproducto, productos WHERE productos.idProductos = '$id_DetailRS2' AND coloresproducto.idProductos = productos.idProductos AND color.idColor=coloresproducto.idColor ORDER BY color.color ASC";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con consulta sql

Publicado por Luis (54 intervenciones) el 24/09/2009 16:17:56
Federico ese codigo es lo que llaman en dreamweaver un juego de registros. Dreamweaver te permite hacer sentencias sql a traves de una interfaz grafica y te permite ademas poder ver el resultado de la consulta, lo cual sinceramente ahorra mucho trabajo y reduce las posibilidades de que ocurra un error. He leido que la función (GetSQLValueString) ayuda a evitar la inyeccion por url.

Gracias por tu colaboración, estare comentando si esa fue la solocion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con consulta sql

Publicado por Luis (54 intervenciones) el 25/09/2009 05:47:04
Aun sin solucion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar