Foto's halen uit een database (zonder url)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Ni els

Ni els

03/06/2014 10:39:37
Quote Anchor link
Dat klopt maar de foutafhandeling maakt het voor mij tot nu toe nog te ingewikkeld. Daarom zou ik het liever aan de kant laten, totdat ik wel snap wat ik aan het doen ben. Maar dan snap ik nog altijd niet, hoe mijn collega met zijn script, meer ziet dan mij. Zelf al kopieer ik zijn volledige code, dan krijg ik hetzelfde resultaat te zien zoals ik voordien al had.
 
PHP hulp

PHP hulp

28/11/2024 06:40:40
 
- Ariën  -
Beheerder

- Ariën -

03/06/2014 10:42:25
Quote Anchor link
Foutafhandeling is niet zo ingewikkeld. Als je weet hoe if-else werkt, dan is een foutafhandeling zo in elkaar gezet. Voor een beginner in PHP is het geen rocket-science op deze manier. Hoewel je het zo complex kan maken met exeptions en classes, maar dat laat ik even achterwege ;)

Met foutafhandeling krijg je tevens een beter inzicht in waar je code vastloopt. Plus dat je code logischer en begrijpelijker opgebouwd is. Dus doe er gewoon een voordeel mee, zou ik zeggen.

Verder ligt het verschil tussen jouw en je collega hoogstwaarschijnlijk bij een verkeerd veld type in je database.
 
Ni els

Ni els

03/06/2014 11:05:42
Quote Anchor link
Als ik de dingen af heb, die ik zou willen hebben, dan stort ik me met alle plezier op die foutafhandeling ;) maar ik heb nu een beetje gebrek aan tijd.

Om nu even van de hak op de tak te springen, ik heb het zoeken naar die 'afbeeldingen' voorlopig even aan de kant gelegd. Ik begin nu even eerst met het opsplitsen van al men rijen per 20 voor 1 pagina. Ik volg momenteel deze tutorial: http://www.phpjabbers.com/php--mysql-select-data-and-split-on-pages-php25.html

Want deze houdt precies in, wat ik wil bereiken.

Dus als ik het goed begrijp zou ik gewoon die code moeten implementeren in het stuk die ik nu al heb (van daarnet). Maar ik doe ergens iets verkeerd. Zie jij toevallig waar ik verkeerd gelopen ben?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
include('connect-mysql.php');
if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * 20;
$sqlget = "SELECT *
FROM artikel, images
LIMIT 0, 20
"
;

$sqldata = mysqli_query($dbcon, $sqlget) or die('error getting');

echo "<table>";
echo "<tr><th>A_ARTCODE</th><th>A_NUMMER</th><th>A_OMSCHRN</th><th>A_REFLEV</th><th>A_WINKEL</th><th>I_ARTCODE</th><th>I_FILE</th></tr>";

while($row = mysqli_fetch_array($sqldata)){
    echo "<tr><td align='right'>";
    echo $row['A_ARTCODE'];
    echo "</td><td align='left'>";
    echo $row['A_NUMMER'];
    echo "</td><td align='left'>";
    echo $row['A_OMSCHRN'];
    echo "</td><td align='left'>";
    echo $row['A_REFLEV'];
    echo "</td><td align='right'>";
    echo $row['A_WINKEL'];
    echo "</td><td align='right'>";
    echo $row['I_ARTCODE'];
    echo "</td><td align='right'>";
    echo $row['I_FILE'];
    //echo "<img src='000000-001000".$row['I_ID']."' />";
    echo "</td></tr>";
    }

    
echo "</table>";
?>

<?php
$sql
= "SELECT COUNT(I_ID) FROM images";
$rs_result = mysql_query($sql,$dbcon);
$row = mysql_fetch_row($rs_result);
$total_records = $row[0];

$total_pages = ceil($total_records / 20);

for ($i=1; $i<=$total_pages; $i++) {
    echo "<a href='pagination.php?page=".$i."'>".$i."</a> ";
};

?>


Wanneer ik mijn pagina test dan krijg ik 2 foutmeldingen op deze regels:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$rs_result
= mysql_query($sql,$dbcon);
$row = mysql_fetch_row($rs_result);
?>
Gewijzigd op 03/06/2014 11:07:15 door Ni els
 
- Ariën  -
Beheerder

- Ariën -

03/06/2014 11:15:09
Quote Anchor link
Waarom gebruik je nu de oude mysql_* functie i.p.v. mysqli_*?
En verder leg ik net uit waar foutafhandeling nou handig voor is, als je geen foutafhandeling hebt, weet je ook niet wat er mis gaat met je query.

Dus vanaf nu gewoon direct toepassen, en alles wordt duidelijker en de weg naar een werkend script wordt steeds helderder.
 
Ivo P

Ivo P

03/06/2014 11:15:46
Quote Anchor link
Quote:
Wanneer ik mijn pagina test dan krijg ik 2 foutmeldingen op deze regels:


Komt een man bij de dokter: "dokter, ik kan iets niet met mijn arm"

Wat moet de dokter dan? Weer vragen wat er dan is wat hij niet kan, wat er dan precies gebeurt.
Kan een verlamming van de arm zijn.
Kan ook zijn dat hij zijn deur thuis niet open kan krijgen, omdat de vuilnisbak er voor staat....

Dus "ik krijgeen een foutmelding" zegt an sich helemaal niets...
 
Ni els

Ni els

03/06/2014 11:20:33
Quote Anchor link
@Aar: Ik volgde gewoon de tutorial, ik had er niet op gelet dat het mysql was. Ik kijk zo meteen voor een foutafhandeling, maar ik zie het gebeuren dat ik een hele dag eraan kwijt geraak om een goeie foutafhandeling te krijgen :(


@ivo p: Helpen deze 2 regels de dokter wat vooruit?

Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\wamp\www\DBFact\index.php on line 53

Warning: mysql_fetch_row() expects parameter 1 to be resource, null given in C:\wamp\www\DBFact\index.php on line 54
Gewijzigd op 03/06/2014 11:22:27 door Ni els
 
- Ariën  -
Beheerder

- Ariën -

03/06/2014 11:30:00
Quote Anchor link
Ik heb in mijn eerdere voorbeeld al een mooie foutafhandeling gebruikt. Dus waarom zou je dan nog een hele dag ermee lopen emmeren?

Dus bekijk mijn voorbeeld van gisteren eens (vanaf lijn 8), en lees de gele commentaar blokken zorgvuldig. Verder is er niks mis als je tutorials leest, maar als je meerdere gebruikt, let dan ook vooral op wat het doet, en hoe ze werken. Bijna geen enkele verschillende tutorial zal naadloos op elkaar aansluiten, dus weet wat je doet en hoe het werkt. Weet je iets niet, dan kan je dat opzoeken op www.php.net.
Gewijzigd op 03/06/2014 11:45:19 door - Ariën -
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

03/06/2014 11:48:56
Quote Anchor link
Met deze query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM artikel, images

krijg je aan ALLE artikelen uit de artikel tabel ALLE images uit de images tabel
Het is namelijk hetzelfde als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM artikel CROSS JOIN images

Zie hier

Aar maakt diezelfde fout in zijn voorbeeld, en op die manier joinen is niet (meer) volgens de SQL standaard.
 
Ivo P

Ivo P

03/06/2014 12:17:05
Quote Anchor link
Quote:
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\wamp\www\DBFact\index.php on line 53


Is heel duidelijk toch?

Mysqli_query heeft 2 parameters nodig.
De eerste daarvan is (zoals de foutmelding en de handleiding zeggen) van het type mysqli, ofwel de "mysqli-connectie".

Dat is dus bijvoorbeeld
$myConn = mysqli_connect(........)

Dan gebruik je $myConn.

jij geeft een string. Ik gok de string "SELECT....."

Toevoeging op 03/06/2014 12:20:03:

Ivo P op 03/06/2014 12:17:05:
Quote:
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\wamp\www\DBFact\index.php on line 53


Is heel duidelijk toch?

Mysqli_query heeft 2 parameters nodig.
De eerste daarvan is (zoals de foutmelding en de handleiding zeggen) van het type mysqli, ofwel de "mysqli-connectie".

Dat is dus bijvoorbeeld
$myConn = mysqli_connect(........)

Dan gebruik je $myConn.

jij geeft een string (zegt de foutmelding). Ik gok de string "SELECT....."
 
Ni els

Ni els

03/06/2014 14:08:08
Quote Anchor link
Ok ik heb eindelijk alle foutmeldingen weggekregen maar ik blijf nu nog met 1 probleem over. Normaalgezien zou ik meerder pagina's moeten kunnen bekijken, maar wanneer ik op gelijk welk nr klik. Dan krijg ik telkens dezelfde pagina te zien. Dus met andere woorden, ik krijg niet telkens 20 nieuwe producten te zien.

Dit is de code omtrent men probleem:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
= "SELECT COUNT(A_ARTCODE) FROM artikel";
$rs_result = mysqli_query($dbcon, $sql) or die ("mysqli query dies");
$row = mysqli_fetch_row($rs_result) or die ("mysqli fetch row dies");
$total_records = $row[0];

$total_pages = ceil($total_records / 20);

for ($i=1; $i<=$total_pages; $i++) {
            echo "<a href='index.php?page=".$i."'>".$i."</a> ";
};

?>


Toevoeging op 03/06/2014 14:37:36:

Ik heb zojuist de boosdoener gevonden, ik had blijkbaar nog dit staan:

$sqlget = "SELECT *
FROM artikel, images
LIMIT 0, 20
";

heb het aangepast naar dit



$sqlget = "SELECT *
FROM artikel, images
LIMIT $start_from, 20
";
 
Gerhard l

gerhard l

03/06/2014 14:38:43
Quote Anchor link
Omdat je je limit nog niet hebt aangepast.

$Limit = Pagina Y x Aantal per pagina's

Limit($Limit, Aantal per pagina's)
 
Ni els

Ni els

03/06/2014 16:38:57
Quote Anchor link
Om even verder te gaan met men laatste probleem, ik wil graag images halen uit de database met een soort van verborgen url/pad erachter.

De tabel heet 'images' en dit is hoe het eruit ziet:
https://www.dropbox.com/s/lfac7gzr1uqplxd/path.jpg


Bijvoorbeeld nu geef ik de I_FILE informatie in mijn tabel terug. Dus krijg ik de woorden 5.jpg en 6.jpg te zien (in dit voorbeeld enkel 5.jpg):
https://www.dropbox.com/s/txsinttizihiwo5/stillnotok.jpg


Mijn collega maakte onlangs ook een versie waarbij hij meer info te zien kreeg bij die I_FILE kollom:
https://www.dropbox.com/s/j8q8frdufj9jtn7/strange.jpg

Normaalgezien is mijn code en de zijne precies hetzelfde, maar dat bekijk ik zo meteen nog eens.

Maar nu vraag ik me af, hoe kan ik deze weergeven? Ik vind hier niet meteen iets over op het internet.

Ik dacht eraan om theoretisch ongeveer zoiets te doen:

[frontcode]+[I_FILE]=complete url/path

Dit zou me normaalgezien de volledige url of pad kunnen weergeven en zou het moeten werken (theoretisch dan toch). Maar ik heb geen flauw idee hoe ik mijn idee in php taal kan omzetten.

Kan iemand me helpen aub?

Dit is mijn volledige code trouwens, mocht het handig zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
include('connect-mysql.php');
if (!empty($_GET["page"])) {
    $page  = $_GET["page"];
}
else {
    $page=1;
};

$start_from = ($page-1) * 20;
$sqlget = "SELECT *
FROM artikel, images
LIMIT $start_from, 20
"
;

$sqldata = mysqli_query($dbcon, $sqlget) or die('error getting');

echo "<table>";
echo "<tr><th>A_ARTCODE</th><th>A_NUMMER</th><th>A_OMSCHRN</th><th>A_REFLEV</th><th>A_WINKEL</th><th>I_ARTCODE</th><th>I_FILE</th></tr>";

while($row = mysqli_fetch_array($sqldata)){
    echo "<tr><td align='right'>";
    echo $row['A_ARTCODE'];
    echo "</td><td align='left'>";
    echo $row['A_NUMMER'];
    echo "</td><td align='left'>";
    echo $row['A_OMSCHRN'];
    echo "</td><td align='left'>";
    echo $row['A_REFLEV'];
    echo "</td><td align='right'>";
    echo $row['A_WINKEL'];
    echo "</td><td align='right'>";
    echo $row['I_ARTCODE'];
    echo "</td><td align='right'>";
    //echo $row['I_FILE'];
    echo "<img src='".$row['I_ID']."' />";
    echo "</td></tr>";
    }

    
echo "</table>";

$sql = "SELECT COUNT(A_ARTCODE) FROM artikel";
$rs_result = mysqli_query($dbcon, $sql) or die ("mysqli query dies");
$row = mysqli_fetch_row($rs_result) or die ("mysqli fetch row dies");
$total_records = $row[0];

$total_pages = ceil($total_records / 20);

for ($i=1; $i<=$total_pages; $i++) {
            echo "<a href='index.php?page=".$i."'>".$i."</a> ";
};

?>
 
Obelix Idefix

Obelix Idefix

03/06/2014 16:55:54
Quote Anchor link
Ni els op 03/06/2014 16:38:57:
Om even verder te gaan met men laatste probleem, ik wil graag images halen uit de database met een soort van verborgen url/pad erachter.

Wat wil je verborgen houden? Waarom? Hoe wil je dat verborgen houden?
Als je een link plaatst op een website, is die per definitie niet verborgen.

Ni els op 03/06/2014 16:38:57:
Normaalgezien is mijn code en de zijne precies hetzelfde, maar dat bekijk ik zo meteen nog eens.

Misschien eerst mee beginnen? Kennelijk is jouw code om de naam op te slaan in de database anders dan de zijne. Daar zal een reden voor zijn? Hebben jullie hetzelfde idee om uit te werken?

Ni els op 03/06/2014 10:21:28:
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.

Het lijkt er nu op dat je vooral met copy/paste bezig bent en hier komt aankloppen als iets niet werkt.
Uit pure nieuwsgierigheid: wat is de bedoeling? Als je met een collega samenwerkt, kun je hem toch ook vragen om uitleg (gaat ook sneller dan via forum)?
 
Ni els

Ni els

03/06/2014 17:06:26
Quote Anchor link
Ikzelf heb die niet verborgen, die persoon waarvoor ik dit maak, heeft het verborgen gezet, waarom weet ik niet.

De opdrachtgever heeft die andere versie gemaakt. Idd uitleg vragen aan hem is sneller dan via het forum, maar ik probeer zoveel mogelijk zelfstandig op te lossen. Dit is dan ook de reden waarom ik deze opdracht heb gekregen, hij test mij om te kijken hoe goed ik zelfstandig kan werken. Maar zelfstandig werken, wil nog altijd niet zeggen dat ik daarom geen forums mag raadplegen ;) Hij is er momenteel trouwens toch niet, dus vele zin heeft het niet om hulp in te roepen. Ik heb het gevoel dat ik er bijna ben, alleen nog maar die link
 
Obelix Idefix

Obelix Idefix

03/06/2014 17:17:06
Quote Anchor link
Ni els op 03/06/2014 17:06:26:
Ikzelf heb die niet verborgen, die persoon waarvoor ik dit maak, heeft het verborgen gezet, waarom weet ik niet.

Wat verborgen, hoe verborgen? Leg eens wat uit. Naar mijn idee is het erg moeilijk om met (hyper)links (of paden naar een afbeelding) iets te verbergen.
Ni els op 03/06/2014 17:06:26:
maar ik probeer zoveel mogelijk zelfstandig op te lossen. Maar zelfstandig werken, wil nog altijd niet zeggen dat ik daarom geen forums mag raadplegen ;)

Sorry hoor. Vind het allemaal wat vreemd. Je krijgt een opdracht, zonder dat je veel kennis hebt van php/mysql. Dan lijkt het me logisch dat je tijd krijgt om dingen te leren. Zelfstandig werken zou voor mij betekenen dat ik tijd heb om dingen uit te zoeken en zelf op zoek te gaan naar kennis en informatie. Ik heb nog steeds het idee dat je vooral bezig bent met copy/paste en geen idee hebt wat je code eigenlijk doet/zou moeten doen. Zolang het maar werkt. Komt ook door je opmerking:
Ni els op 03/06/2014 10:39:37:
Daarom zou ik het (=foutafhandeling, Obelix) liever aan de kant laten, totdat ik wel snap wat ik aan het doen ben.


Php / mysql(i) leer je niet in een paar uur of paar dagen. Dat kost tijd. Dingen proberen, voorbeelden bekijken, tut's volgen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

03/06/2014 17:25:57
Quote Anchor link
En ook wat doen met opmerkingen die je krijgt, als ik opmerking maak dat een query een volkomen verkeerd resultaat oplevert en ik zie bijna 5 uur later nog steeds hetzelfde, dan vind ik dat zeer vreemd.
 
Ni els

Ni els

03/06/2014 17:26:21
Quote Anchor link
Wel eum, zoals mijn afbeelding bij mij database laat zien, zie je daar 2 dingen staan, 5.jpg en 6.jpg, volgens mijn opdrachtgever moet er een url erachter zitten ofzo, via dat path. Dus ik kwam op het idee om dit te doen:

echo "<img src='".$row['I_PATH' + 'I_ID']."' />";


Ik denk wel dat dit kan kloppen aangezien ik hiermee de naam vna het product te zien krijg bij de niet zichbare afbeelding (als ik kopie url doe bij die afbeelding dan krijg ik dit: http://localhost/DBFact/NWADLIDES-1005D)

Maar hij komt nog altijd uit bij de localhost, wat ik heel raar vind. Misshcien als ik dat fix, dat het kan lukken.

Tjah, ik weet ook niet echt waarom hij ineens iets in php nodig heeft. Maar ik denk dat ik moet bewijzen wat ik waard ben. Idd het is grotendeels copy/paste, maar ik durf wel te zeggen dat ik tot nu toe wel alles snap wat in mijn code staat. Maar om het zomaar uit de losse pols te typen, nee, dat zeker niet. Lezen is altijd gemakkelijker dan zelf schrijven.

Niet cru bedoeld maar idd, zolang het maar werkt, aangezien hij die webpagina donderdag wilt voorstellen. Strakke deadline voor iets waar ik nog geen kaas van heb gegeten. Momenteel heb ik geen tijd genoeg om het rustig aan te leren, ik weet ook dat php veel tijd kost. Dat is met alles zo.

Toevoeging op 03/06/2014 17:27:56:

Ger van Steenderen op 03/06/2014 17:25:57:
En ook wat doen met opmerkingen die je krijgt, als ik opmerking maak dat een query een volkomen verkeerd resultaat oplevert en ik zie bijna 5 uur later nog steeds hetzelfde, dan vind ik dat zeer vreemd.


ik had je opmerking gezien en ik had die ook aangepast, maar ik kreeg toch hetzelfde resultaat, daarom dacht ik van 'ik zet het gewoon terug, omdat ik in bijna overal die methode zag'.
 
Obelix Idefix

Obelix Idefix

03/06/2014 17:48:39
Quote Anchor link
Ni els op 03/06/2014 17:26:21:
Wel eum, zoals mijn afbeelding bij mij database laat zien, zie je daar 2 dingen staan, 5.jpg en 6.jpg, volgens mijn opdrachtgever moet er een url erachter zitten ofzo, via dat path. Dus ik kwam op het idee om dit te doen:

echo "<img src='".$row['I_PATH' + 'I_ID']."' />";

Ik denk wel dat dit kan kloppen aangezien ik hiermee de naam vna het product te zien krijg bij de niet zichbare afbeelding (als ik kopie url doe bij die afbeelding dan krijg ik dit: http://localhost/DBFact/NWADLIDES-1005D)

Ik begrijp echt helemaal niets van wat je hier typt. Alleen al het woordje 'ofzo'. Heb je zelf enig idee wat er gevraagd/gezegd wordt?

Aan I_ID is geen afbeelding gekoppeld, alleen een id (=getal). Kom je niet zo ver mee om een afbeelding te tonen. De naam van een afbeelding staat vermoed ik in I_FILE? Waarom dan niet gebruiken? Waar komt I_PATH vandaan? Zie ik, zo snel, niet in de database staan.
Ik zie wel in I_FILE staan 5.jpg en 6.jpg. Kan me niet voorstellen dat dat de correcte namen zijn van de afbeeldingen.
In de databaste van je collega staan (vermoed ik) in I_FILE heel andere gegevens dan in jouw database.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo "<img src='".$row['I_PATH' + 'I_ID']."' />";

Ik zou me kunnen voorstellen dat dit tot een foutmelding leidt.

Ni els op 03/06/2014 17:26:21:
Maar hij komt nog altijd uit bij de localhost, wat ik heel raar vind. Misshcien als ik dat fix, dat het kan lukken.

Nee, lukt dan nog niet. Is nog steeds geen afbeelding die wordt opgevraagd.

Ni els op 03/06/2014 17:26:21:
Idd het is grotendeels copy/paste, maar ik durf wel te zeggen dat ik tot nu toe wel alles snap wat in mijn code staat. Maar om het zomaar uit de losse pols te typen, nee, dat zeker niet.

Dat je het niet uit de losse pols kunt is begrijpelijk, maar afgaande op je code heb ik echt niet het idee dat je alles begrijpt van wat je copy/paste. Dan zou je bijvoorbeeld begrijpen dat je met je huidige code geen afbeelding laat zien. Dan zou je bijvoorbeeld weten waar I_PATH vandaan komt (en weten waarom localhost wordt gebruikt).

Ni els op 03/06/2014 17:26:21:
Niet cru bedoeld maar idd, zolang het maar werkt, aangezien hij die webpagina donderdag wilt voorstellen. Strakke deadline voor iets waar ik nog geen kaas van heb gegeten.

Niets 'strakke deadline'. Ik vind het onzinnig. Of je krijgt de tijd om iets te kunnen maken wat werkt en wat je begrijpt of je collega moet maar wat maken (die schijnt wel de kennis te hebben). En anders is die deadline onhaalbaar.

Als je het wel uiterlijk donderdag klaar wilt/moet hebben, plaats dan maar een vacature.

Ik voel er weinig voor om ergens tijd in te steken met als enig doel 'zolang het maar werkt'.
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.