Título: problema con sql y sqli
Publicado por: mxsoun en 25 Julio 2017, 06:59 am
buenas noches estoy trabajando este codigo $query_Rcli = "SELECT * FROM clientes WHERE Activo = 'SI'";
pero tengo error ya que no se usa sql si no sqli por que tengo xampp entonces e buscado por toda la red y trato de realizar lo siguiente: global $c; $c = new mysqli("localhost", "root", "", "bdcyv"); $Rcli = $mysqli->query("SELECT * FROM clientes WHERE Activo = 'SI'", $c); $row = $Rcli->fetch_assoc();
pero me manda error Notice: Undefined variable: mysqli in C:\xampp\htdocs\p\admin\clilisbaja.php on line 4 Fatal error: Uncaught Error: Call to a member function query() on null in C:\xampp\htdocs\p\admin\clilisbaja.php:4 Stack trace: #0 {main} thrown in C:\xampp\htdocs\p\admin\clilisbaja.php on line 4 y nada mas no doy con el error alguien me puede apoyar en saber que tengo mal ? ya hasta busque en la web de php y siempre me sale el error de Uncaught Error: Call to a member function query() on null in · Los códigos deben ir en etiquetas GeSHi >aquí las reglas del foro (http://foro.elhacker.net/reglas.htm) -Engel Lex
Título: Re: problema con sql y sqli
Publicado por: engel lex en 25 Julio 2017, 07:43 am
$c = new mysqli("localhost", "root", "", "bdcyv"); $Rcli = $mysqli->query donde declaraste $mysqli si la linea anterior asignaste el mysqli a $c?
Título: Re: problema con sql y sqli
Publicado por: mxsoun en 25 Julio 2017, 08:01 am
ya encontre mi error quedo de esta forma global $c; $c = new mysqli("localhost", "root", "", "bdcyv"); $Rcli = $c->query("SELECT * FROM clientes WHERE Activo = 'SI'"); $row_Rcli = $Rcli->fetch_object(); $totalRows_Rcli = $Rcli->num_rows;
ahora ya no tengo errores pero no me salen los clientes imprimo de esta manera <?php echo $row_Rcli->IDcli; ?>
corri un <?php echo $Rcli->error ?>
para ver los errores y me sale Notice: Undefined property: mysqli_result::$error in · Los códigos deben ir en etiquetas GeSHi (segundo aviso) >aquí las reglas del foro (http://foro.elhacker.net/reglas.htm) -Engel Lex
Título: Re: problema con sql y sqli
Publicado por: engel lex en 25 Julio 2017, 19:02 pm
lee la documentación... $Rcli tiene propiedad error?
Título: Re: problema con sql y sqli
Publicado por: MinusFour en 25 Julio 2017, 20:45 pm
La propiedad error esta en $c no en $Rcli
http://php.net/manual/en/mysqli.error.php
Título: Re: problema con sql y sqli
Publicado por: mxsoun en 25 Julio 2017, 23:35 pm
ok, listo ya fue solucionado
ahora
tengo otra consulta
$Rcli = $c->query("SELECT * FROM clientes WHERE IDcli = %s", $colname_Rcli);
$row_Rcli = $Rcli->mysql_fetch_assoc($Rcli); $totalRows_Rcli = $Rcli->num_rows;
me sale error Fatal error: Uncaught Error: Call to a member function mysql_fetch_assoc() on boolean in
Título: Re: problema con sql y sqli
Publicado por: engel lex en 26 Julio 2017, 01:24 am
$row_Rcli = $Rcli->mysql_fetch_assoc($Rcli); de donde sacaste eso? lee la documentación... estás copiando el comando mysql_fetch_assoc (lee bien mysql_fetch_assoc) como si fuera parte de la clase resultado de la clase mysqli_... a demás le pasas como parametro su padre al método... :huh: en php.net (http://php.net) están las funciones y como se usan... no hagas locuras
Título: Re: problema con sql y sqli
Publicado por: mxsoun en 26 Julio 2017, 05:11 am
$row_Rcli = $Rcli->mysql_fetch_assoc($Rcli); de donde sacaste eso? lee la documentación... estás copiando el comando mysql_fetch_assoc (lee bien mysql_fetch_assoc) como si fuera parte de la clase resultado de la clase mysqli_... a demás le pasas como parametro su padre al método... :huh: en php.net (http://php.net) están las funciones y como se usan... no hagas locuras estoy muy liado con el codigo $Rcli = $c->query("SELECT `bdcyv` FROM `clientes` WHERE 'IDcli'= %s GetSQLValueString($colname_Rcli, `int` ))"; $row_Rcli = $Rcli->fetch_assoc(); $totalRows_Rcli = $Rcli->num_rows;
tengo ese code y este error syntax error, unexpected ';', expecting ',' or ')' la verdad ya estoy muy confundido y ya lei la documentación de la nueva version y nada mas no doy....
Título: Re: problema con sql y sqli
Publicado por: engel lex en 26 Julio 2017, 05:26 am
$Rcli = $c->query("SELECT `bdcyv` FROM `clientes` WHERE 'IDcli'= %s GetSQLValueString($colname_Rcli, `int` ))";
que ide usas para programar? este tipo de errores lo debes ver con facilidad en tu ide... el error está entre el ultimo parentesis y la ultima comilla... están mal es simple... literalmente de este ejemplo no tienes que salir suponiendo que clientes contiene "nombre", "direccion" y "telefono" <?php $conexion = new mysqli("localhost", "root", "", "bdcyv"); /* $conexion contiene el objeto conector, con los errores, llamadas, etc */ $sql = "SELECT * FROM clientes WHERE Activo = 'SI'"; /* es buena idea separar el query para mejor legibilidad */ $salida = []; $resultado = $conexion->query($sql); /* resultado contiene el objeto devuelto, si falló o no consiguió nada, retornará False si se usa por ejemplo en insert, retornará True de ser exitoso */ if ( $resultado ) { //si hay resultado while( $valores = $resultado->fetch_assoc() ){ //hacemos un ciclo para extraer todo $salida[]=$valores; } } /* opcional, leer al respecto, no siempre es eficiente */ $resultado->close(); // $salida contiene los resultados ?>
Título: Re: problema con sql y sqli
Publicado por: mxsoun en 26 Julio 2017, 06:57 am
$Rcli = $c->query("SELECT `bdcyv` FROM `clientes` WHERE 'IDcli'= %s GetSQLValueString($colname_Rcli, `int` ))";
que ide usas para programar? este tipo de errores lo debes ver con facilidad en tu ide... el error está entre el ultimo parentesis y la ultima comilla... están mal es simple... literalmente de este ejemplo no tienes que salir suponiendo que clientes contiene "nombre", "direccion" y "telefono" <?php $conexion = new mysqli("localhost", "root", "", "bdcyv"); /* $conexion contiene el objeto conector, con los errores, llamadas, etc */ $sql = "SELECT * FROM clientes WHERE Activo = 'SI'"; /* es buena idea separar el query para mejor legibilidad */ $salida = []; $resultado = $conexion->query($sql); /* resultado contiene el objeto devuelto, si falló o no consiguió nada, retornará False si se usa por ejemplo en insert, retornará True de ser exitoso */ if ( $resultado ) { //si hay resultado while( $valores = $resultado->fetch_assoc() ){ //hacemos un ciclo para extraer todo $salida[]=$valores; } } /* opcional, leer al respecto, no siempre es eficiente */ $resultado->close(); // $salida contiene los resultados ?>
lo veo un poco mejor, bueno ya con la conexion no tengo problema el problema es que cuando se selecciona el usuario por ejemplo 1 muestra los datos del 1 por get lo tenia de esta manera $row_Rcli = mysql_fetch_assoc($Rcli); $totalRows_Rcli = mysql_num_rows($Rcli);
pero como ya no funcionan en la nueva version de php lo que hice fue esto $c = new mysqli("localhost", "root", "", "bdcyv"); $sql = "SELECT * FROM clientes WHERE 'IDcli' = %s, '$colname_Rcli', 'int' " ; $salida = []; $Rcli = $c->query($sql);
$row_Rcli = mysqli_fetch_assoc($Rcli);
pero tengo error mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean creo estoy pasando mal un parametro, y ademas no se como tambien incluir num_rows
Título: Re: problema con sql y sqli
Publicado por: 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... error 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 <?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 (http://php.net/manual/es/class.mysqli-result.php)
Título: Re: problema con sql y sqli
Publicado por: mxsoun en 26 Julio 2017, 08:37 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 <?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 (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
Título: Re: problema con sql y sqli
Publicado por: 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
Título: Re: problema con sql y sqli
Publicado por: mxsoun en 26 Julio 2017, 09:28 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"> </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> </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
Título: Re: problema con sql y sqli
Publicado por: engel lex en 26 Julio 2017, 18:34 pm
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....
Título: Re: problema con sql y sqli
Publicado por: mxsoun en 27 Julio 2017, 02:37 am
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.
|