Foros del Web » Programando para Internet » PHP »

problema rarisimo con querys de mysql y variables de PHP

Estas en el tema de problema rarisimo con querys de mysql y variables de PHP en el foro de PHP en Foros del Web. tengo este código que me permite tener un sistema de drag gracias q jQuery conservando los datos en mi base de datos. (parte del código ...
  #1 (permalink)  
Antiguo 31/12/2011, 13:58
 
Fecha de Ingreso: septiembre-2011
Mensajes: 36
Antigüedad: 12 años, 6 meses
Puntos: 0
problema rarisimo con querys de mysql y variables de PHP

tengo este código que me permite tener un sistema de drag gracias q jQuery conservando los datos en mi base de datos. (parte del código lo he sacado de un tutorial y lo he modificado): no hace falta que se fijen en todo el código, simplemente lo he puesto para que vean el código (practicamente entero ya que he omitido partes como el <style> etc.) por si se me pasa algo.

Código:
<?php 
require ('connect.php');
$user = $_GET['user']; 
$pid = $_GET['pid'];
$zplist = "_zplist";
$uzplist = "$user$zplist";
$query = mysql_query("SELECT * FROM $uzplist WHERE id = '$pid'", $connect);
$row = mysql_fetch_array($query);
$pltruename = $row[truename];
$plname = $row[name]; ?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function(){ 	
	  function slideout(){
  setTimeout(function(){
  $("#response").slideUp("slow", function () {
      });
    
}, 2000);}
	
    $("#response").hide();
	$(function() {
	$("#list ul").sortable({ opacity: 0.8, cursor: 'move', update: function() {
			
			var order = $(this).sortable("serialize") + '&update=update'; 
			$.post("songframe.php", order, function(theResponse){
				$("#response").html(theResponse);
				$("#response").slideDown('slow');
				slideout();
			}); 															 
		}								  
		});
	});

});	
</script>
</head>
<body>
<div id="container">
  <div id="list">

    
    
      <?php
echo '<div id="songs">playlist selected: '.$pltruename.' <br> canciones: <br></div><ul>';
                include("drag/connect.php");
				$queryz  = "SELECT * FROM $pltruename ORDER BY uid ASC";
				$result = mysql_query($queryz);
				while($row = mysql_fetch_array($result, MYSQL_ASSOC))
				{
					
				$id = stripslashes($row['id']);
				$text = stripslashes($row['titulo']);
					
				?>
      <li id="arrayorder_<?php echo $id ?>"><?php echo 'blablabla'; ?>
        <div class="clear"></div>
      </li>
      <?php } ?>
    </ul>
  </div>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-7025232-1");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>
<?php 
$array	= $_POST['arrayorder'];
$table = "usuario_probando";
echo $table;
echo $pltruename;
if ($_POST['update'] == "update"){
	
	$count = 1;
	foreach ($array as $idval) {
		$queryx = "UPDATE $table SET uid = " . $count . " WHERE id = " . $idval;
		mysql_query($queryx) or die('Error, insert query failed');
		$count ++;	
	}
	
}
?>
el código funciona de maravilla, el efecto de drag funciona y se guardan los datos en la tabla. El problema reside en la ultima parte del código (que les vuelvo a poner aqui abajo), encargada de guardar los datos en la tabla, les explico: como pueden ver la variante $table es "usuario_probando"(de esta manera el código funciona pero no quiero que esta variable tenga un valor fijo!!). Quiero que el valor de esta variable sea el mismo que el de $pltruename. el problema es que si escribo: $table=$pltruename entonces deja de funcionar, y ya no me guarda las modificaciones en la tabla. Lo que me parece extrañisimo es que (como ven e el codigo) cuando el navegador me muestra la página los dos "echos" de la parte final me dan el mismo resultado. usuario_probando Es decir que $table y $pltruename tienen el mismo valor!

necesito ayuda porfavor, si se necesita el código entero para diagnosticar el origen del error pedidlo y lo pondré.

Código PHP:
<?php 
$array    
$_POST['arrayorder'];
$table "usuario_probando";
echo 
$table;
echo 
$pltruename;
if (
$_POST['update'] == "update"){
    
    
$count 1;
    foreach (
$array as $idval) {
        
$queryx "UPDATE $table SET uid = " $count " WHERE id = " $idval;
        
mysql_query($queryx) or die('Error, insert query failed');
        
$count ++;    
    }
    
}
?>
Gracias de antemano y feliz año nuevo!
  #2 (permalink)  
Antiguo 01/01/2012, 06:18
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: problema rarisimo con querys de mysql y variables de PHP

Prueba con:
Código PHP:
$table = &$pltruename
Eso debería crear una referencia al objeto, es decir, que $table será siempre $pltruename, aunque el valor de este segundo cambie.

http://php.net/manual/en/language.references.php

Saludos y feliz año.
  #3 (permalink)  
Antiguo 04/01/2012, 13:33
 
Fecha de Ingreso: septiembre-2011
Mensajes: 36
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: problema rarisimo con querys de mysql y variables de PHP

vale ya sta, resuelto:

el javascript queda asi:

var plt = "<?php echo $pltruename ?>";
var order = $(this).sortable("serialize") + '&update=update';
$.post("songframe.php?table="+plt, order, function(theResponse){

y el php del final queda asi:

<?php
$array = $_POST['arrayorder'];
$table = $_GET['table];
if ($_POST['update'] == "update"){

$count = 1;
foreach ($array as $idval) {
$queryx = "UPDATE $table SET uid = " . $count . " WHERE id = " . $idval;
mysql_query($queryx) or die('Error, insert query failed');
$count ++;
}

}
?>

Etiquetas: ajax, drag, jquery, mysql, query, syntax, update
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 18:21.