Algun experto php que me ilumine

Estado
No está abierto para más respuestas.

blogers

Suspendido
Mensajes
92
Puntuación de reacción
0
Hola bueno no me quedo de otra que pedirles su ayuda y asesoria, lo que yo quiero hacer es lo siguiente

tengo esta tabla
89WqO.png
en donde se guardan las busquedas de los users (ejemplo: busco web php) se registra y si vielvo a buscarlo de nuevo se registra

Lo que yo quiero es con la ayuda de un script php coja los duplicados y lo convierta en un solo registro pero que sume los duplicados y deje el conteo en el campo HIt_counts
89WML.png
en otra tabla clonada

Alguien que me ayude o asesore
 

Bleed

Diamante
Usuario de Bronce
Mensajes
2,408
Puntuación de reacción
1
No sería más fácil y rápido comprobar si la KW ya existe antes de guardar el registro e incrementar el campo que dices en lugar de añadir una KW duplicada?

O espera, que igual no te entendí bien. Lo que quieres es guardar en una tabla a parte todas las KW y el total de hits para cada una a modo resumen?
 
Última edición:

blogers

Suspendido
Mensajes
92
Puntuación de reacción
0
Te refires al update
89YA5.png


El problema que la tabla tiene 500 mil registros entonces cuando google o un user entra hace ese update pero el script esta sufriendo esa consulta por que tieen que revisar toda la tabla por eso lo voy dividir con la ayuda del prgrama navicat las voya soncronizar es decir mandar la tabla 1 vez a la semana al server local xampp y ayi poner el script php que necesito que explique arriba asi cuando la limpie y deje el conteo en la otro tabla subirla tabla clonada ya lista y la otra la mando limpia de nuevo para que vuelva a recolectar las busquedas y asi hacer el proceso pero necesito ese scrip php
No sería más fácil y rápido comprobar si la KW ya existe e incrementar el campo que dices en lugar de añadir una KW duplicada?
 

Julio Rodríguez

Diamante
Usuario de Bronce
Mensajes
2,521
Puntuación de reacción
2
algo así te podría servir
PHP:
<?php

$db = new mysqli('localhost', 'user', 'pass', 'db');
$consulta = $db->query("SELECT * FROM TABLAQUI GROUP BY keyword ");
while($row = $consulta->fetch_assoc()) {
$count = 0;
$con = $db->query("SELECT * FROM TABLAQUI WHERE keyword='{$row['keyword']}'");
if($con->num_rows>1) {
   while($r=$con->fetch_assoc()) {
      $count += $row['hits_coints'];
   }
   $limit = $con->num_rows-1;
   $db->query("DELETE FROM TABLAQUI WHERE keyword='{$row['keyword']}' LIMIT {$limit}");
   $db->query("UPDATE TABLAQUI SET hits_coints='{$count}' WHERE keyword='{$row['keyword']}' LIMIT {$limit}");
}
}
?>
 

blogers

Suspendido
Mensajes
92
Puntuación de reacción
0
Si algo asi por ejemplo yo quiero procesar la tabla A y cuando junte los duplicados que lo sume a la nueva tabla B en ves de estar duplicados que los haga en conteo sumando en el campo hit_ounts nose si me explico
algo así te podría servir
PHP:
<?php

$db = new mysqli('localhost', 'user', 'pass', 'db');
$consulta = $db->query("SELECT * FROM TABLAQUI GROUP BY keyword ");
while($row = $consulta->fetch_assoc()) {
$count = 0;
$con = $db->query("SELECT * FROM TABLAQUI WHERE keyword='{$row['keyword']}'");
if($con->num_rows>1) {
   while($r=$con->fetch_assoc()) {
      $count += $row['hits_coints'];
   }
   $limit = $con->num_rows-1;
   $db->query("DELETE FROM TABLAQUI WHERE keyword='{$row['keyword']}' LIMIT {$limit}");
   $db->query("UPDATE TABLAQUI SET hits_coints='{$count}' WHERE keyword='{$row['keyword']}' LIMIT {$limit}");
}
}
?>

- - - Actualización- - -

Lo puse asi pero no me funciona

PHP:
 <?php

$db = new mysqli('localhost', 'root', '', 'botsearch');
$consulta = $db->query("SELECT * FROM search GROUP BY keyword ");
while($row = $consulta->fetch_assoc()) {
$count = 0;
$con = $db->query("SELECT * FROM search WHERE keyword='{$row['keyword']}'");
if($con->num_rows>1) {
   while($r=$con->fetch_assoc()) {
      $count += $row['hits_coints'];
   }
   $limit = $con->num_rows-1;
   $db->query("INSERT into search2 WHERE keyword='{$row['keyword']}' LIMIT {$limit}");
   $db->query("UPDATE search2 hits_coints='{$count}' WHERE keyword='{$row['keyword']}' LIMIT {$limit}");
}
}
?>


algo así te podría servir
PHP:
<?php

$db = new mysqli('localhost', 'user', 'pass', 'db');
$consulta = $db->query("SELECT * FROM TABLAQUI GROUP BY keyword ");
while($row = $consulta->fetch_assoc()) {
$count = 0;
$con = $db->query("SELECT * FROM TABLAQUI WHERE keyword='{$row['keyword']}'");
if($con->num_rows>1) {
   while($r=$con->fetch_assoc()) {
      $count += $row['hits_coints'];
   }
   $limit = $con->num_rows-1;
   $db->query("DELETE FROM TABLAQUI WHERE keyword='{$row['keyword']}' LIMIT {$limit}");
   $db->query("UPDATE TABLAQUI SET hits_coints='{$count}' WHERE keyword='{$row['keyword']}' LIMIT {$limit}");
}
}
?>
 
Estado
No está abierto para más respuestas.
Arriba