Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No entiendo el fallo

Estas en el tema de No entiendo el fallo en el foro de PHP en Foros del Web. Código PHP: <?php $conn  =  mysqli_connect ( 'localhost' , 'root' , '' ) or die( 'No ha sido posible conectarse' ); $baseDatos  =  mysqli_select_db ( 'AppSastre' , $conn ) or die( 'No ha sido posible' ); ...

  #1 (permalink)  
Antiguo 15/07/2015, 09:04
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
No entiendo el fallo

Código PHP:
<?php
$conn 
mysqli_connect('localhost','root','') or die('No ha sido posible conectarse');
$baseDatos mysqli_select_db('AppSastre',$conn) or die('No ha sido posible');
?>
¿Qué está fallando para conectarme a la base AppSastre? Gracias.
  #2 (permalink)  
Antiguo 15/07/2015, 09:12
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: No entiendo el fallo

Prueba poniendo todo en una sola línea así:
Código PHP:
Ver original
  1. $conn = new mysqli ('localhost','root','','AppSastre') or die('No ha sido posible conectarse');
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 15/07/2015, 09:15
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No entiendo el fallo

usa este mejor
Código PHP:
Ver original
  1. $usuario = "root";
  2. $pass = "";
  3. $host = "127.0.0.1";
  4. $base = "seguridad_industrial";
  5.  
  6. $db = new MySQLi($host, $usuario, $pass, $base);
  7. if($db->connect_error) {
  8.     die('Error de conexion ('.$db->connect_errno.')'
  9.         .$db->connect_errno);
  10. }
  #4 (permalink)  
Antiguo 15/07/2015, 09:28
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Cita:
Iniciado por xfxstudios Ver Mensaje
usa este mejor
Código PHP:
Ver original
  1. $usuario = "root";
  2. $pass = "";
  3. $host = "127.0.0.1";
  4. $base = "seguridad_industrial";
  5.  
  6. $db = new MySQLi($host, $usuario, $pass, $base);
  7. if($db->connect_error) {
  8.     die('Error de conexion ('.$db->connect_errno.')'
  9.         .$db->connect_errno);
  10. }
Con esto la conexión va perfecta. Ahora tengo el problema aquí:
Código PHP:
$consulta mysql_query(SELECT 'id,cliente,prenda,precio' from pedidos) or die('Error $consulta'); 
No entiendo qué no funciona aquí. Siempre me da el mensaje de error.
  #5 (permalink)  
Antiguo 15/07/2015, 09:36
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No entiendo el fallo

Código PHP:
Ver original
  1. $consulta = $db->query("SELECT 'id,cliente,prenda,precio' FROM pedidos");
  2. $result = $consulta->fetch_assoc();
  #6 (permalink)  
Antiguo 15/07/2015, 09:46
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Cita:
Iniciado por xfxstudios Ver Mensaje
Código PHP:
Ver original
  1. $consulta = $db->query("SELECT 'id,cliente,prenda,precio' FROM pedidos");
  2. $result = $consulta->fetch_assoc();
Muchas gracias. ¿Me podrías decir qué significa la segunda parte? Y otra cosa:
Código PHP:
<?
while ($row=mysql_fetch_array($result))
{
echo 
'<tr><td>'.$row["cliente"].'</td>';
echo 
'<td>'.$row["prenda"].'</td>';
echo 
'<td>'.$row["precio"].'</td></tr>';
}
mysql_free_result($result);
?>
Este es el código que tengo y me dice que necesito dos parámetros en la primera y en la última línea. ¿Qué me falta?.
  #7 (permalink)  
Antiguo 15/07/2015, 09:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: No entiendo el fallo

Cita:
Iniciado por diegoguerrero Ver Mensaje
Con esto la conexión va perfecta. Ahora tengo el problema aquí:
Código PHP:
$consulta mysql_query(SELECT 'id,cliente,prenda,precio' from pedidos) or die('Error $consulta'); 
No entiendo qué no funciona aquí. Siempre me da el mensaje de error.
El SQL no es PHP. PHP no interpreta SQL, como tampoco la base de datos entiende PHP. Son universos diferentes.
Lo que haces es mandar a la base una cadena de texto que lo que contiene es una sentencia de SQL, y la base responderá con algo que la librería MYSQLI interprete para PHP.

El problema puede darse si el SQL está mal escrito para la base, o bien no hay datos que cumplan las condiciones que envías (usualmente por problemas con el contenido de las variables en la etapa de creacion de la consulta)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 15/07/2015, 09:59
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No entiendo el fallo

Cita:
Iniciado por diegoguerrero Ver Mensaje
Muchas gracias. ¿Me podrías decir qué significa la segunda parte? Y otra cosa:
Código PHP:
<?
while ($row=mysql_fetch_array($result))
{
echo 
'<tr><td>'.$row["cliente"].'</td>';
echo 
'<td>'.$row["prenda"].'</td>';
echo 
'<td>'.$row["precio"].'</td></tr>';
}
mysql_free_result($result);
?>
Este es el código que tengo y me dice que necesito dos parámetros en la primera y en la última línea. ¿Qué me falta?.
si va a utilizar ese while debes quitar la linea que dice:
$result = $consulta->fetch_assoc();

de tu consulta para que te funcione, eso lo que hace es mostrarte todos los registros de tu base de datos, claro hay muchas implicaciones y formas de hacerlo, todo va a depender del resultado final que quieras
  #9 (permalink)  
Antiguo 15/07/2015, 10:01
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No entiendo el fallo

otra cosa ese while es mejor que lo hagas asi:

Código PHP:
Ver original
  1. <?
  2. while ($row=$consulta->fetch_array())
  3. {
  4. echo '<tr><td>'.$row["cliente"].'</td>';
  5. echo '<td>'.$row["prenda"].'</td>';
  6. echo '<td>'.$row["precio"].'</td></tr>';
  7. }
  8. ?>
  #10 (permalink)  
Antiguo 15/07/2015, 10:05
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Lo que necesito al final es que me muestre una tabla completa con los tres campos especificados tantas veces como registros haya (lo que se ha conseguido con el while, ¿no? (la verdad es que no sé si sería mejor foreach). Además, también quiero ver la posibilidad de agregar a cada registro un enlace para eliminar.
  #11 (permalink)  
Antiguo 15/07/2015, 10:12
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: No entiendo el fallo

Cita:
Iniciado por diegoguerrero Ver Mensaje
Muchas gracias. ¿Me podrías decir qué significa la segunda parte? Y otra cosa:
Código PHP:
<?
while ($row=mysql_fetch_array($result))
{
echo 
'<tr><td>'.$row["cliente"].'</td>';
echo 
'<td>'.$row["prenda"].'</td>';
echo 
'<td>'.$row["precio"].'</td></tr>';
}
mysql_free_result($result);
?>
Este es el código que tengo y me dice que necesito dos parámetros en la primera y en la última línea. ¿Qué me falta?.
Estás combinando mysql con mysqli, si hiciste la conexión con mysqli tienes que seguir usando las funciones de mysqli o si no no va a funcionar.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #12 (permalink)  
Antiguo 15/07/2015, 10:19
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Código PHP:
Ver original
  1. <?php
  2. while ($row=$consulta->mysqli_fetch_array())
  3. {
  4. echo '<tr><td>'.$row["cliente"].'</td>';
  5. echo '<td>'.$row["prenda"].'</td>';
  6. echo '<td>'.$row["precio"].'</td></tr>';
  7. }
  8. ?>

En este while ya no sale ningún mysqli. Sigue sin funcionar y el código de error es Notice: Undefined variable: result in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 18

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 18

Notice: Undefined variable: result in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 24

Warning: mysql_free_result() expects parameter 1 to be resource, null given in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 24
  #13 (permalink)  
Antiguo 15/07/2015, 10:29
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: No entiendo el fallo

Cita:
Iniciado por diegoguerrero Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. while ($row=$consulta->mysqli_fetch_array())
  3. {
  4. echo '<tr><td>'.$row["cliente"].'</td>';
  5. echo '<td>'.$row["prenda"].'</td>';
  6. echo '<td>'.$row["precio"].'</td></tr>';
  7. }
  8. ?>

En este while ya no sale ningún mysqli. Sigue sin funcionar y el código de error es Notice: Undefined variable: result in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 18

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 18

Notice: Undefined variable: result in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 24

Warning: mysql_free_result() expects parameter 1 to be resource, null given in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 24
El error no está en ninguna parte del código que adjuntas, busca las líneas 18 y 24 en las que otra vez estás mezclando mysql con mysqli, si obervas los mensajes de error te están diciendo que: Warning: mysql_fetch_array() expects parameter es porque estás utilizando mysql_fetch_array en vez de mysqli_fetch_array y lo mismo el otro error mysql_free_result() en vez de mysqli_free_result().
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #14 (permalink)  
Antiguo 15/07/2015, 10:36
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

No entiendo lo que quieres decir. No uso en ningún sitio mysql, solo mysqli.
  #15 (permalink)  
Antiguo 15/07/2015, 10:38
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: No entiendo el fallo

Puedes copiar y pegar TODO el código que tienes hasta el momento?
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #16 (permalink)  
Antiguo 15/07/2015, 10:39
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No entiendo el fallo

Cita:
Iniciado por xfxstudios Ver Mensaje
otra cosa ese while es mejor que lo hagas asi:

Código PHP:
Ver original
  1. <?
  2. while ($row=$consulta->fetch_array())
  3. {
  4. echo '<tr><td>'.$row["cliente"].'</td>';
  5. echo '<td>'.$row["prenda"].'</td>';
  6. echo '<td>'.$row["precio"].'</td></tr>';
  7. }
  8. ?>
con este codigo que te coloque ya deberia de estar fucnionando, en caso contrario coloca todo el codigo de tu pagina para analizarlo y ver donde esta el error
  #17 (permalink)  
Antiguo 15/07/2015, 10:46
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Código PHP:
Ver original
  1. <?php
  2. require 'conexion.php';
  3. $camposACargar = 'id, cliente, prenda, precio';
  4. $consulta = $db->query('SELECT "id,cliente,prenda,precio" FROM pedidos');
  5. ?>
  6. <html>
  7. <head>
  8. <title>Pedidos</title>
  9. </head>
  10. <body>
  11. <table align="center">
  12. <thead>
  13. <th>Cliente</th>
  14. <th>Prenda</th>
  15. <th>Precio</th>
  16. </thead>
  17. <?
  18. while ($row=$consulta->fetch_array())
  19. {
  20. echo '<tr><td>'.$row["cliente"].'</td>';
  21. echo '<td>'.$row["prenda"].'</td>';
  22. echo '<td>'.$row["precio"].'</td></tr>';
  23. }
  24. ?>
  25. </table>
  26. </body>
  27. </html>

Ahí va todo el código
  #18 (permalink)  
Antiguo 15/07/2015, 10:47
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Código PHP:
Ver original
  1. <?php
  2. $usuario = "root";
  3. $pass = "";
  4. $host = "localhost";
  5. $base = "AppSastre";
  6.  
  7. $db = new MySQLi($host, $usuario, $pass, $base);
  8. if($db->connect_error) {
  9.     die('Error de conexion ('.$db->connect_errno.')'
  10.         .$db->connect_errno);
  11. }
  12. ?>
Ese es el conexión.php
  #19 (permalink)  
Antiguo 15/07/2015, 10:52
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: No entiendo el fallo

Pues no le veo ningún error, seguro que es todo el código que tienes?
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #20 (permalink)  
Antiguo 15/07/2015, 10:55
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Es todo el código, sí.
  #21 (permalink)  
Antiguo 15/07/2015, 10:55
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: No entiendo el fallo

Colócalo así a ver si funciona:

Código PHP:
Ver original
  1. <?php
  2. while ($row=$consulta->fetch_array())
  3. {
  4. echo '<tr><td>'.$row["cliente"].'</td>';
  5. echo '<td>'.$row["prenda"].'</td>';
  6. echo '<td>'.$row["precio"].'</td></tr>';
  7. }
  8. ?>
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #22 (permalink)  
Antiguo 15/07/2015, 10:58
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No entiendo el fallo

prueba cambiar esta liena asi:
Código PHP:
Ver original
  1. $consulta = $db->query("SELECT 'id,cliente,prenda,precio' FROM pedidos");

cambia las comillas a ver, el $camposcargar no le veo que hace alli
  #23 (permalink)  
Antiguo 15/07/2015, 10:58
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Notice: Undefined index: cliente in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 19

Notice: Undefined index: prenda in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 20

Notice: Undefined index: precio in /Applications/XAMPP/xamppfiles/htdocs/sastre/pedidos.php on line 21
  #24 (permalink)  
Antiguo 15/07/2015, 10:58
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Ya lo he eliminado $camposACargar
  #25 (permalink)  
Antiguo 15/07/2015, 11:00
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: No entiendo el fallo

Ya pusiste el php y las comillas que te indicamos?
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #26 (permalink)  
Antiguo 15/07/2015, 11:01
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No entiendo el fallo

tienes esto asi:
Código PHP:
Ver original
  1. <?
  2. while ($row=$consulta->fetch_array())
  3. {
  4. echo '<tr><td>'.$row["cliente"].'</td>';
  5. echo '<td>'.$row["prenda"].'</td>';
  6. echo '<td>'.$row["precio"].'</td></tr>';
  7. }
  8. ?>

colocalo asi
Código PHP:
Ver original
  1. <?php
  2. while ($row=$consulta->fetch_array())
  3. {
  4. echo '<tr><td>'.$row["cliente"].'</td>';
  5. echo '<td>'.$row["prenda"].'</td>';
  6. echo '<td>'.$row["precio"].'</td></tr>';
  7. }
  8. ?>
alli esta el error
  #27 (permalink)  
Antiguo 15/07/2015, 11:02
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No entiendo el fallo

eso puede ser porque no tienes en tu php.ini el <? activado asi que utiliza es <?php
  #28 (permalink)  
Antiguo 15/07/2015, 11:02
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Ahora está esto así:

Código PHP:
Ver original
  1. <?php
  2. $usuario = "root";
  3. $pass = "";
  4. $host = "localhost";
  5. $base = "AppSastre";
  6.  
  7. $db = new mysqli($host, $usuario, $pass, $base);
  8. if($db->connect_error) {
  9.     die('Error de conexion ('.$db->connect_errno.')'
  10.         .$db->connect_errno);
  11. }$consulta = $db->query("SELECT 'id,cliente,prenda,precio' FROM pedidos");
  12. ?>
  13. <html>
  14. <head>
  15. <title>Pedidos</title>
  16. </head>
  17. <body>
  18. <table align="center">
  19. <thead>
  20. <th>Cliente</th>
  21. <th>Prenda</th>
  22. <th>Precio</th>
  23. </thead>
  24. <?php
  25. while ($row=$consulta->fetch_array())
  26. {
  27. echo '<tr><td>'.$row["cliente"].'</td>';
  28. echo '<td>'.$row["prenda"].'</td>';
  29. echo '<td>'.$row["precio"].'</td></tr>';
  30. }
  31. ?>
  32. </table>
  33. </body>
  34. </html>
  #29 (permalink)  
Antiguo 15/07/2015, 11:03
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No entiendo el fallo

que paso funciono o no, porque ya no veo nada malo en el codigo
  #30 (permalink)  
Antiguo 15/07/2015, 11:04
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Respuesta: No entiendo el fallo

Me salen los errores y debajo la cabecera Cliente, Prenda, Precio.

Y nada más.

Etiquetas: fallo, mysql, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:38.