Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/11/2012, 17:23
nicomonjes
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 33
Antigüedad: 15 años
Puntos: 1
Respuesta: Incorporar include dentro de xml con php

Eleazan sos un Dios!!! está buenisimo lo que hiciste..
igualmente por más que intente no puedo hacerlo correr..
me tira muchos warnings porque no se como llamarlo

mi estructura deberia quedar así:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <quizzes>
  3. <quiz>
  4. <title>Quien es Quien?</title>
  5. <grading>
  6. <range start="0" end="100">
  7. <grade>F</grade>
  8. <rank>Rank</rank>
  9. </range>
  10. </grading>
  11.  
  12. <question>
  13. <text>Pregunta</text>
  14. [
  15. <img src="profile/1353088266.jpg" alt="Profile"/>
  16. ]
  17. <option>
  18. <text>ABELENDA LORENA MARIA</text>
  19. <score>1</score>
  20. </option>
  21.  
  22. <option>
  23. <text><?php require_once('opcion1.php'); ?>
  24. </text>
  25. <score>0</score>
  26. </option>
  27.  
  28. <option>
  29. <text/>
  30. <score>0</score>
  31. </option>
  32.  
  33. </question>
  34. </quiz>
  35. </quizzes>

o sea tengo que tener tres opciones y una tiene que ser la verdadera pero ordenarlas de manera aleatoria entre ellas.. porque siempre me aparece arriba

por más que intenté llamar la función dentro del while y en el print no se si hago bien.. intenté llamarla con <? echo $pregunta = shuffle($pregunta); ?> y sin echo..
y tampoco pude probar que funcione el getNombre

mirá.. te muestro como lo puse..

Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/xml");
  3. include("../../../ws/conexion.php");
  4.  
  5.  
  6. function getNombre($sexo, $link) {
  7.     $sql = "SELECT * FROM 'usuarios' WHERE 'sexo' = '$sexo' ORDER BY RAND() LIMIT 1";
  8.     $r = mysql_query($sql, $link); //ATENCIÓN! Función deprecada ;)
  9.     $arr = mysql_fetch_array($r);
  10.     return $arr['nombre'];
  11. }  
  12.  
  13.  
  14. $pregunta = shuffle($pregunta);  
  15.     $result=mysql_query("SELECT usuarios.* FROM usuarios WHERE usuarios.aprobacion = 'si' order by RAND() limit 100",$link);
  16.  
  17. echo '<quizzes>';
  18. echo '  <quiz>';
  19. echo '    <title>Quien es Quien?</title>';
  20. echo '    <grading>';
  21. echo '      <range start="0" end="100">';
  22. echo '        <grade>F</grade>';
  23. echo '        <rank>Rank</rank>';
  24. echo '      </range>';
  25. echo '    </grading>';
  26.  
  27. while($row = mysql_fetch_array($result)) {
  28.    
  29. $pregunta[0]['nombre'] = '%s';
  30. $pregunta[0]['score'] = 1;
  31. $pregunta[1]['nombre'] = getNombre('m', $link);
  32. $pregunta[1]['score'] = 0;
  33. $pregunta[2]['nombre'] = getNombre('m', $link);
  34. $pregunta[2]['score'] = 0;
  35.  
  36. $pregunta = shuffle($pregunta);  
  37.  
  38.    
  39.         printf("
  40.             <question>
  41.      <text>Pregunta</text>
  42.      [<img src='%s' alt='Profile' />]
  43.  
  44.      <option>
  45.        <text>%s</text>
  46.        <score>1</score>
  47.      </option>
  48.  
  49.      <option>
  50.        <text><? echo $pregunta = shuffle($pregunta); ?></text>
  51.        <score>0</score>
  52.      </option>
  53.  
  54.      <option>
  55.        <text>%s</text>
  56.        <score>0</score>
  57.      </option>
  58.     </question>
  59.         ", $row["img"], $row["pregunta"], $row["nombre"], $row["nombre"]);
  60.  
  61.  
  62.     }
  63.     mysql_free_result($result);
  64.  
  65. echo '  </quiz>';
  66. echo '</quizzes>';
  67. ?>

pero entiendo que está mal ya que me da la sensación de que el print debería estar dentro del array para que se muestre aleatoriamente.. estoy muy mareado, creo que voy a tener que contratar a alguien para que me ayude!