generar nueva pagina php cada vez que se necesite

necesito crear una nueva pagina cada vez que genero cierta parte html, mediante el primer ciclo si logro que en mi pagina ‘principal’ se generen un titulo y un contenido que extraje de dos variables que obtuve de una base de datos pero luego me gustaría poner cada titulo y cada contenido en una nueva pagina, se que tal vez se soluciona con un ciclo pero la verdad estoy perdido, soy un novato en php.

    <?php           include('conexion.php');          $  sql="SELECT * FROM tics";        $  resul=$  link->query($  sql);           ?>                  <?php while($  fila=$  resul->fetch_assoc()):                   $  t=$  fila['tit'];                 $  c=$  fila['con'];                   ?>                  <?php      $  contenido = "<html> <body class'hola5'> <h1>  $  t </h1> <p>   $  c        </p>  </body> </html>";                    $  fp = fopen('new.php', 'w');                       fwrite($  fp, $  contenido);      //parte que intente crear una nueva pagina, funciona solo con        el ultimo registro //         ?>   //parte html que si me funciona generando cada registro en su  respectiva etiqueta//             <div class="card-body">        <a href="new.php">  <h2 class="card-title"> <?= $  t;?> </h2> <p>        <?= $  c; ?> </p> </a>                 <div class="card-footer text-muted">                     Posted on January 1, 2017 by                     <a href="#">Start Bootstrap</a>                 </div>             </div>    <?php     

Como optimizar un proceso que se ejecuta cada 3 segundos sin que cargue el servidor

Tengo la siguiente situación: estoy realizando un proceso cada 3 segundos con la función de javascript (setInterval) donde me conecto a una api (twilio), que leo los datos y después los inserto en la base de datos.

El proceso comienza a funcionar desde el momento en que el usuario inicia sesión en el sistema y se mantiene ejecutando. Aproximadamente como la hora de estar usando el sistema, se comienza a poner lento las peticiones que le hago al servidor medianamente el navegador, lo mismo me sucede si me aumenta el numero de usuarios conectado al sitio. En cuanto detengo el proceso, el servidor se normaliza y a la hora de cargar las paginas lo hace rápido.

Mi pregunta es de que forma puedo poner a correr este proceso de que no me cargue el servidor.

A continuación les dejo el código para ver si me pueden ayudar.

Gracias.

En el javascript:

setInterval('loadnoti()', 3000);  function loadnoti() {     $  .post('index.php?c=sendsms&f=sendnoti', function (data) {         $  ("#idnoti").html(data);     }); } 

En el php:

case 'sendnoti':      $  twilio = new Client($  sid, $  token);      $  messages = $  twilio->messages         ->read(array(), 20);     //print_r($  messages);      foreach ($  messages as $  record) {          if ($  record->status == 'received') {              if (substr($  record->sid, 0, 2) == 'MM') {                 $  media = $  twilio->messages($  record->sid)                     ->media                     ->read(array(), 20);                 foreach ($  media as $  records) {                     $  media = $  twilio->messages($  record->sid)                         ->media($  records->sid)                         ->fetch();                     $  uriimages =  substr("https://api.twilio.com" . $  media->uri, 0, -5);                 }             }              $  datos = array(                 'sfrom' => $  record->to,                 'sto' => $  record->from,                 'sbody' => $  record->body,                 'sid' => $  record->sid,                 'status' => $  record->status,                 'imagen' => $  uriimages             );             $  sen->get_smsval($  record->sid, $  datos);         }         echo $  sen->get_smsnoti($  sfrom, $  tipo);     }      break; 

JS – Como remover o último espaço em cada linha de um textarea?

Utilizo a função abaixo para substituir todos os caracteres diferentes de números em um textarea por “espaços”. O problema é que no final de cada linha do textarea sempre tem um espaço. Como excluir esse último espaço e mantes os demais?

function formatatextarea(tarea) { //formata as matrizes colocando espaco entre as dezenas 	var tab = RegExp("\t", "g"); 	tarea.value = 		tarea.value.replace(tab, ' ');  	/*var espaco = RegExp(" ", "g"); 	tarea.value = 	tarea.value.replace(espaco,' ');*/  	var traco = RegExp("-", "g"); 	tarea.value = 		tarea.value.replace(traco, ' ');  	var virg = RegExp(",", "g"); 	tarea.value = 		tarea.value.replace(virg, ' ');  	var tespaco = RegExp("   ", "g"); 	tarea.value = 		tarea.value.replace(tespaco, ' ');  	var ptvirg = RegExp(";", "g"); 	tarea.value = 		tarea.value.replace(ptvirg, ' ');  	var pt = RegExp(/\./, "g"); 	tarea.value = 		tarea.value.replace(pt, ' ');  	/*var pesp = RegExp(/^\s*|\s*$  /g, "g"); 	tarea.value = 	tarea.value.replace(pesp," "); 	*/ 	var nl = RegExp(/(\r\n\s\r\n|\n\s\n|\r\s\r)/gm, "g"); 	tarea.value = 		tarea.value.replace(nl, "\r\n");  	var nld = RegExp(/^\S.*$  (\r\n\s|\n\s|\r\s)/gm, "g"); 	tarea.value = 		tarea.value.replace(nld, "\r\n");  	var last = RegExp(/\s*,\s*$  /, "g"); 	tarea.value = 		tarea.value.replace(last, "\r\n"); 		 	var special = RegExp(/[&\/\#,+()$  ~%.'":*?<>{}]/g, "g"); 	tarea.value = 		tarea.value.replace(special, " ");  	var letter = RegExp(/[a-zA-Z]/g, "g"); 	tarea.value = 		tarea.value.replace(letter, ""); 	/*var tdespaco = RegExp(/\s+/g, "g"); 	tarea.value = 	tarea.value.replace(tdespaco,'\r\n');*/  	if ($  ('#cjtsdezenas').val()[0] === " ") { 		$  ('#cjtsdezenas').val()[0] == ""; 	} 	if ($  ('#cjtsdezenas').val()[1] === " ") { 		$  ('#cjtsdezenas').val()[1] == ""; 	} 	var despaco = RegExp("  ", "g"); 	tarea.value = 		tarea.value.replace(despaco, ' ');  }

¿Cómo puedo hacer que un textarea haga un salto de linea cada cierta cantidad de caracteres?

Tengo un textarea en un formulario, en el cual se escriben notas de la información añadida, la cuestión es que sí el usuario no le da manualmente enter no hace un salto de linea y la información queda totalmente recta, eso va a una tabla y esa tabla por acomodar ese texto, desacomoda la tabla, entonces sí hay una forma de hacerlo con js, jquery, he buscado pero no he logrado nada, sí me pudieran ayudar, se los agradecería.

Dejo el HTML

<div class="form-group row ml-1 justify-content-center">             <label for="nota" class="col-form-label">Nota:</label>             <div class='col-sm-5 mr-3'>                 <textarea name="nota" id="nota" class="form-control" cols="4" rows="3" maxlength="20"></textarea>             </div>                                                         </div> 

Se los agradezco de antemano

Como generar un ng-template para cada una de los elementos de un NgFor

Trabajando en angular con la libreria de ng-bootstrap. Estoy intentando hacer uso de las funcion de popover o bien sea de tooltip para mostrar un pequeño recuadro al pasar el raton por encima de alguno de los elementos generados a partir de una función ngFor

Os enseño el código,

<div class="box-container">  <swiper>     <div class="swiper-container" [swiper]="config" (indexChange)="onIndexChange($  event)">         <div class="swiper-wrapper">             <div class="col-3" *ngFor=" let novel of lastNovels; let i = index">                 <ng-template #popContent>                     <p [innerHTML]="novel.nvl_content"></p>                 </ng-template>                 <ng-template #popTitle>                     <p [innerHTML]="novel.nvl_title"></p>                 </ng-template>                 <div class="card-img" style="width: 10rem; height: 15rem;" *ngIf="i < 4" (click)="goToNovel(novel.id)" [ngbPopover]="popContent" [popoverTitle]="popTitle" triggers="mouseenter:mouseleave">                     <img class="card-img-top" src="../../../assets/img/23peque.jpg" alt="Card image cap">                     <div class="card-box">                         <h4 class="card-title pb-3 mbr-fonts-style display-7">                             N.{{i}} {{novel.nvl_title}}                         </h4>                     </div>                 </div>             </div>         </div>     </div> </swiper> 

Ahora mismo imprimiendo un Slider que genera (x) cantidad de elementos de tipo cardcon la función ngFor, la cantidad de elementos generados la limita la función ngIf.

Este código que os enseño solo genera ese popover para el ultimo elemento creado.

Lo que me hace sospechar que mi instruccion ngIf esta causando algun problema. Pero la he quitado y nada.

Muchas gracias a quien pueda ayudarme

Modificar una lista de manera dinámica para cada grupo de elementos en un juego iterativo

Dispongo de un código que simula un juego de señales entre jugadores (ver código abajo). El juego consta de 4 jugadores y 4 señales, que juegan en parejas durante 3 rondas (ver def main()).

Definidas también en main(), existen en el juego unas variables s1 y s2 (llamémoslas sigmas) que afectan la dinámica del juego. De tal manera que en def with_b la variable s1 afecta la ecuación que utilizan los jugadores 1 y 2, y la variable s2 afecta la ecuación que utilizan los jugadores 3 y 4.

Estas variables s1 y s2 permanecen constantes a lo largo del juego tal y como está ahora: s1=[1,0,0,0] y s2=[0,0,0,1]

En el juego, para cada ronda, cada jugador genera una lista aux que representa la señal producida. Así, cada ronda, cada jugador producirá su aux, que podrá ser una de las siguientes: [1,0,0,0] o [0,1,0,0] o [0,0,1,0] o [0,0,0,1].

Objetivo

Lo que se pretende ahora es que, para cada ronda y jugador, si su aux coincide con su sigma (s1 en caso de jugadores 1 y 2, s2 en caso de jugadores 3 y 4), se modifique el valor de sigma para ese jugador concreto según unos facotres de corrección:

s1 = [1,0,0,0] s2 = [0,0,0,1] cf_pos = 0.9 cf_neg = 0.1 

Para jugadores 1 y 2:

if s1 == aux:     s1[:] = [x * cf_pos for x in s1] else:     s1[:] = [x * cf_neg for x in s1] 

Para jugadores 3 y 4:

if s2 == aux:     s2[:] = [x * cf_pos for x in s2] else:     s2[:] = [x * cf_neg for x in s2] 

Un problema que observo es que en el código actual aux la estoy generando al escribir el archivo csv no en el juego en sí. También, que al ser s1 y s2 variables constantes, no sé cómo podría cambiarlas dinámicamente (de ronda en ronda) para cada jugador sin que ello cambiara también su valor de sigma para el resto de jugadores. Digamos que cada uno debería evolucionar su sigma independientemente.

Muchas gracias de antemano.

from __future__ import division from random import random, sample from bisect import bisect from collections import deque import csv import math      class Partida():         def __init__(self, jugadores, emparejamientos, senales, s1, s2, b, x, m):             self.emparejamientos = emparejamientos             self.senales = senales             self.s1 = s1             self.s2 = s2             self.b = b             self.x = x             self.m = m             self.jugadores = {nombre: Partida.Jugador(senales)                               for pareja in emparejamientos[0]                               for nombre in pareja}             self.memoria = list()             self.entropy = float()          def generar_senales(self):              def with_b(muestra, observa, s1, s2, r, nombre):                 if nombre <=2:                     if not (muestra == observa == 0):                         result = ((0.98) * (1.0 - self.b) * (1.0 - self.x) * muestra / r) + (                         (0.98) * (1.0 - self.b) * (self.x) * observa / r) + ((0.98) * self.b * s1) + ((self.m / 8))                     else:                         result = ((0.98) * (1.0 - 0) * (1.0 - self.x) * muestra / r) + (                         (0.98) * (1.0 - 0) * (self.x) * observa / r) + ((0.98) * 0 * s1) + ((self.m / 8))                 else:                     if not (muestra == observa == 0):                         result = ((0.98) * (1.0 - self.b) * (1.0 - self.x) * muestra / r) + (                         (0.98) * (1.0 - self.b) * (self.x) * observa / r) + ((0.98) * self.b * s2) + ((self.m / 8))                     else:                         result = ((0.98) * (1.0 - 0) * (1.0 - self.x) * muestra / r) + (                         (0.98) * (1.0 - 0) * (self.x) * observa / r) + ((0.98) * 0 * s2) + ((self.m / 8))                 return result              def choice(opciones, probs):                 probAcumuladas = list()                 aux = 0                 for p in probs:                     aux += p                     probAcumuladas.append(aux)                 r = random() * probAcumuladas[-1]                 op = bisect(probAcumuladas, r)                 return opciones[op]              yield dict(zip(self.jugadores.keys(), self.senales))              r = 1             while True:                 eleccs = dict.fromkeys(self.jugadores.keys())                 for nombre, inst in self.jugadores.items():                     probs = [with_b(inst.mem_mostradas[op], inst.men_observadas[op], self.s1[indx],self.s2[indx], r, nombre)                              for indx, op in enumerate(self.senales)]                     eleccs[nombre] = choice(self.senales, probs)                 r += 1                 yield eleccs          def jugar(self):             gen_sens = self.generar_senales()             for n, ronda in enumerate(self.emparejamientos):                 senales = next(gen_sens)                 self.memoria.append(senales)                  for jugador1, jugador2 in ronda:                     self.jugadores[jugador1].men_observadas[senales[jugador2]] += 1                     self.jugadores[jugador2].men_observadas[senales[jugador1]] += 1                     self.jugadores[jugador1].mem_mostradas[senales[jugador1]] += 1                     self.jugadores[jugador2].mem_mostradas[senales[jugador2]] += 1           class Jugador():             def __init__(self, senales):                 self.mem_mostradas = {senal: 0 for senal in senales}                 self.men_observadas = {senal: 0 for senal in senales}       def main():         jugadores = [1, 2, 3, 4]         senales = ['S1', 'S2', 'S3', 'S4']         emparejamientos = [[(1, 2), (3, 4)],                            [(1, 3), (2, 4)],                            [(1, 4), (2, 3)]]          patron = 1          ####SIGMAS####         s1 = [1, 0, 0, 0]         s2 = [0, 0, 0, 1]          muestras = [{'b': 0.0, 'x': 0.0, 'm': 0.02},                    {'b': 1.0, 'x': 0.0, 'm': 0.02}]          muestras = [d for d in muestras for _ in range(1)]          simulaciones = 10          estadisticas = {sim: {jugador: {muestra: {senal: [0 for ronda in range(1, len(emparejamientos) + 1)]                                             for senal in senales}                                   for muestra in range(len(muestras))}                         for jugador in jugadores}                     for sim in range(simulaciones)}          for sim in range(simulaciones):             for mu in range(len(muestras)):                 juego = Partida(jugadores, emparejamientos, senales, s1,s2, muestras[mu]['b'], muestras[mu]['x'],                                 muestras[mu]['m'])                 juego.jugar()                 for n, ronda in enumerate(juego.memoria):                     for jugador, senal in ronda.items():                         estadisticas[sim][jugador][mu][senal][n] += 1          with open('datos.csv','w', newline='') as csvfile:                 writer = csv.writer(csvfile, delimiter=';',                                     quotechar='"', quoting=csv.QUOTE_MINIMAL)                 writer.writerow(['Sim','Muestra', 'Jugador', 'Ronda', 'Patron', 'b', 'x', 'm'] + senales + ['sumpop'])      # Escribiendo las estadisticas para cada jugador, ronda y muestra                 for jugador in jugadores:                     for sim in range(simulaciones):                         for mu in range(len(muestras)):                             for ronda in range(1, len(emparejamientos) + 1):                                 aux = [estadisticas[sim][jugador][mu][senal][ronda - 1] for senal in senales]                                 aux1 = [estadisticas[sim][1][mu][senal][ronda - 1] for senal in senales]                                 aux2 = [estadisticas[sim][2][mu][senal][ronda - 1] for senal in senales]                                 aux3 = [estadisticas[sim][3][mu][senal][ronda - 1] for senal in senales]                                 aux4 = [estadisticas[sim][4][mu][senal][ronda - 1] for senal in senales]                                 print(aux)     # Lista que contiene los sumatorios de cada tipo de senales producidas a nivel de la poblacion global en cada muestra y ronda                                 summation_pop = []                                 for i in range(len(aux1)):                                     summation_pop.append(                                         aux1[i] + aux2[i] + aux3[i] + aux4[i])                                 writer.writerow([sim +1, mu + 1, jugador, ronda, patron, muestras[mu]['b'], muestras[mu]['x'],                                              muestras[mu]['m']] + aux + [summation_pop])      if __name__ == '__main__':         main() 

¿Cómo puedo generar un archivo geojson por cada consulta hecha a través de webscrapping?

Tengo un csv en el cual almaceno todas las url’s a las que lanzo la consulta a través de beautiful soup de python. La consulta la hago através del siguiente script:

import pandas as pd import requests from bs4 import BeautifulSoup   URL_filename = 'ejemplo.csv' URL_column_name = "url" data = pd.read_csv(URL_filename,encoding='utf8') weblink = (data[URL_column_name]).tolist()  i=0 while i<len(weblink):    page = requests.get(weblink[i]) soup = BeautifulSoup(page.text,'html.parser') print (soup)   i+=1 

El script funciona y me arroja un resutado como este en formato geojson (un resultado similar para cada url):

{ "type": "FeatureCollection", "licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright", "features": [{     "type": "Feature",     "properties": {         "place_id": 110103318,         "osm_type": "way",         "osm_id": 149914077,         "place_rank": 26,         "category": "highway",         "type": "residential",         "importance": 0.1,         "addresstype": "road",         "name": "Calle Julio García",         "display_name": "Calle Julio García, Circunvalación Oblatos, Guadalajara, Jalisco, 44720, México",         "address": {             "road": "Calle Julio García",             "suburb": "Circunvalación Oblatos",             "city": "Guadalajara",             "county": "Guadalajara",             "state": "Jalisco",             "postcode": "44720",             "country": "México",             "country_code": "mx"         }     },     "bbox": [-103.2838528, 20.6960196, -103.2835124, 20.6987892],     "geometry": {         "type": "Point",         "coordinates": [-103.283776174626, 20.6966302195429]     } }] } 

Lo que quiero ahora es escribir un archivo con extensión geojson y con nombre seriado (por ejemplo “resultado1, resultado2, resultado3… resultado n) para cada resultado arrojado por el script. ¿Cómo puedo hacerlo?

Como enviar um email aceitando ou rejeitando o pedido para cada cliente

Tenho como um objetivo ter a possibilidade de aceitar ou rejeitar um pedido de reserva de um cliente. O que eu tenho é o backoffice do meu website, onde aparece todas as pessoas que preenchem o meu formulário de reserva, o utilizador após preencher o formulário recebe um email a dizer que a sua reserva está pendente e nesse momento é quando o admin tem a opção de clicar no botão “aceitar” ou “rejeitar” e após essa acção ser tomada o utilizador iria receber um email com a reposta. De momento estava a tentar fazer o botão “aceitar” e ver se conseguia fazer com que funcionasse, mas nada aconteceu.

//Formulário listreser.php   <body style="background-color:white;"> <?php header('Content-type: text/plain; charset=utf-8'); ?> <?php     	$  sql="select * from Reservas"; 	$  res=$  lig->query($  sql); ?>  <div class="container">   <h1 align="center">Listar Reservas </h1> <br><br>         <table id ="tableUser"  class="table table-striped display">     <thead> 	<tr>     <th>Código de Reserva</th>     <th>Nome </th> 		<th>Apelido</th> 		<th>Email</th> 		<th>Telefone</th>     <th>Data </th> 		<th>Hora </th>     <th>Número de Pessoas</th> 		<th>Mensagem </th> 		<th>Estado</th> 		<th></th> 		<th></th>     </tr>     </thead>     <tbody> <?php  while ($  lin=$  res->fetch_array()){ ?>       <tr>         <td><?php echo$  lin[Cod_Reserva]; ?></td> 		<td><?php echo$  lin[NomeReser]; ?></td> 		<td><?php echo$  lin[ApelidoReser]; ?></td> 		<td><?php echo$  lin[EmailReser]; ?></td> 		<td><?php echo$  lin[TelefoneR]; ?></td> 		<td><?php echo$  lin[DataR]; ?></td> 		<td><?php echo$  lin[Hora]; ?></td> 		<td><?php echo$  lin[NumPessoas]; ?></td> 		<td><?php echo$  lin[MensagemR]; ?></td>              <td> <button type="submit" style="margin:5px;" name="aceitar" id="aceitar" class="btn btn-default"><img src='images/check.png' width="20" height = "20" ></button><button type="submit" style="margin:5px;" name="rejeitar" id="rejeitar" class="btn btn-default"><img src='images/close.png' width="15" height = "15" ></button><a href=index.php?cmd=aceitar<?php echo$  lin[Estado]; ?></td>       </tr>  <?php     if(isset($  _POST['aceitar'])){ 	require 'PHPMailer/PHPMailerAutoload.php'; 	$  mail = new PHPMailer; 	$  mail->CharSet = "utf-8"; 	$  mail->Host='smtp.gmail.com'; 	$  mail->Port = 587; 	$  mail->SMTPDebug = 2; 	$  mail->SMTPAuth = true; 	$  mail->SMTPSecure='tls'; 	$  mail->Username='email@gmail.com'; 	$  mail->Password='*****'; 	 	$  mail->setFrom($  _POST['EmailReser']); 	$  mail->addAddress('email@gmail.com'); 	$  mail->addReplyTo($  _POST['EmailReser']); 	 	$  mail->isHTML(true); 	$  mail->Subject='Nova mensagem no seu website'; 	$  mail->Body = ""; 	 	if(!$  mail->send()){ 		$  result="Alguma coisa nao correu como esperado. Por favor tente novamente"; 	} 	else{ 		 		header('Location: index.php?cmd=listreser'); 	 } }  }   ?>     </tbody>   </table>   </div>

Como enviar um email aceitando ou rejeitando o pedido para cada cliente

Tenho como um objetivo ter a possibilidade de aceitar ou rejeitar um pedido de reserva de um cliente. O que eu tenho é o backoffice do meu website, onde aparece todas as pessoas que preenchem o meu formulário de reserva, o utilizador após preencher o formulário recebe um email a dizer que a sua reserva está pendente e nesse momento é quando o admin tem a opção de clicar no botão “aceitar” ou “rejeitar” e após essa acção ser tomada o utilizador iria receber um email com a reposta. De momento estava a tentar fazer o botão “aceitar” e ver se conseguia fazer com que funcionasse, mas nada aconteceu.

//Formulário listreser.php   <body style="background-color:white;"> <?php header('Content-type: text/plain; charset=utf-8'); ?> <?php     	$  sql="select * from Reservas"; 	$  res=$  lig->query($  sql); ?>  <div class="container">   <h1 align="center">Listar Reservas </h1> <br><br>         <table id ="tableUser"  class="table table-striped display">     <thead> 	<tr>     <th>Código de Reserva</th>     <th>Nome </th> 		<th>Apelido</th> 		<th>Email</th> 		<th>Telefone</th>     <th>Data </th> 		<th>Hora </th>     <th>Número de Pessoas</th> 		<th>Mensagem </th> 		<th>Estado</th> 		<th></th> 		<th></th>     </tr>     </thead>     <tbody> <?php  while ($  lin=$  res->fetch_array()){ ?>       <tr>         <td><?php echo$  lin[Cod_Reserva]; ?></td> 		<td><?php echo$  lin[NomeReser]; ?></td> 		<td><?php echo$  lin[ApelidoReser]; ?></td> 		<td><?php echo$  lin[EmailReser]; ?></td> 		<td><?php echo$  lin[TelefoneR]; ?></td> 		<td><?php echo$  lin[DataR]; ?></td> 		<td><?php echo$  lin[Hora]; ?></td> 		<td><?php echo$  lin[NumPessoas]; ?></td> 		<td><?php echo$  lin[MensagemR]; ?></td>              <td> <button type="submit" style="margin:5px;" name="aceitar" id="aceitar" class="btn btn-default"><img src='images/check.png' width="20" height = "20" ></button><button type="submit" style="margin:5px;" name="rejeitar" id="rejeitar" class="btn btn-default"><img src='images/close.png' width="15" height = "15" ></button><a href=index.php?cmd=aceitar<?php echo$  lin[Estado]; ?></td>       </tr>  <?php     if(isset($  _POST['aceitar'])){ 	require 'PHPMailer/PHPMailerAutoload.php'; 	$  mail = new PHPMailer; 	$  mail->CharSet = "utf-8"; 	$  mail->Host='smtp.gmail.com'; 	$  mail->Port = 587; 	$  mail->SMTPDebug = 2; 	$  mail->SMTPAuth = true; 	$  mail->SMTPSecure='tls'; 	$  mail->Username='email@gmail.com'; 	$  mail->Password='*****'; 	 	$  mail->setFrom($  _POST['EmailReser']); 	$  mail->addAddress('email@gmail.com'); 	$  mail->addReplyTo($  _POST['EmailReser']); 	 	$  mail->isHTML(true); 	$  mail->Subject='Nova mensagem no seu website'; 	$  mail->Body = ""; 	 	if(!$  mail->send()){ 		$  result="Alguma coisa nao correu como esperado. Por favor tente novamente"; 	} 	else{ 		 		header('Location: index.php?cmd=listreser'); 	 } }  }   ?>     </tbody>   </table>   </div>

SQL – Ultimo Registro de cada carro

Olá.

Estou consultando um BD onde retorna diversos dados de vários carros, que são coletados por um hardware instalado nestes. O hardware envia os dados a cada x segundos. Logo cada carro tem diversos registros. Precisava fazer uma query para buscar o ultimo registro (completo, todas as colunas) de cada carro.

Não tenho acesso ao id dos registros. Cada carro é identificado por um código ‘vehicle_id’ composto por uma letra e 3 números, ex: “A001”. A forma que tenho para saber quando o registro foi enviado pelo hardware é por uma coluna ‘date’ que é armazenada no formato de milissegundos, ex: 1560776363000

Se eu não tiver sido claro por favor questione que tento explicar de outra forma.

Desde já agradeço.