Zoals jullie wel weten heb ik vorige week een post aangemaakt rond het importeren van een database op een webpagina. Maar nu zou ik graag foto's importeren vanuit dezelfde database, deze foto's bevatten geen url, maar wel een pad. Bv: 000000-001000, maar het pad bij men 2 foto's zijn allebei hetzelfde. Dus het lijkt met niet echt logisch om hiermee verder te werken. Tenzij ik het verkeerd begrijp natuurlijk.
Ik zat eraan te denken om de foto's te importeren via hun ID bv 5 en 6. Ik heb al wat opgezocht, maar ik zit toch weer even vast. De kolom waarin de id nummers staan heet I_ID. Verder krijg ik op lijn 21 een foutmelding te zien dat er een undefined index is.
Waar komt $id vandaan?
Waarom gebruik je niet direct in de query mysqli_real_escape_string($_GET['I_ID']), en controleer je daarboven of de $_GET['I_ID'] gecontroleerd is met isset().
Los daarvan vraag ik me af waarom je twee tabellen betrekt?
Omdat ik een tabel heb met artikelen, maar deze bevatten ook telkens een foto en deze foto's staan in een andere tabel. Ik moet eerlijk zijn, ik weet echt niet waar ik precies die
mysqli_real_escape_string($_GET['I_ID'])
moet zetten. Ik weet niet precies wat je bedoelt met query.
Bedankt Aar, dus als ik het goed begrijp zou zoiets het moeten doen? Maar ik kom meteen bij men foutmelding uit (no Id set in Post). Moet ik dan ergens nog mijn ID definiëren ofzo?
<?php
if(isset($_GET['I_ID'])) {
$id = filter_input(INPUT_GET, 'I_ID', FILTER_SANITIZE_NUMBER_INT);
$sqlget = "SELECT * FROM artikel, images WHERE `I_ID`='".$id."'";
$result = mysqli_query($dbcon, $sqlget);
if($result) {
mysqli_real_escape_string($_GET['I_ID']);
} else {
mysqli_error('Dit is een foutmelding');
}
} else {
die( 'no Id set in Post');
}
?>
In de URL? Ik neem aan dat je wel bekend met met $_GET?
En verder is die() geen goede foutafhandeling. Je kan er beter een echo plaatsen.
Verder slaat lijn 7 ook nergens op.
Er mist een link naar je databaseconnectie in mysqli_error(). Je kan er geen eigen string in plaatsen.
Misschien mijn gele comments eens lezen in plaats van wat rond te klooien?
Neen niet echt, zoals ik zei, ik heb geen verstand van php. Ik las je comments wel, maar ga er niet vanuit dat ik het daarom meteen kan. Voor mij is het nog altijd in het duister tasten.
maar het pad bij men 2 foto's zijn allebei hetzelfde. Dus het lijkt met niet echt logisch om hiermee verder te werken. Tenzij ik het verkeerd begrijp natuurlijk.
Ik zat eraan te denken om de foto's te importeren via hun ID bv 5 en 6.
Je hebt het over importeren, maar als het om importeren gaat, waarom dan een select-query? Hoe wil je foto's importeren op basis van een id? Waaruit blijkt dat id?
Er van uitgaande dat je bedoelt dat je gegevens wilt tonen: hoe heb je de gegevens opgeslagen in je database? Ik neem aan in ieder geval de naam van de afbeelding. Dat het pad naar de foto's gelijk is, is (natuurlijk) geen probleem, zolang de afbeeldingen maar een verschillende naam hebben.
In je titel staat "Foto's halen uit een database (zonder url)", maar je werkt wel met $_GET. Wat staat er dan in de url?
Ni els op 02/06/2014 17:29:18
Neen niet echt, zoals ik zei, ik heb geen verstand van php. Ik las je comments wel, maar ga er niet vanuit dat ik het daarom meteen kan. Voor mij is het nog altijd in het duister tasten.
Wat houdt je tegen om je in php te verdiepen? Als je comments leest, maar niet begrijpt, waarom vraag je dan niet om meer info?
Ik heb momenteel niet echt de tijd om me in php te verdiepen spijtiggenoeg, anders deed ik dat met alle plezier. Maar momenteel probeer ik wat basisinformatie bijeen te krabbelen. Maar om even uit te breiden op mijn probleem.
Maar mijn eerste probleem is nu, hoe hij aan die volledige naam komt van die foto's. Wanneer ik precies dezelfde code heb zoals hem, dan krijg ik slechts 5.jpg te zien, kan dit zijn dat het aan de database ligt die mijn pagina onvoldoende permissies geeft om de volledige naam op te kunnen vragen?
Een frisse start, dat wel, maar wederom wordt er niks met mijn aangeprezen foutafhandeling gedaan.
Een 'error getting' zegt immers niet zo veel, plus dat die() kerkhof-techniek is, die nergens voor nodig is. Je script hoeft immers niet dood te gaan bij een fout. Gewoon netjes eromheen werken met een if-else statement.
Verder heeft dit niks met permissies van een database te maken. Ze bestaan wel, maar staan hier totaal los van. Misschien dat er een ander type in de database wordt gebruikt om de namen in op te slaan?