Met een upload script voor afbeeldingen laat ik een thumbnail maken en worden vervolgens beide weggeschreven in 2 verschillende mappen (fullsize) en (thumbnail).
Daarna worden ze in een database geschreven waar ik 2 aparte rijen heb gemaakt, één voor de fullsize en één voor de thumbnail.
Op het moment dat er een spatie of speciale karakters in de naam van de afbeelding voorkomen die geupload wor, gaat het mis bij het ophalen van de thumbnail afbeelding. om dit te voorkomen dacht ik om zelf een geheel nieuwe naam aan te maken voor de thumbnail zoals bijvoorbeeld thumb1, thumb2, thumb3 enz.
Hoe zou ik dit kunnen creëren zonder dat er dubbele namen worden gemaak?
De afbeelding/thumbnail word opgeslagen in de map thumb, de bestandsnaam is thumb+ID+.jpg (thumb1.jpg, thumb2.jpg), ik heb dus toch bereikt wat ik wilde maken.
Maar ik zit met een error, namelijk:
Als ik 1 afbeelding upload gaat het goed, maar met meerdere gaat het niet goed.
Deze fout krijg ik terug als ik een SQL fouthandeling erover gooi
"Error description: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('boom.png', 'thumb', NOW())' at line 1"
De afbeelding/thumbnail word opgeslagen in de map thumb, de bestandsnaam is thumb+ID+.jpg
Waarom zou je daar dan nog thumb voor plakken als de directory al zo heet?
Ook hoef je geen kolommen te hebben voor de naam van de grote afbeelding noch de thumbnail als deze letterlijk overeenkomt met het auto-increment id? En de directories voor de afbeeldingen lijken mij iets voor configuratie, niet iets wat je hardcoded opslaat in de database. Als je de directories verplaatst is dit dan gewoon een kwestie van (een of) twee regels je configuratie aanpassen, in plaats van tig UPDATE-queries.
Het enige wat mij zinnig lijkt om bij te houden, als hier uberhaupt al variatie in zit, is een afbeeldingstype of -extentie.
Wat ik zou doen voor het opslaan is zoiets:
doorloop loop
start transactie
insert record + noteer auto_increment id
sla afbeelding op met dit id
creeer + sla thumb op met dit id
indien geslaagd, commit, anders rollback + cleanup
einde loop
Het gaat erom dat ik de ID wat door de database word gemaakt terug krijg en kan gebruiken in de thumbail functie. Als er 1 afbeelding word geupload krijgt hij netjes die ID maar dat is omdat dat dan ook meteen de laatste is voor de syntax
<?php $thumbID = mysqli_insert_id($connection);?>
Als ik er meerdere doe krijg ik alleen de laatste ID terug. Ik wil dat hij in die loop ook de andere ID's aan de thumbnail functie geeft.
Zie toevoeging vorige reactie. De oplossing lijkt mij gewoon elke stap van de loop 1 compleet plaatje af te handelen (query, image + thumb van 1 upload).