[PHP] hoe opsolgende nr`s met letter?

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

  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 12:54
Ik wil een soort php pagina maken met een database erachter voor kabels.

Kabels moeten toegevoeg en verwijderd worden een aangepast.
Dit alles lukt me wel al ben ik een grote LEEK op het gebied van PHP.
Nu wil het het zo maken dat bij het toevoegen de volgende velden ingevuld moet worden:

Omschrijving (gewoon text)
MERK (in dropdown)
Kabel nr.: (DIT is het probleem zie hieronder)
opmerking (gewoon een texje)

Het probleem wat ik heb is dat we ooit hebben vastgesteld dat kabel bepaalde nummers mee krijgen.
Wij hebben 4 la`s de eerste la is het merk siemens.

Siemens heeft de nummers S1 tot S99

De 2de la is allen bradley en heeft de nummer A100 tot A199

De 3de la is diverse en heeft de numemrs D200 tot D299

En de 4de la is overige en het de nummers O300 tot 399.

Ik wil dus als ik bij merk in het dopdown menu een merk kies dat er automatich het eerstvolgende vrije kabel nummer berschijnt MET dat S,A,D of O nummer ervoor in het kabel nr. VELD.


Hoe doe ik zo iets?

  • Four
  • Registratie: Oktober 2001
  • Niet online

Four

I void warranty

als je nou de ASCII waarde van de letter gebruikt, vervolgens op deze waarde sorteert.

(moet er wel bij zeggen dat ik GEEN brood van PHP op heb en niet weet of de ASCII waarde ergens in PHP op te zoeken is, maar neem aan van wel ;))

dwyslexy != luiheid !! Taalpuristen sla uw slag


  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 12:54
Dat gaat me al boven metpet wat je nu zegt, ik heb meer richting nodig om zoiets te maken.

  • Calamor
  • Registratie: Oktober 2004
  • Laatst online: 13:57
je kan toch gewoon de waardens aan elkaar plakken "(kabel)=(merk).(nummer)".

[ Voor 13% gewijzigd door Calamor op 18-04-2006 08:16 ]


  • Obliterator
  • Registratie: November 2000
  • Laatst online: 18-02 16:34
Als het kabelnummer automatisch ingevuld wordt, waarom zou je er dan nog een invoer veld van maken. Dat maakt de boel alleen maar ingewikkelder. Je moet namelijk na het selecteren van het merk eerst nog een query uitvoeren om het hoogste nummer te vinden. Of je moet bij elke invoeging voor alle vier de merken van te voren het hoogste nummer bepalen (maar dat kan weer fout gaan als meerdere mensen tegelijk kabels invoeren).

  • NoFearWizz
  • Registratie: Oktober 2002
  • Laatst online: 13:45
het beste is om van elk merk het laatste nummer op te halen.
dus:
PHP:
1
2
3
4
5
6
7
8
mysql_query("SELECT kabel_nr FROM kabels WHERE kabel_nr LIKE "S%" ORDER BY kabel_nr DESC LIMIT 1");  // Siemens kabels laatste nummer

mysql_query("SELECT kabel_nr FROM kabels WHERE kabel_nr LIKE "A%" ORDER BY kabel_nr DESC LIMIT 1");  // Allen Bradley


mysql_query("SELECT kabel_nr FROM kabels WHERE kabel_nr LIKE "D%" ORDER BY kabel_nr DESC LIMIT 1");  // Diverse kabels

mysql_query("SELECT kabel_nr FROM kabels WHERE kabel_nr LIKE "O%" ORDER BY kabel_nr DESC LIMIT 1");  // Overige


Daarna split je het kabel nummer dus je haalt de linker letter eraf. dan tel je 1 op bij het getal en plak ze weer aan elkaar

Dit blok herhaal je per mysql_query() uitkomst en sla je appart op
PHP:
1
2
3
4
5
$cijfer = substr(kabel_nr, 1);       // De cijfers uit kabel_nr
$letter = substr(kabel_nr, 0 ,1);   // De letter uit kabel_nr
$cijfer = $cijfer + 1;                     // Cijfers met 1 verhogen

$totaal = $letter.$cijfer                // Letter en cijfers weer aan elkaar plakken


en die sla je op in een javascript array. en op het moment dat er een merk gekozen word kan je het laatste kabelnummer van dat merk in laten vullen in het kabelnummer veld

hoop dat je zo iets verder komt?

[ Voor 24% gewijzigd door NoFearWizz op 18-04-2006 08:32 . Reden: php code opschonen ]


  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 12:54
k maar kan iemand een klein voorbeel pphp scripje laten zien hoe dat werkt?
Maar dan zeg jij (merk) maar dat mag alleen maar de eerste leteer zijn van dat merk dat ik in het dropdown menu erboven heb gekozen. Hoe doe ik dat?


edit: o ik zie een script ff kijken of ik er wat van kan bakken was te snel met mijn reactie.

Ik den kdat ik een heel eind ga komen met deze informatie, bedankt.

Wat bedoel je met javascript arrar? of moet ik daar niet op letten en moet ik het kunnen met deze bovenstaande php scripts?

[ Voor 43% gewijzigd door eatualive op 18-04-2006 08:34 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:23

André

Analytics dude

WEB -> PRG

  • NoFearWizz
  • Registratie: Oktober 2002
  • Laatst online: 13:45
eatualive schreef op dinsdag 18 april 2006 @ 08:29:
k maar kan iemand een klein voorbeel pphp scripje laten zien hoe dat werkt?
Maar dan zeg jij (merk) maar dat mag alleen maar de eerste leteer zijn van dat merk dat ik in het dropdown menu erboven heb gekozen. Hoe doe ik dat?


edit: o ik zie een script ff kijken of ik er wat van kan bakken was te snel met mijn reactie.

Ik den kdat ik een heel eind ga komen met deze informatie, bedankt.

Wat bedoel je met javascript arrar? of moet ik daar niet op letten en moet ik het kunnen met deze bovenstaande php scripts?
je maakt bijvoorbeeld een javascript functie in je <head></head>

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script>
function getNumber(merk){
    if (merk == "Siemens"){
        document.formulier.kabel_nr.value = "<?php $totaal1 ?>"
    }
    elseif (merk == "allen bradley"){
        document.formulier.kabel_nr.value = "<?php $totaal2 ?>"
    }
    elseif (merk == "diverse"){
        document.formulier.kabel_nr.value = "<?php $totaal3 ?>"
    }
    elseif (merk == overige"){
        document.formulier.kabel_nr.value = "<?php $totaal4 ?>"
    }
}
</script>


totaal1 t/m 4 komen uit de php code die die doorloopt per mysql_query()

deze functie roep je aan bij
code:
1
onchange="getNumber(document.merk.options[merk.selectedIndex].value)"

denk dat je zo wel weer wat verder komt

[ Voor 10% gewijzigd door NoFearWizz op 18-04-2006 08:43 ]


  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 12:54
K heel erg bedankt ik zal eens gaan bakken, het zal wel een paar uurtjes duuren voordig het me gelukt is om het snappen omdat ik dit zelden doe maar als ik mijn complete php script heb post ik het wel ff.

En mischien kom ik er niet uit dan zul je ook wel het script zien verschijnen.


Alvast heeel erg bedankt voor dit gedeelte.

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 09-12-2025
Die query kan ook sneller:
SQL:
1
2
3
SELECT CONCAT(SUBSTRING(MAX(kabel_nr), 1, 1), SUBSTRING(MAX(kabel_nr), 2) + 1) AS totaal
FROM kabels
WHERE kabel_nr LIKE "S%"

Iets complexere query, maar dan kun je de bewerking in php achteraf achterwege laten.

[ Voor 4% gewijzigd door Michali op 18-04-2006 10:05 ]

Noushka's Magnificent Dream | Unity


  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 12:54
waar of hoe moet ik die onchange plaatsen?

als ik in de dropdown dadelijk ga selecteren dan moet hij in het volgende textvak het goede opvolgende nummer weergeven?

  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 12:54
Hoe moet ik dit bovenste scriptje erin verwerken?
als ik het zo doe (klopt natuurlijk niet) krijg ik de volgende fout

Parse error: parse error, unexpected T_STRING

code:
1
2
mysql_query("SELECT CONCAT(SUBSTRING(MAX(kabel_nr), 1, 1), SUBSTRING(MAX(kabel_nr), 2) + 1) AS totaal 
FROM kabels WHERE kabel_nr LIKE "S%" ORDER BY kabel_nr DESC LIMIT 1");  // Siemens kabels laatste nummer

[ Voor 16% gewijzigd door eatualive op 18-04-2006 11:51 ]


  • WvdWest
  • Registratie: Augustus 2002
  • Niet online
Maak er eens van
PHP:
1
2
mysql_query("SELECT CONCAT(SUBSTRING(MAX(kabel_nr), 1, 1), SUBSTRING(MAX(kabel_nr), 2) + 1) AS totaal 
FROM kabels WHERE kabel_nr LIKE 'S%' ORDER BY kabel_nr DESC LIMIT 1");  // Siemens kabels laatste nummer

I'm not a complete idiot - several parts are missing.


  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 12:54
Dit is wat ik nu heb, hoe link ik mijn dropdown menu waardes aan de codes en hoe laat ik dan het goede numemr verschijnenn in de input box?
PHP:
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
51
52
53
<HTML>
<HEAD>
<script>
function getNumber(merk){
    if (merk == "Siemens"){
        document.formulier.kabel_nr.value = "<?php $totaal1 ?>"
    }
    elseif (merk == "Allen bradley"){
        document.formulier.kabel_nr.value = "<?php $totaal2 ?>"
    }
    elseif (merk == "Diverse"){
        document.formulier.kabel_nr.value = "<?php $totaal3 ?>"
    }
    elseif (merk == "Overige"){
        document.formulier.kabel_nr.value = "<?php $totaal4 ?>"
    }
}
</script>

</HEAD>

<body>
<?
//Database connectie
include "connection.php";

  echo"<TD><span class=style2>Merk: <TD><select name=merk>"; //Dropdown menu die gelinkt moet worden aan scripts
  echo"<option value=1>Siemens</option>";
  echo"<option value=2>Allen bradley</option>";
  echo"<option value=3>Diverse</option>";
  echo"<option value=4>Overige</option>";
  echo"</select><TR>";
  echo"<BR>";
  echo"<TD>Kabel nr.:<TD>";
  echo"<INPUT NAME=kabel_nr size=10 maxlength=4>"; //input box waar goede numemr zou moeten verschijnen

mysql_query("SELECT CONCAT(SUBSTRING(MAX(kabel_nr), 1, 1), SUBSTRING(MAX(kabel_nr), 2) + 1) AS totaal1  
FROM kabels WHERE kabel_nr LIKE 'S%' ORDER BY kabel_nr DESC LIMIT 1");  // Siemens kabels laatste nummer 


mysql_query("SELECT CONCAT(SUBSTRING(MAX(kabel_nr), 1, 1), SUBSTRING(MAX(kabel_nr), 2) + 1) AS totaal2  
FROM kabels WHERE kabel_nr LIKE 'A%' ORDER BY kabel_nr DESC LIMIT 1");  // Allen bradley kabels laatste nummer 

mysql_query("SELECT CONCAT(SUBSTRING(MAX(kabel_nr), 1, 1), SUBSTRING(MAX(kabel_nr), 2) + 1) AS totaal3  
FROM kabels WHERE kabel_nr LIKE 'D%' ORDER BY kabel_nr DESC LIMIT 1");  // Diverse kabels laatste nummer 


mysql_query("SELECT CONCAT(SUBSTRING(MAX(kabel_nr), 1, 1), SUBSTRING(MAX(kabel_nr), 2) + 1) AS totaal4  
FROM kabels WHERE kabel_nr LIKE 'O%' ORDER BY kabel_nr DESC LIMIT 1");  // Overige kabels laatste nummer 

?>
</body>
</HTML>

[ Voor 124% gewijzigd door eatualive op 18-04-2006 12:16 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 11:39

Creepy

Tactical Espionage Splatterer

eatualive schreef op dinsdag 18 april 2006 @ 12:03:
Dit is wat ik nu heb, hoe link ik mijn dropdown menu waardes aan de codes en hoe laat ik dan het goede numemr verschijnenn in de input box?
Eeh, het is natuurlijk wel de bedoeling dat je zelf het 1 en ander uitzoekt he :) We zijn er hier niet om je bij elke vraag/foutmelding die jij krijgt je direct van een oplossing te voorzien.

Voor elke vraag die je hier wilt stellen geld dat we er vanuit gaan dat je eerst zelf probeert een oplossing te verzinnen en indien dat niet lukt dat je ook aangeeft welke zaken je nu al hebt geprobeerd en wat daar niet mee lukt.

Met alle tips en hints denk ik dat je wel in staat moet zijn om zelf tot een oplossing te komen. Indien dat niet lukt dan kan je een nieuwe topic openen waarin je ook vermeld wat je nu al hebt geprobeerd en wat daar niet mee lukt. Let ook op Programmaing Beleid - Quickstart.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.