buenas noches estoy trabajando este codigo
$query_Rcli = "SELECT * FROM clientes WHERE Activo = 'SI'";
$Rcli = mysql_query($query_Rcli, $conection) or die(mysql_error());
$row_Rcli = mysql_fetch_assoc($Rcli);
$totalRows_Rcli = mysql_num_rows($Rcli);
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();
echo htmlentities($row['_message']);
$totalRows_Rcli = mysql_num_rows($Rcli);
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
$c = new mysqli("localhost", "root", "", "bdcyv");
$Rcli = $mysqli->query
donde declaraste $mysqli si la linea anterior asignaste el mysqli a $c?
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
lee la documentación... $Rcli tiene propiedad error?
La propiedad error esta en $c no en $Rcli
http://php.net/manual/en/mysqli.error.php
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
$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
Cita de: 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
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....
$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
?>
Cita de: 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
?>
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
$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
<?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)
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
<?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
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
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"> </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
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....
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.