[PHP] waarden toekennen aan gegevens uit mysql

Pagina: 1
Acties:
  • 54 views sinds 30-01-2008

  • Waterspout
  • Registratie: November 2006
  • Laatst online: 10-03-2021
Hoi,
ik ben bezig met een puntentelling dat gekoppeld moet worden aan een formulier. De formuliergegevens worden opgeslagen in een mysql database. Nu wil ik aan de gegevens die ik uit de database haal (met fetch array) een punt toekennen. Zodat ik na 10 verschillende punten een cijfer kan berekenen.

Ik krijg bijvoorbeeld bij de variabele $onweer: meerdantientontladingen
maar $onweer kan ook: 'geen' zijn. En verder nog 2 mogelijkheden bij $onweer.

Mijn vraag nu, hoe kan ik bijv. 5 punten toekennen als $onweer: meerdan10ontladingen is
en als $onweer: meerdan20ontladingen is, bijvoorbeeld 10 punten toekennen. Deze gegevens haal ik dus uit de mysql velden.

Zo heb ik nog enkele andere gegevens, zoals hagel, windstoten, wolkbreuk. Als ik eenmaal weet hoe ik een punt kan toekennen aan hetgeen ik uit de database haal, kan ik alle cijfers optellen om een totaal som te krijgen.

Ik heb al geprobeerd om $onweer in een array te zetten met de mogelijkheden. En daarna echoen om te zien of ik waardes kan vergelijken. Maar lukt me maar niet.

Wie kan me voorzetje geven, want ik zit hier al weken mee te dubben.

Alvast bedankt voor het meedenken :)
Waterspoutje

  • mithras
  • Registratie: Maart 2003
  • Niet online
Waterspout schreef op woensdag 13 juni 2007 @ 15:12:
Hoi,
ik ben bezig met een puntentelling dat gekoppeld moet worden aan een formulier. De formuliergegevens worden opgeslagen in een mysql database. Nu wil ik aan de gegevens die ik uit de database haal (met fetch array) een punt toekennen. Zodat ik na 10 verschillende punten een cijfer kan berekenen.
Dit is een standaard php/mysql combinatie. Lees http://php.net/mysql er eens op door :)
Ik krijg bijvoorbeeld bij de variabele $onweer: meerdantientontladingen
maar $onweer kan ook: 'geen' zijn. En verder nog 2 mogelijkheden bij $onweer.

Mijn vraag nu, hoe kan ik bijv. 5 punten toekennen als $onweer: meerdan10ontladingen is
en als $onweer: meerdan20ontladingen is, bijvoorbeeld 10 punten toekennen. Deze gegevens haal ik dus uit de mysql velden.
Als je gewoon met integers kan je een switch opzetten in php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
switch($number){
  case >20:
    $multiplier = 10;
    break;
  case > 10:
    $multiplier = 5;
    break;
  default:
    $multiplier = 1;
  }
$result = $number * $multiplier;
Zo heb ik nog enkele andere gegevens, zoals hagel, windstoten, wolkbreuk. Als ik eenmaal weet hoe ik een punt kan toekennen aan hetgeen ik uit de database haal, kan ik alle cijfers optellen om een totaal som te krijgen.

Ik heb al geprobeerd om $onweer in een array te zetten met de mogelijkheden. En daarna echoen om te zien of ik waardes kan vergelijken. Maar lukt me maar niet.

Wie kan me voorzetje geven, want ik zit hier al weken mee te dubben.

Alvast bedankt voor het meedenken :)
Waterspoutje
Het gaat hier niet om scriptrequests hoop ik. Wat heb je zoal geprobeerd waar je niet uit kwam. Met een genormaliseerde database en de kennis die je put uit de documentatie moet je al ver komen lijkt me :)

  • Ciqniz
  • Registratie: Oktober 2002
  • Laatst online: 07-09-2023

Ciqniz

On the move...

Waterspout schreef op woensdag 13 juni 2007 @ 15:12:
Ik krijg bijvoorbeeld bij de variabele $onweer: meerdantientontladingen
maar $onweer kan ook: 'geen' zijn. En verder nog 2 mogelijkheden bij $onweer.
Als het gaat om, "minder dan 5 ontladingen", "meer dan 5 ontladingen maar minder dan 10" en "meer dan 10 ontladingen" om je code leesbaarder te maken en dan 1, 2 en 3 of 1, 5 en 10 punten daar aan toe te kennen is ENUM je vriend!

Verwijderd

Als je alles uiteindelijk toch wil optellen kan je toch zoiets doen als:

if $onweer == "meerdan20ontladingen"
{
aantal+=5;
}
else
{
aantal+=1;
}

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 01:41

MueR

Admin Devschuur® & Discord

is niet lief

Misschien lichtelijk offtopic, maar een tijdje geleden heb je hier ook al een topic over gestart, toen omdat je de waarden vanuit je form niet goed binnenkreeg, mede door slecht gebruik van html.

Toen werdt je door CodeCaster aangeraden om je database goed in te richten, bijvoorbeeld door gebruik te maken van numerieke waarden. In plaats van 'meerdantienontladingen' in een VARCHAR in je database te zetten, gewoon '10' in een (TINY)INT veld. Dan zat je nu niet met dit probleem.

Niet om bot te zijn, maar als je toen al niet wilde luisteren naar goed advies, waarom zou je dat nu wel doen?

Zet je database gewoon goed op. Je slaat een geboortedatum toch niet op als 'Een Januari Negentienvierenzeventig', maar als '1974-01-01'?

Anyone who gets in between me and my morning coffee should be insecure.


  • Janoz
  • Registratie: Oktober 2000
  • Nu online

Janoz

Moderator Devschuur®

!litemod

Ik kan me eigenlijk alleen maar bij hierboven aansluiten. Het lijkt me handiger wanneer je dit project maar even weglegt en je eens een paar tutorials gaat doornemen. Dit soort handelingen zijn erg basic. Je loopt nu tegen problemen aan waar je in je vorige topic al voor gewaarschuwd bent. Het enige wat je toen gedaan hebt is net zo lang prutsen tot het toen werkte. Gezien je problemen nu heb je eigenlijk niks gedaan met de overige opmerkingen in je vorige topic. Ik ben er dan ook niet van overtuigd dat je dat in dit topic ineens wel gaat doen en zie daarom dan ook weinig heil in weer een bij het handje neem topic dat waarschijnlijk op niks uit gaat lopen.

Zoals ik aan het begin al aangaf. Doe een tutorial en probeer wat en begin dan even opnieuw met je onweer applicatie, maar doe het deze keer dan gelijk goed ipv dat je fout op fout stapelt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.