$query_Recordset4 = sprintf("SELECT TABLE_NAME FROM information_schema.TABLES 
 WHERE TABLE_SCHEMA='message' and TABLE_NAME like '1a%nd5'");
 $Recordset4 = mysql_query($query_Recordset4, $messageconnection);
 $totalRows_Recordset4 = mysql_num_rows($Recordset4);

Ejecuté una consulta SQL sobre SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'mensaje' y TABLE_NAME como '1a% nd5' en PhpMyAdmin. Reveló "2" filas totales.

Sin embargo, pregunté que la respuesta "mysql_num_rows" en php era "0". ¿No funciona "mysql_num_rows" en SELECT TABLE_NAME FROM information_schema.TABLES? ¿Cuál es el método alternativo?

Si hay un método alternativo debajo del contenido. $query_Recordset5 = sprintf("SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='message' and TABLE_NAME like '$colname_Recordset6' "); $row_Recordset5 = mysql_fetch_assoc($Recordset5);

El resultado de "mysql_fetch_assoc" no reveló nada, pero funcionó en otros mysql_query. ¿Como puedó resolver esté problema?

0
CUR 9 sep. 2018 a las 10:09

3 respuestas

La mejor respuesta

Su problema está realmente en su llamada a sprintf, es tratando de procesar %n como una especificación de conversión. Debe cambiar el % en esa cadena a %% es decir

$query_Recordset4 = sprintf("SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='message' and TABLE_NAME like '1a%%nd5'");

También debe cambiar el uso de las funciones mysql_ a mysqli_ ya que las funciones mysql han quedado obsoletas a partir de PHP5.5 y eliminadas a partir de PHP7 debido a errores en el código.

1
Nick 9 sep. 2018 a las 07:54

El método mysql_num_rows es bueno para contar el resultado después de seleccionar de alguna tabla (ver doc http : //php.net/manual/en/function.mysql-num-rows.php).

Simplemente seleccione en su tabla con count: https: // dev .mysql.com / doc / refman / 8.0 / es / counting-rows.html

¿Total de filas en PhpMyAdmin? No puede hacer esto de una sola manera. Parece que intentas hacer algo mal. El total de filas es bueno para contar con una tabla específica. También puede recorrer todas las tablas de la base de datos para obtener todos los registros, pero no creo que realmente necesite esto (nunca he oído hablar de algo así).

Por cierto. use mysqli en lugar de mysql

0
Arkowsky 9 sep. 2018 a las 07:18
print_r(mysql_fetch_array($Recordset4));

// ACTUALIZACIÓN

$query = mysqli_query($messageconnection, "SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='message' and TABLE_NAME like '1a%%nd5'");
$row = mysqli_fetch_assoc($query);
$result_count = $row['COUNT(*)'];

echo $result_count;
0
CUR 9 sep. 2018 a las 08:32