problema con sql y sqli

Iniciado por mxsoun, 25 Julio 2017, 06:59 AM

0 Miembros y 1 Visitante están viendo este tema.

engel lex

#10
$Rcli = $c->query($sql);

$row_Rcli = mysqli_fetch_assoc($Rcli);


que rayos haces? -.- te di un codigo de como se hace!!!! no mescles cosas, o lo haces todo OOP o lo haces procedimental...

poro otro lado...

Citarerror mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean

el resultado es booleano... en el codigo comentado que dejé indiqué que significa eso...

para expandirte más el codigo porque veo que no es suficiente

Código (php) [Seleccionar]
<?php 
 
$conexion 
= new mysqli("localhost""root""""bdcyv");
 
$sql "SELECT * FROM clientes WHERE Activo = 'SI'"
  
$salida = [];
 
$resultado $conexion->query($sql);
 
if ( 
$resultado ) { //si hay resultado
  
while( $valores $resultado->fetch_assoc() ){ //hacemos un ciclo para extraer todo 
    
$salida[]=$valores;
  } 
}else{ 
// si no hay resultado, significa error
  
echo $conexion->error;
}

$cantidad_de_cloumnas $resultado->num_rows;

$resultado->close(); 
 
// $salida contiene los resultados
 
?>


y el error está aquí
$sql = "SELECT * FROM clientes WHERE 'IDcli' = %s, '$colname_Rcli', 'int' " ;

esa consulta está mala, te dará error cerca de alguna de las comas


te puse un codigo explicado para que entendieras...

sientate a estudiar antes de continuar, tanto php como mysql y luego continuas...

aquí la documentación del objeto resultado

http://php.net/manual/es/class.mysqli-result.php


El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

mxsoun

#11
Cita de: engel lex en 26 Julio 2017, 07:46 AM
$Rcli = $c->query($sql);

$row_Rcli = mysqli_fetch_assoc($Rcli);


que rayos haces? -.- te di un codigo de como se hace!!!! no mescles cosas, o lo haces todo OOP o lo haces procedimental...

poro otro lado...

el resultado es booleano... en el codigo comentado que dejé indiqué que significa eso...

para expandirte más el codigo porque veo que no es suficiente

Código (php) [Seleccionar]
<?php 
 
$conexion 
= new mysqli("localhost""root""""bdcyv");
 
$sql "SELECT * FROM clientes WHERE Activo = 'SI'"
  
$salida = [];
 
$resultado $conexion->query($sql);
 
if ( 
$resultado ) { //si hay resultado
  
while( $valores $resultado->fetch_assoc() ){ //hacemos un ciclo para extraer todo 
    
$salida[]=$valores;
  } 
}else{ 
// si no hay resultado, significa error
  
echo $conexion->error;
}

$cantidad_de_cloumnas $resultado->num_rows;

$resultado->close(); 
 
// $salida contiene los resultados
 
?>


y el error está aquí
$sql = "SELECT * FROM clientes WHERE 'IDcli' = %s, '$colname_Rcli', 'int' " ;

esa consulta está mala, te dará error cerca de alguna de las comas


te puse un codigo explicado para que entendieras...

sientate a estudiar antes de continuar, tanto php como mysql y luego continuas...

aquí la documentación del objeto resultado

http://php.net/manual/es/class.mysqli-result.php





listo sin errores ahora ya me aparece el formulario, pero por ejemplo cuando pongo por metodo get el numero 1 no me muestra en las casillas el dato del cliente por ejemplo
esta abajo con html en tablas e imprimo de esa forma  
<?php echo $row_Rcli['IDcli']; ?> :-(



puse el code despues de la linea $totalRows_Rcli = $Rcli->num_rows;
pero solo me muestra el formulario sin nada de valores


engel lex

muestra el codigo... a estas alturas no confío de los desatres que armes...

por cierto, puedes hacer un vardump a la varible de num_rows... si es 0... es porque no hay nada con esa condicion en ta tabla
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

mxsoun

Cita de: engel lex en 26 Julio 2017, 09:20 AM
muestra el codigo... a estas alturas no confío de los desatres que armes...

por cierto, puedes hacer un vardump a la varible de num_rows... si es 0... es porque no hay nada con esa condicion en ta tabla

jeje es que ya ando muy perdido.






<?php

if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue "")
 
{

 
Global 
$con;
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }
  
$theValue mysqli_real_escape_string($con$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;
}
}



$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$vactivo "SI";
  
$updateSQL sprintf("UPDATE clientes SET RazonS=%s, Giro=%s, Direc=%s, Edo=%s, Mpio=%s, Cp=%s, Rfc=%s, Mail=%s, Dominio=%s, Contacto=%s, Tel1=%s, Activo=%s, Tel2=%s WHERE IDcli=%s",
                       
GetSQLValueString($_POST['RazonS'], "text"),
                       
GetSQLValueString($_POST['Giro'], "text"),
                       
GetSQLValueString($_POST['Direc'], "text"),
                       
GetSQLValueString($_POST['Edo'], "text"),
                       
GetSQLValueString($_POST['Mpio'], "text"),
                       
GetSQLValueString($_POST['Cp'], "text"),
                       
GetSQLValueString($_POST['Rfc'], "text"),
                       
GetSQLValueString($_POST['Mail'], "text"),
                       
GetSQLValueString($_POST['Dominio'], "text"),
                       
GetSQLValueString($_POST['Contacto'], "text"),
                       
GetSQLValueString($_POST['Tel1'], "text"),
                       
GetSQLValueString($vactivo"text"),
                       
GetSQLValueString($_POST['Tel2'], "text"),
                       
GetSQLValueString($_POST['IDcli'], "int"));

  
  
  
$updateGoTo "menu.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$updateGoTo .= (strpos($updateGoTo'?')) ? "&" "?";
    
$updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$updateGoTo));
}

$colname_Rcli "-1";
if (isset(
$_GET['idc'])) {
  
$colname_Rcli $_GET['idc'];
}
global 
$c;


$c = new mysqli("localhost""root""""bdcyv");
$sql "SELECT * FROM clientes WHERE 'IDcli = %s' '$colname_Rcli' 'int'  "  ;

$salida = [];
 
$Rcli $c->query($sql);
 
if ( 
$Rcli ) { //si hay resultado
  
while( $row_Rcli $Rcli->fetch_assoc() ){ //hacemos un ciclo para extraer todo 
    
$salida[]=$row_Rcli;





  } 
}else{ 
// si no hay resultado, significa error
  
echo $c->error;
}
 
$totalRows_Rcli $Rcli->num_rows;

?>



<!DOCTYPE html>
<html lang="es">

  <head>
    <meta charset="utf-8">
    <title>Actualizar cliente</title>
    <link rel="stylesheet" href="css/styleadm.css">
  </head>
 


<body>

<div class='panelg'>
 
    <div class="header">
      <a class="logo" href="../index.html">
        <img src="../images/logo.png" />
      </a>
      <h3>
        computo
      </h3> 
    </div>
 
 
    <div class='panel1'>
      <div class="panel2">
        <form method="post" name="form1" action="<?php echo $editFormAction?>">
          <table align="center">
            <tr valign="baseline">
              <td nowrap align="right">IDcli:</td>
              <td><?php echo $row_Rcli['IDcli']; ?></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">RazonS:</td>
              <td><input type="text" name="RazonS" value="<?php echo htmlentities($row_Rcli['RazonS'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">Giro:</td>
              <td><input type="text" name="Giro" value="<?php echo htmlentities($row_Rcli['Giro'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">Direc:</td>
              <td><input type="text" name="Direc" value="<?php echo htmlentities($row_Rcli['Direc'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">Edo:</td>
              <td><input type="text" name="Edo" value="<?php echo htmlentities($row_Rcli['Edo'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">Mpio:</td>
              <td><input type="text" name="Mpio" value="<?php echo htmlentities($row_Rcli['Mpio'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">Cp:</td>
              <td><input type="text" name="Cp" value="<?php echo htmlentities($row_Rcli['Cp'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">Rfc:</td>
              <td><input type="text" name="Rfc" value="<?php echo htmlentities($row_Rcli['Rfc'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">Mail:</td>
              <td><input type="text" name="Mail" value="<?php echo htmlentities($row_Rcli['Mail'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">Dominio:</td>
              <td><input type="text" name="Dominio" value="<?php echo htmlentities($row_Rcli['Dominio'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">Contacto:</td>
              <td><input type="text" name="Contacto" value="<?php echo htmlentities($row_Rcli['Contacto'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">Tel1:</td>
              <td><input type="text" name="Tel1" value="<?php echo htmlentities($row_Rcli['Tel1'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <!--
            <tr valign="baseline">
              <td nowrap align="right">Activo:</td>
              <td><input type="text" name="Activo" value="<?php echo htmlentities($row_Rcli['Activo'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            -->
            <tr valign="baseline">
              <td nowrap align="right">Tel2:</td>
              <td><input type="text" name="Tel2" value="<?php echo htmlentities($row_Rcli['Tel2'], ENT_COMPAT'utf-8'); ?>" size="32"></td>
            </tr>
            <tr valign="baseline">
              <td nowrap align="right">&nbsp;</td>
              <td><input type="submit" value="Actualizar"></td>
            </tr>
          </table>
          <input type="hidden" name="MM_update" value="form1">
          <input type="hidden" name="IDcli" value="<?php echo $row_Rcli['IDcli']; ?>">
        </form>
        <p>&nbsp;</p>
      </div>
    </div>
   
</div>
 
</body>
</html>

<?php 
$Rcli
->close(); 
 
// $salida contiene los resultados
?>










por cierto el otro error que tengo es que tambien no modifica manda al menu

engel lex

tu codigo está mal o porque andas copiando y pegando a lo ciego o por falta de atencion

ve tu codigo con calma

no voy a continuar resolviendo los errores basicos de algoritmia... el problema con sql y mysqli_ está resuelto...

ya estás completamente enredado copiando y pegando a lo ciego y dejandome a mi que resuelva tus errores...

hasta aquí lo dejo....
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

mxsoun

No fue copiar y pegar solo copie y pegue los de las bases de datos, pero ya con lo que me pusiste de base de datos pude analizar en la noche y con la info que me mandaste de php vastantes errores tengo pero estaba acostumbrado a la forma tradicional.
Y creo para eso se hicieron los foros de este tipo para ayudar revolver dudas por más tontas que sean hasta luego y gracias.