Google
Web dns.bdat.net

[PHP-ES] Problemas con Secuancia SQL Dinamica

Write haof XML files: Oswaldo Otero ( oswaldo.otero@gmail.com)
Fecha: mar 26 abr 2005 - 22:58:01 CEST


Hola a todos, tengo una secuancia SQL, dinamica, que esta relacionada
con una tabla que dice que preguntas usa ciero cuestionario.

Me explico, nosotros decidimos, que preguntas conforman que
cuestionario. Asi, por ejemplo, el cuestionario Alfa, esta conformado
por las preguntas: 1,24,33,45,36,88.
Y el cuestionario Omega, por las preguntas: 45,62,27,12.

Nosotros podemos decidir, de manera dinamica, (por database), que
preguntas deseamos, tanto como quitar o dejar. Por eso, estar haciendo
una secuencia de insert distinta cada vez, es por decirlo un completo
fastidio, por otra parte, tendriamos que hacer una por cada
cuestionario y eso es poco practico.

Asi que me hice el siguiente codigo....

//////////////////////////////////////////////////////Viene con
Comentarios, por si acaso//////////////

/----------------First

//Once Again. A Classic sql Connection.

$connection=mysql_connect($db_host,$db_user,$db_pass);
$selection=mysql_select_db('grouprx_com',$connection);

//---------------Second

//The insert script....

//So we have to build a string for insert this in the data base.
$vars=$_POST;
unset($vars['submit']);
//thas was, for unset the submit variable, i mean we don't wanna this in our..

///////////////////////////

///////////////////////////

////////////
$patient=3333;
$product=300;
$orderno=72345;
////////////

//print_r($vars);
$flip=array_flip($vars);
$string=implode("," ,$flip);
//echo $string;
//$insert_var="id,$patient,$product,$orderno,$string";

//echo $insert_var;

///////////////////////////

foreach($flip as $value)
{
        $i++;
        $val[$i]="'$$value'";
        $val2[$i]="`$value`";
        
}
        

//print_r($val);

///////////////////////////

$string2=implode(", ",$val);
$string3=implode(",",$val2);

$insert_var="`id`,$string3";
//echo '<br>';
//echo $string2;

$sql = " INSERT INTO `questionaire_table` ( $insert_var ) VALUES
('','$personal1','$personal2','$personal3','$personal4','$q93','$q4','$q83','$q55','$q92')";

echo $sql;
//-------------------Third

//The query..

$result=mysql_db_query($db,$sql);

if(!$result)
        {
                echo mysql_error();
        
        }

//////////////////////////////////////////////////////////////////////////////////

Con la variable $sql, pasan dos cosas.

1) Si la pongo asi como esta, declarando los campos...incerta perfectamente...
2) Pero si la pongo de la siguiente forma
$sql = " INSERT INTO `questionaire_table` ( $insert_var ) VALUES ('',$string2)";

Lo que me hace es que me inserta no las variables asignadas, sino el
nombre de la variable, asi si $q1='No funciona', el inserta tan solo
$q1, como si fuera una cadena de caracteres.

Disculpen por los comenarios del codigo, pero son un poco para
reflejar mi logica....y disculpen lo largo de este post.

Si pueden darme alguna ayuda...o alguien ha tenido un problema similar.

-- 
Oswaldo Otero en Gmail
La "G" es de GEEK
-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Este archivo fue generado por hypermail 2.1.7 : sáb 18 mar 2006 - 18:49:33 CET