hallo,

de volgende code gebruik ik om de 3de rij uit een query naar het scherm te schrijven:

<?php echo(mysql_result($res,3,'omschrijving')); ?>


nu mag echter de omschrijving niet langer zijn dan 74 tekens vandaar dat ik het volgende heb gescript:

If (strlen($row['omschrijving']) > 74)
{ $oms = substr($row['omschrijving'],0,74);}
else
{
$oms = $row['omschrijving'];
}


ivm bovenstaande code moet de echo dus ook aangepast worden. dit heb ik op de volgende manier gedaan:

<?php echo(mysql_result($res,3,$oms)); ?>


het rare alleen is, is dat hij nu niet de omschrijving weergeeft maar de positie uit de tabel, dus bijvoorbeel rij 701.

iemand een idee wat er fout is aan deze echo en hoe ik dit op kan lossen ?
Doe eens voor de if constructie een echo van $row['omschrijving']
ja, dan schrijft hij wel netjes de omschrijving naar de pagina,alleen verkort hij hem dan niet.

zonder de if functie werkt het allemaal perfect !!

maar de regels moeten dus verkort worden en op de een of andere manier geeft hij met een variabele in de echo dus het rijnummer weer ipv de omschrijving.

Volgens mij heb je een gedachtenkronkel die ik niet helemaal begrijp ;-)

Het derde veld dat je aan mysql_result() meegeeft, is de veldnaam van je record; 'omschrijving' in dit geval. Wat je ermee wilt bereiken door daar nu $oms neer te zetten, is mij een raadsel.

Je moet juist het resultaat van mysql_result() inkorten:

$oms = mysql_result($res,3,'omschrijving');
$oms = substr($row['omschrijving'],0,74);
echo $oms
Je hoeft niet eerst met strlen() te kijken naar de lengte; substr() houdt daar zelf al rekening mee.
@Willem_vp: Moet dat dan niet zo zijn, want $row bestaat volgens mij niet.
<?php
$oms = mysql_result($res,3,'omschrijving');
$oms = substr($oms,0,74);
echo $oms
?>
SanThe schreef op 23.07.2006 10:57
@Willem_vp: Moet dat dan niet zo zijn, want $row bestaat volgens mij niet.
<?php
$oms = mysql_result($res,3,'omschrijving');
$oms = substr($oms,0,74);
echo $oms
?>

Uiteraard. Ik denk dat Willem_vp mysql_result nooit gebruikt en automatisch $row schrijft :-)
Ik zelf raad het gebruik ook af, omdat je heel snel fouten krijgt. mysql_assoc is het snelste alternatief dat met array-keys werkt.
Nou, ik zal mijn gedachtenkronkel wat beter uitleggen:

in dit geval gaf ik aan dat ik het 3de resultaat van "omschrijving" uit mijn tabel naar het scherm wil schrijven.

Echter moeten ergens anders op de pagina ook andere resultaten naar het scherm geschreven worden, bijvoorbeeld resultaat 1,21,134, 396 etc

Er zit dus geen logica in waardoor een while loop in mijn ogen niet mogelijk is. het mogen namelijk geen random resultaten zijn maar het moeten precies die resultaten zijn die ik van te voren aangeef.

Zonder de "if" functie deed ik dat als volgt:

<?php echo(mysql_result($res,3,'omschrijving')); ?>

de 3 in dit voorbeeld pas ik dan aan adhv het resultaat die ik naar het scherm wil schrijven. Wil ik dus resultaat 176 naar het scherm schrijven dan doe ik dat als volgt :

<?php echo(mysql_result($res,176,'omschrijving')); ?>


Tot zover werkt alles dus prima, maar indien ik de "if" functie toevoeg werkt het dus niet meer !!!

in jullie reacties staat elke keer : echo $oms

maar dit werkt alleen goed indien je een loop gebruikt, echter de resultaten die ik naar het scherm wil schrijven liggen dus al vast, dus moet het naar mijn mening iets worden als:

<?php echo(mysql_result($res,3,$oms)); ?>

Dit werkt echter niet helemaal omdat hij nu dus het rijnummer weergeeft bij $oms ipv de omschrijving.

Maar ik hoop dat ik nu een beetje duidelijk ben geweest met hetgeen ik wil bereiken





Ikzelf gebruik ook nooit mysql_result(). Ik gebruik altijd [php]mysql_fetch_object()[/php] of [php]mysql_fetch_array()[/php]. Ik vind die véél handiger.
ik zal dat eens proberen, maar op zich mag dat geen verschil uitmaken naar mijn mening.

maar heeft iemand nog een suggiest hoe ik het eea goed naar het scherm kan schrijven ?
Robin schreef op 23.07.2006 13:39
ik zal dat eens proberen, maar op zich mag dat geen verschil uitmaken naar mijn mening.


Zie mijn MySQL performance test
mysql_fetch_object is het traagst, mysql_fetch_assoc het snelst (voor een associatieve array)
Robin schreef op 23.07.2006 12:02
Nou, ik zal mijn gedachtenkronkel wat beter uitleggen:

in dit geval gaf ik aan dat ik het 3de resultaat van "omschrijving" uit mijn tabel naar het scherm wil schrijven.

Echter moeten ergens anders op de pagina ook andere resultaten naar het scherm geschreven worden, bijvoorbeeld resultaat 1,21,134, 396 etc

Er zit dus geen logica in waardoor een while loop in mijn ogen niet mogelijk is. het mogen namelijk geen random resultaten zijn maar het moeten precies die resultaten zijn die ik van te voren aangeef.

Even voor de duidelijkheid: gaat het er om dat je de zoveelste rij uit een tabel wilt laten zien, of wil je de zoveelste kolom van een record laten zien?

Reageren