|
41
|
Programación / PHP / Re: [Ayuda] foreach solo devuelve un valor? habiendo 20
|
en: 20 Julio 2015, 01:26 am
|
Cuando haces: $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: 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 $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
|
Programación / PHP / [resuelto] foreach solo devuelve un valor? habiendo 20
|
en: 19 Julio 2015, 01:03 am
|
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: <html> <head> <title>VeNaD PHP Testing</title> </head> <!-- CODIGOS PHP INIT --> <?php //Conexion a base de datos $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); } print("ERROR DE CONEXION DE MYSQL N: ".$dbConnect->connect_errno); } //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
|
Programación / PHP / Re: [Ayuda] Por qué me da error y como se usa esto?
|
en: 18 Julio 2015, 12:18 pm
|
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
Que lo que recibe el resultado de la query O el estilo orientado objetos: $mysqli_result->num_rows;
Por ejemplo, si el resultado de la query esta en la variable $result: Estilo objetos: $row_count = $result->num_rows;
Estilo procedimientos:
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 //getter de filas $query = $dbConnect->query("select * from global"); $result = $query->result; //$num_rows = $result->num_rows;
Codigo nuevo //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? <?php //Conexion a base de datos $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); } print("ERROR DE CONEXION DE MYSQL N: ".$dbConnect->connect_errno); } //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
|
Programación / PHP / Re: [Ayuda] Por qué me da error y como se usa esto?
|
en: 18 Julio 2015, 02:04 am
|
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 $result = $query->result['num_rows'];
<?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); } print("ERROR DE CONEXION DE MYSQL N: ".$dbConnect->connect_errno); } $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
|
Programación / PHP / [Solucionado] num_rows me da error
|
en: 18 Julio 2015, 01:20 am
|
//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
|
Programación / PHP / Se puede llamar a $_GET a traves de un boton?
|
en: 11 Junio 2015, 23:22 pm
|
Bienvenidos invocadoresBueno, 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 index.php
Ahora creo un boton, que redirige a... index.php?login=request
y ahora creo un condicional: if ($_GET['login'] == 'request') {
Me funcionaria con un clic a un boton, o tendria que ser obligatoriamente en una form?
|
|
|
48
|
Programación / PHP / [Solucionado] Error en la primera linea?
|
en: 9 Junio 2015, 21:16 pm
|
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: <?php $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
|
Programación / PHP / [Primera vez, no abusen de mi] Que tal mi primer codigo php? :)
|
en: 7 Junio 2015, 19:25 pm
|
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? (y que fallos de seguridad tiene? :/) Pagina web donde la hice: ssl.venad.cfBEEEESHUCo a todos <3 <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> $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 { 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; 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 :)"; } if ($_POST['cadena'] == '' and isset($_POST['hash'])) { echo "Debes especificar algo en la cadena de texto"; } ?> <?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>
|
|
|
|
|
|
|