Hallo allemaal.

Ik heb zoals bijna altijd, een vraagje:
Ik heb een soort marktplaats waar je kan bieden op kleding.
Maar hoe kan ik ervoor zorgen dat een bod niet lager kan zijn dan het laatst geplaatste bod? (ik werkt natuurlijk met mysql databases)
Ja, maar dit is natuurlijk geen juiste controle. Ik neem aan dat je met die eerste query de gegevens van de huidige bieder ophaalt. En ja, natuurlijk heeft die nog geen prijs ingevuld (je eigen controle op regel 4) en dus kun je alle prijzen invullen...

Je moet zodra de ingevulde prijs bekend is in de database controleren of dit wel de hoogste prijs van alle geboden prijzen is. En daar kun je bijvoorbeeld de query van Leroy voor gebruiken...
Om het nog meer waterdicht te maken zou je ook zoiets kunnen doen


SELECT MAX(Prijs) as hoogste FROM Bieden WHERE IDadv = $id;


Dat gaat nog niet werken aangezien je nog steeds alleen de geboden prijs van de huidige adverteerder ophaalt. En die bestaat gewoonweg nog niet.

Gebruik gewoon een query als:

SELECT 
    COUNT(*)
FROM
    tabel
WHERE
    prijs > [geboden prijs]

Waarbij '[geboden prijs]' natuurlijk voor een variabele staat die door de gebruiker ingevuld is.

Vervolgens kun je met de functie mysql_result() de waarde ophalen en controleren of deze 0 is. Als deze 1 of groter is, betekent dat dat er al een hoger bod in de database zit.
Ja, maar of je nou mijn query of de jouwe gebruikt, je moet daarna met PHP nog steeds checken. Bij mij vergelijk je de waarde, bij jouw kijk je of er een record bestaat. Werkt allebei, je zou nog kunnen kijken welke sneller is, maar verder boeit het niet.
ik heb het!:

Ik doe het nu zo:


<?php
    	if($_POST["Prijs"]+0 < $Bieder->Prijs) {
		echo "<b style=\"color:red\">De Prijs moet wel hoger zijn dan het laatste bod!</b><br>";
		$_POST["Prijs"] = ""; $Formulier = true;
	}
?>
Djemo schreef op 10.06.2007 18:58
[quote='niek schreef op 10.06.2007 17:57']omg! Leer netjes scripten iks dee!

<?php
if($Formulier) {
echo 'hooi ... is gedroogd gras! (ofnie Webmakerij)';
}
// spaties na iedere lus. Learn it. Code indenting!
?>


Al vind ík dat ook nog steeds niet netjes.
Mij lijkt..

<?php
if($Formulier)
{
echo '..dit..';
}
?>

..netter. ;)[/quote]

ow em gee
spam
iks dee

Dat ligt eraan. Dat is iedereens eigen keuze.
Maar dit is de standaard:

<?php
    /*
     * Commentaar
     * is
     * rlxt
     * ofnie?
     */
     function spam()
     {
         return 'SPAM!';
     }
     
     echo spam();
     if($mongool->readinguser() == "Boris") {
         echo "Kip";
     } else {
         echo "piK";
     }
     // Dat is dus bij functies wel een enter, en bij ifs op 1 lijn. Zo programmeer
     // ik overigens niet, ik doe alles op 1 lijn. maps spam iks dee iks dee
?>
Arwin schreef op 10.06.2007 19:40
ik heb het!:

Ik doe het nu zo:


<?php
    	if($_POST["Prijs"]+0 < $Bieder->Prijs) {
		echo "<b style=\"color:red\">De Prijs moet wel hoger zijn dan het laatste bod!</b><br>";
		$_POST["Prijs"] = ""; $Formulier = true;
	}
?>


prijs + 0 ????

if(intval($_POST['Prijs']) < $Bieder->Prijs)

Of zijn er ook getallen achter de komma/punt ?
if(floatval($_POST['Prijs']) < $Bieder->Prijs)

Reageren