Bonjour à tous, sur mon site j'affiche des photos, et en général tout va bien, mais lorsque je change :

$req = $bdd->prepare("SELECT * FROM table1,table2 WHERE table1.valeur = '$valeur' AND table2.valeur = table1.valeur LIMIT ".$depart.",".$nombrePhotosParPage);
$req->execute();

en

$req = $bdd->prepare("SELECT * FROM table1,table2 WHERE table1.valeur = '$valeur' AND table2.valeur = table1.valeur ORDER BY table1.id LIMIT ".$depart.",".$nombrePhotosParPage);
$req->execute();

La, la page met 30 secondes à charger, et ma console Javascript est remplie de cette erreur :

https://imgur.com/VOAtVJq

Ce sont deux fichiers que je load en AJAX.

Donc j'ai regardé sur Internet, et j'ai vu le système de header, donc j'ai ajouté :

header("Access-Control-Allow-Origin: *");

Au début de la page, mais rien n'y fait !

Si quelqu'un avait des explications, ça m'arrangerais, merci à vous !

3 réponses


Je viens de check et

ORDER BY table1.id DESC

fonctionne, mais

ORDER BY table2.id DESC

balance toutes les erreurs, la

Et j'ai déja essayé d'échanger la place des tables dans le SELECT

Qu'est ce qu'il se paaaaaaasse.

Tu peux donner l'url du site pour qu'on puisse regarder un peu ce que la conseole donne ?

Salut,

Premièrement, tes requêtes SQL sont mauvaises, dans l'état actuel, tes requêtes utilises en produit cartésien, c'est hyper long pour ton moteur SQL qui peut faire tomber en timeout ton serveur HTTP, quand tu requêtes plusieurs tables, il faut utiliser les jointures ou les sous-requêtes dans certains cas.

De plus, si tu utilises les requêtes préparées, utilises le binding, c'est plus secure

$req = $bdd->prepare("SELECT * FROM table1,table2 WHERE table1.valeur = '$valeur' AND table2.valeur = table1.valeur LIMIT ".$depart.",".$nombrePhotosParPage);

devient

$req = $bdd->prepare("SELECT * FROM table1 t1 JOIN table2 t2 ON t1.valeur = t2.valeur WHERE t1.valeur = :value ORDER BY t1.id LIMIT :start, :per_page");
$req->execute([
    'value' => $valeur,
    'start' => (int) $depart,
    'per_page' => (int) $nombrePhotosParPage,
]);