Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - venadHD

#41
Cita de: DarK_FirefoX en 19 Julio 2015, 03:20 AM
Cuando haces:

Código (php) [Seleccionar]
$dbarray = $query->fetch_array(MYSQLI_NUM);

Obtienes por cada llamada a ese método (fetch_array()) 1 fila en forma de array donde los indices son numéricos y los valores del array son los valores en los campos. Puedo ver que tu tabla tiene tres columnas. Por eso te salen 3 valores.

Debes incluir eso en un array en un while, algo así como:

Código (php) [Seleccionar]
while($row= $query->fetch_array(MYSQLI_NUM))
{
 //Imprimes los valores de la fila $row
}


Nota: Yo, en vez de MYSQLI_NUM, utilizaría MYSQLI_ASSOC, y el array sería asociativo, donde los indices en vez de ser números serían los nombres de las columnas (campos de tu tabla), o simplemente en vez del método fetch_array(), utilizaría el método fetch_assoc()

Espero haberte ayudado! Cualquier cosa pregunta.

Salu2s


Bien bien, puse MYSQLI_ASSOC y va mucho mejor, no tengo que andar contando las columnas xD

Por no hacer otro tema distinto a este y porque se ve muy profesional aqui a todos, esto es mas en referencia a funciones matematicas, tengo un numero con decimales, como podria reducirlo a numero absoluto? osea si tengo  96.551724137931, que simplemente ponga "96", pero no 97!, es decir que lo vuelva absoluto, pero no aproximar, nose si me explique

Código (php) [Seleccionar]
$values = 0;
$totalValues = -1;
while ($row = $query->fetch_array(MYSQLI_ASSOC)) {
$values++;
$totalValues = $totalValues + $row['value'];
}
$porcentaje = $totalValues/$values*100;
print("Numero de valores totales: $values >> Suma de todos $totalValues");
print("Uptime: $porcentaje %"); //Esto es lo que me da los decimales
#42
no entiendo bien, segun foreach es para cada valor de un array, la pagina me devuelve esto: Como tendria que hacer para que imprimiera todos los valores?

KEY: 0 , VALUE: 1
KEY: 1 , VALUE: yo no
KEY: 2 , VALUE: me scripteo
Numero de filas: 19


Codigo source:
Código (php) [Seleccionar]
<html>
<head>
<title>VeNaD PHP Testing</title>
</head>
<!-- CODIGOS PHP INIT -->
<?php
//Conexion a base de datos
$db = array();
$db['usuario'] = "root"$db['contra'] = ""$db['dbnombre'] = 'global'$db['host'] = 'localhost';
$dbConnect = new mysqli($db['host'], $db['usuario'], $db['contra'], $db['dbnombre']);
//Chequeo de conexion a base de datos
if ($dbConnect->connect_errno) {
if ($dbConnect->connect_error) {
print("ERROR DE CONEXION DE MYSQL: ".$dbConnect->connect_error);
die();
}
print("ERROR DE CONEXION DE MYSQL N: ".$dbConnect->connect_errno);
die();
}
//Getter de datos de la base de datos
$query $dbConnect->query("select * from {$db['dbnombre']}");
$numero_filas $query->num_rows;
$dbarray $query->fetch_array(MYSQLI_NUM);
$dbConnect->query("insert into global values(NULL,'uptime', '1')");
//tabla de datos
foreach ($dbarray as $key => $value) {
printf("KEY: %s , VALUE: %s <br>"$key$value);
}
?>

<!-- PAGINA UTIL -->
<body>
<?php
//getter de filas
print("Numero de filas: $numero_filas <br>");
?>

</body>
</html>
<?php $dbConnect->close(); ?>
#43
Cita de: DarK_FirefoX en 18 Julio 2015, 02:15 AM
Para saber el numero de filas que te devolvió la query utilizando la extensión mysqli tienes dos formas, una por procedimientos, utilizando el método

Código (php) [Seleccionar]
mysqli_num_rows(mysqli_result $result)

Que lo que recibe el resultado de la query

O el estilo orientado objetos:

Código (php) [Seleccionar]
$mysqli_result->num_rows;

Por ejemplo, si el resultado de la query esta en la variable $result:

Estilo objetos:

Código (php) [Seleccionar]
$row_count = $result->num_rows;

Estilo procedimientos:

Código (php) [Seleccionar]
$row_count = mysqli_num_rows($result);

Salu2s

Hmm, se ve que el problema es que estoy dandole un valor nil, es decir, probe ambas formas de lo que me mencionaste, pero devuelve nul, Por otra parte, remodifique el codigo para ver si es el result era la query y usé el codigo que tu me dijiste, y funcionó

Codigo antiguo
Código (php) [Seleccionar]
//getter de filas
$query = $dbConnect->query("select * from global");
$result = $query->result;
//$num_rows = $result->num_rows;
$num_rows = mysqli_num_rows($result);


Codigo nuevo
Código (php) [Seleccionar]
//getter de filas
$query = $dbConnect->query("select * from global");
//$result = $query->result;
//$num_rows = $result->num_rows;
$num_rows = $query->num_rows;
print("Numero de filas: $num_rows <br>");


EDIT

Volvió el problema al cambiarlo a formato tabla, anda ya!! D: Si es el mismo codigo, por que falla ahora?

Código (php) [Seleccionar]
<?php
//Conexion a base de datos
$db = array();
$db['usuario'] = "root"$db['contra'] = ""$db['dbnombre'] = 'global'$db['host'] = 'localhost';
$dbConnect = new mysqli($db['host'], $db['usuario'], $db['contra'], $db['dbnombre']);
//Chequeo de conexion a base de datos
if ($dbConnect->connect_errno) {
if ($dbConnect->connect_error) {
print("ERROR DE CONEXION DE MYSQL: ".$dbConnect->connect_error);
die();
}
print("ERROR DE CONEXION DE MYSQL N: ".$dbConnect->connect_errno);
die();
}
//Numero de filas en la base de datos
$query $dbConnect->query("select * from {$db['dbnombre']}");
$numero_filas $query->num_rows;
?>


EDIT DE NUEVO:

Era error de la base de datos, ya esta todo bien XD
#44
Cita de: ivancea96 en 18 Julio 2015, 01:42 AM
El método query retorna un result: http://php.net/manual/es/class.mysqli-result.php
Si Si, eso ya lo tenia, pero me da un error de Undefined property
La linea 12 (que es la que menciona el error es la siguiente)

Undefined property: mysqli_result::$result in F:\localhost\htdocs\index.php on line 12
Código (php) [Seleccionar]
$result = $query->result['num_rows'];

Código (php) [Seleccionar]
<?php
$dbConnect = new mysqli("localhost""root""""global");
//Datos de testeo
$b_data $_SERVER['SERVER_NAME'];
$dbConnect->query("insert into global(name, value) values('$b_data', 'thisInIntroducced')");
$query $dbConnect->query("select * from global");
$result $query->result['num_rows']; //Linea del error
print($result);
print("CLIENTE: ".$b_data);
//Chequeando conexion
if ($dbConnect->connect_errno) {
if ($dbConnect->connect_error) {
print("ERROR DE CONEXION DE MYSQL: ".$dbConnect->connect_error);
die();
}
print("ERROR DE CONEXION DE MYSQL N: ".$dbConnect->connect_errno);
die();
}
$dbConnect->close();
print("<p>Conexion establecida correctamente</p>");
?>


adicional: Lo que pretendo hacer es saber cuantas filas tiene la base de datos, imagino que es esa la funcion que necesito
#45
PHP / [Solucionado] num_rows me da error
18 Julio 2015, 01:20 AM
Código (php) [Seleccionar]
//Datos de testeo
$b_data = $_SERVER['SERVER_NAME'];
$dbConnect->query("insert into global values('$b_data', 'thisInIntroducced')");
$query = $dbConnect->query("select * from global");
$result = $query->result['num_rows'];


Me dice un error, este error:
Notice: Undefined property: mysqli_result::$result in F:\localhost\htdocs\index.php on line 12

Soy nuevo en PHP :( y ando testeando algunas cosas que ando viendo por la php.net
#46
Bienvenidos invocadores
Bueno, a lo que iva, lo que queria hacer es una especie de 'Call' a un mismo archivo, me explicare mejor con ejemplos:

Esto seria lo normal, sin hacer nada
Código (php) [Seleccionar]
index.php

Ahora creo un boton, que redirige a...
Código (php) [Seleccionar]
index.php?login=request

y ahora creo un condicional:
Código (php) [Seleccionar]
if ($_GET['login'] == 'request') {

Me funcionaria con un clic a un boton, o tendria que ser obligatoriamente en una form?
#47
Ese es el problema, es un archivo unico, (index.php) y me lanza ese error, no uso includes con ese archivo :/
#48
Me da un error desde el hosting que es el siguiente
Parse error: syntax error, unexpected T_VARIABLE in /home/a9673496/public_html/ssl/mysql/index.php on line 1

y el codigo es el siguiente:

Código (php) [Seleccionar]
<?php

$dbdata 
= array();
$dbdata['usuario'] = "**";
$dbdata['contrasena'] = "**";
$dbdata['host'] = "**";
$dbdata['database'] = $dbdata['usuario'];
$dbdata['conexion'] = mysqli_connect($dbdata['host'],$dbdata['usuario'],$dbdata['contrasena'],$dbdata['database']) or die("Error " mysqli_error($link));
if ($dbdata['conexion']->connect_errno) {
echo "Failed to connect to MySQL: (" $mysqli->connect_errno ") " $mysqli->connect_error;
}
echo 
$mysqli->host_info "\n status [ Connected ]";
$dbdata['conexion']->close($dbdata['conexion']);
if ($dbdata['conexion']->connect_errno) { 
echo "Failed to connect to MySQL: (" $mysqli->connect_errno ") " $mysqli->connect_error;
}
?>
#49
Bueno, he estado haciendo un servicio online para mi pagina web y para testear alunas funciones de PHP, hice un hasher (o como se llamen), puse un loop para introducir los valores validos y hice alguna que otra "modificacion del codigo fuente" desde el navegador para testar algunos 'hacks', arregle y edite todo eso, pero bueno, que tal mi primer codigo en PPH? :D (y que fallos de seguridad tiene? :/)

Pagina web donde la hice: ssl.venad.cf
BEEEESHUCo a todos <3

Código (php) [Seleccionar]
<html>
<head>
<style> *{ font-family:"verdana";
text-align: center;} </style>
<title>Online Hash || [SSL].venad.cf</title>
</head>
<body>
<a href="../"><button><-- Volver a la pagina principal --</button></a>
<?php $ar hash_algos();
$sign = -1?>

<form action="index.php" method="post">
<br>
<?php if ($_POST['cadena'] == '') {
 echo 
'<p>Cadena de HASH:</a> <input type="text" name="cadena" value="Mi cadena" size="100"style="text-align:left;"/></p><br>';
 }
 else
 {
$vvv htmlspecialchars($_POST['cadena']);
echo "<p>Cadena de HASH:</a> <input type='text' name='cadena' value='$vvv' size='100'style='text-align:left;'/></p><br>";
}
?>

Selecciona HASH: <br><br>
<select name="hash"style='text-align:left;'>
<?php foreach ($ar as $value) {
$sign $sign+1;
if ($sign == 0) {
echo "<option value='"$ar[$sign], "' checked style='text-align:left;'>"$ar[$sign], "</option>";
}
if ($sign >= 1) {
echo "<option value='"$ar[$sign], "' style='text-align:left;'>"$ar[$sign], "</option>";
}
}
$sign = -1;
?>

</select> <br><br>
<input type="submit" value="HAAAASH"/>
</form>
<?php
$valid 
false;
foreach ($ar as $value) {
$sign $sign+1;
if ($ar[$sign] == htmlspecialchars($_POST['hash'])) {
global $valid;
$valid true;
}
}
if ($valid == false and isset($_POST['hash'])) {
echo "El tipo de hash no es valido, Aqui no te funciona el editor de codigo fuente :)";
die;
}
if ($_POST['cadena'] == '' and isset($_POST['hash'])) {
echo "Debes especificar algo en la cadena de texto";
die;
}
?>

<?php if (isset($_POST['hash'])) { echo "<p>Has seleccionado el tipo de hash: <b>"$_POST['hash'], "</b></p><p> Tu cadena hash: </p>"; }?><div style="background-color:#dddddd; padding:10px;word-wrap: break-word;"> <?php if (isset($_POST['hash'])) { echo hash(htmlspecialchars($_POST['hash']), htmlspecialchars($_POST['cadena'])); } ?></div></p>
</body>
</html>
#50
Yque  pasa si le metes el CD?