par
Couin » 17 févr. 2019, 17:05
Hllo,
J'ai un truc bizarroïde (oui encore lol )
Voilà, une fois toutes les 10 secondes, je récupère quelques champs d'une trentaine de lignes d'une table sur un serveur distant, et je rempli une table (précédemment vidée) du site.
Pour ce faire, une première requête récupère les données de la table source, et chaque champs alimente un array
Code : Tout sélectionner
$sql = "SELECT date_played, song_type, id_subcat, artist, title, duration FROM history ORDER BY history.date_played DESC LIMIT 0, 30" ;
$requete = mysqli_query( $dbrdj, $sql ) ;
while( $result = mysqli_fetch_array( $requete ) ) {
$date_played[] = $result['date_played'];
$song_type[] = $result['song_type'];
$id_subcat[] = $result['id_subcat'];
$duration[] = $result['duration'];
$artist[] = addslashes($result['artist']);
$title[] = addslashes($result['title']);
}
Puis j'alimente la table sur la base de données du site :
Code : Tout sélectionner
for ($i = 0; $i < 30 ; $i++) {
$sql = "INSERT INTO history SET date_played='$date_played[$i]', song_type='$song_type[$i]', id_subcat='$id_subcat[$i]', duration='$duration[$i]', artist='$artist[$i]', title='$title[$i]';";
$requete = mysqli_query( $dbwrite, $sql ) ;
}
Le problème, régulièrement, le champs "duration" , qui est de type "Double (11,5)", comme la source, se retrouve qu'avec "0.00000" au lieu de la durée du titre (puisqu’il s'agit de musiques vous l'aurez deviné

).
C’est aléatoire, ça ne touche pas forcément toutes les lignes. Au ramassage suivant, les "durations" sont là .
Le problème ne touche que cette colonne.
L'ennui c'est que plus tard dans mon script, j'utilise la "duration" dans une jointure de requête et du coup, quand il y a "0.00000", la requête ne donne rien et j'ai pas de données finales (ID de pochette et nom du titre en cours + ID des 5 pochettes de titres passés avant) à exploiter , ce qui fait que le site affiche des fois des pochettes génériques.
Si quelqu'un a une idée , je suis preneur, car je vois pas où est mon erreur du coup
Merkouin

Hllo,
J'ai un truc bizarroïde (oui encore lol )
Voilà, une fois toutes les 10 secondes, je récupère quelques champs d'une trentaine de lignes d'une table sur un serveur distant, et je rempli une table (précédemment vidée) du site.
Pour ce faire, une première requête récupère les données de la table source, et chaque champs alimente un array
[code]$sql = "SELECT date_played, song_type, id_subcat, artist, title, duration FROM history ORDER BY history.date_played DESC LIMIT 0, 30" ;
$requete = mysqli_query( $dbrdj, $sql ) ;
while( $result = mysqli_fetch_array( $requete ) ) {
$date_played[] = $result['date_played'];
$song_type[] = $result['song_type'];
$id_subcat[] = $result['id_subcat'];
$duration[] = $result['duration'];
$artist[] = addslashes($result['artist']);
$title[] = addslashes($result['title']);
}[/code]
Puis j'alimente la table sur la base de données du site :
[code]for ($i = 0; $i < 30 ; $i++) {
$sql = "INSERT INTO history SET date_played='$date_played[$i]', song_type='$song_type[$i]', id_subcat='$id_subcat[$i]', duration='$duration[$i]', artist='$artist[$i]', title='$title[$i]';";
$requete = mysqli_query( $dbwrite, $sql ) ;
}[/code]
Le problème, régulièrement, le champs "duration" , qui est de type "Double (11,5)", comme la source, se retrouve qu'avec "0.00000" au lieu de la durée du titre (puisqu’il s'agit de musiques vous l'aurez deviné :) ).
C’est aléatoire, ça ne touche pas forcément toutes les lignes. Au ramassage suivant, les "durations" sont là .
Le problème ne touche que cette colonne.
L'ennui c'est que plus tard dans mon script, j'utilise la "duration" dans une jointure de requête et du coup, quand il y a "0.00000", la requête ne donne rien et j'ai pas de données finales (ID de pochette et nom du titre en cours + ID des 5 pochettes de titres passés avant) à exploiter , ce qui fait que le site affiche des fois des pochettes génériques.
Si quelqu'un a une idée , je suis preneur, car je vois pas où est mon erreur du coup :(
Merkouin :D