Test Foreach qui plante
Résolu
kakesinfo
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, J'aimerai savoir si c possible de detecter si le Foreach plante est donc rediriger vers une autre page ? Vous pourrai voir si dessous un test de ma part qui ne fonctionne pas :). Merci de votre reponse.
try{ foreach ($db->getPDO()->query('SELECT * FROM musiques WHERE slug LIKE "' . $r . '%" OR slug LIKE "%' . $r . '" OR slug LIKE "%' . $r . '"') as $data) { //$player->addPoints($data->points); //header('Location:music/' . rand(1, 23)); die('Sa marche !'); } } catch(Exception $e){ die('Sa marche pas!'); //header('Location:/'); }
A voir également:
- Test Foreach qui plante
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
- Test batterie pc - Guide
2 réponses
essaye de sortir la rqt sql dans une var :
try{
$datas = $db->getPDO()->query('SELECT * FROM musiques WHERE slug LIKE "' . $r . '%" OR slug LIKE "%' . $r . '" OR slug LIKE "%' . $r . '"');
foreach ($datas as $data) {
//$player->addPoints($data->points);
//header('Location:music/' . rand(1, 23));
die('Sa marche !');
}
} catch(Exception $e){
die('Sa marche pas!');
//header('Location:/');
}
Merci a tous d'avoir répondu et donc voici le code final qui marche:
EDIT : Ajout du langage dans les balises de code.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
<?php require 'config.php'; require 'players.php'; require 'database.php'; require 'others.php'; $db = new Database(DB, HOST, USERNAME, PASSWORD); $other = new Others(); if(isset($_GET['m']) && isset($_GET['r'])) { $player = new Player($_COOKIE["MF_Pseudo"], $_COOKIE["MF_Points"], $_COOKIE['MF_Ip'], $_COOKIE['MF_Lives']); $caractere = array(" ", "\t", "\n", "\r", "\0", "\x0B", "\xA0", "+"); $m = $_GET['m']; $r = strtolower($_GET['r']); $r = str_replace($caractere, array(), $r); $req = $db->getPDO()->query('SELECT * FROM musiques WHERE id='.$m); $data = $req->fetch(PDO::FETCH_ASSOC); if(!is_null($data['points'])){ echo '1'; if($other->contains($data['slug'], $r)){ $player->addPoints($data['points']); $player->addLives(1); header('Location:music/' . mt_rand(1, 23)); echo '1-1'; }else{ $player->removeLives(1); header('Location:music/' . mt_rand(1, 23)); echo '1-2'; } }else{ header('Location:music/' . mt_rand(1, 23)); echo '2'; } }
EDIT : Ajout du langage dans les balises de code.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
+1 pour la réponse proposée par notre amis sautilleur ^^
J'ajouterai qu'en plus... sorts également la requête de son execution... cela permet d'en faire un debug en cas de besoin et de la tester en direct dans la BDD pour s'assurer qu'elle est bonne...
Voici à quoi cela pourrait ressembler.
Par contre.... à quoi correspond ta fonction getPDO() ?
Au lieu de