Update query 2 velden in een rij

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • RobbyTown
  • Registratie: April 2007
  • Niet online
We gaan een personeelsfeest houden op het werk. Nu leek de persoon die het organiseerde enorm leuk om het via een ticket systeem aan te melden (zodat je naar een echt festival gaat)

Website gemaakt in wordpress en zelf een simpel 'eticket' systeem gemaakt.
Structuur
Naam / Land / Datum aanmelding / Barcode1 / Checktin_b1 / Barcode2 / Checktin_b2

Barcode1 is standaard ingevuld (medewerker), barcode2 kan leeg zijn als je namelijk niemand mee neemt.

Echter moet er nu ook een soort checkin komen als mensen zich met het ticket bij de poort melden. Ivm brand en ook voor stats wie wel of niet is gekomen.

Bliep barcode word ingevuld in een form (veldnaam barcode) Checktin_b1 of Checktin_b2 word geupdate naar status 1 (0 is niet ingecheckt)

Nu zit ik met 1 probleem hoe fix ik die update query? Mensen kunnen niet zien of het nu barocde1 of 2 is. Ik heb geen flauw idee hoe ik nu bepaal als ik nu barcode 1 of 2 scan en dan barcode 1 of 2 update naar checktin = 1

Als ik 1 barcode had gehad was veldnaam niet het probleem geweest |:( .

Heb nu dit aan code maar dat gaat hem niet worden, update werkt nu maar op 1 veld

ik moet iets kunnen dat ik vanaf de select bepaal dat het om sleutel1 of sleutel2 is. Alleen ik heb geen flauw idee hoe.
code:
1
2
3
4
5
6
    $barcode_zoek=$_POST['barcode_zoek'];
    mysql_query("SELECT sleutel1, sleutel2 FROM igo_reg_test WHERE sleutel1 LIKE '%".$barcode_zoek."%' OR sleutel2  LIKE '%".$barcode_zoek."%'") or die(mysql_error()); 
mysql_query("UPDATE igo_reg_test SET checktin_s1 = '1' WHERE sleutel1 = '".$barcode_zoek."'") or die(mysql_error());
mysql_query("UPDATE igo_reg_test SET checktin_s2 = '1' WHERE sleutel2 = '".$barcode_zoek."'") or die(mysql_error());

echo "Updated data successfully\n";

[ Voor 10% gewijzigd door RobbyTown op 09-04-2015 11:01 ]

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe


Acties:
  • 0 Henk 'm!

  • Mint
  • Registratie: Mei 2005
  • Laatst online: 12-10 21:56
Waarom maak je niet een setup waarbij je in je database 1 barcode per entry hebt, met een column 'partner_id' of iets dergelijks die verwijst naar een andere record in diezelfde tabel? Wanneer partner_id gevuld is, is het aanhang en zo niet, dan is het een collega.

Zo voorkom je onnodig lastig gedoe. :)

Acties:
  • 0 Henk 'm!

  • RobbyTown
  • Registratie: April 2007
  • Niet online
Mint schreef op donderdag 09 april 2015 @ 10:48:
Waarom maak je niet een setup waarbij je in je database 1 barcode per entry hebt, met een column 'partner_id' of iets dergelijks die verwijst naar een andere record in diezelfde tabel? Wanneer partner_id gevuld is, is het aanhang en zo niet, dan is het een collega.

Zo voorkom je onnodig lastig gedoe. :)
Klopt daar kom ik achteraf nu ook achter. Alleen nu 400+ records verder is er geen weg meer terug 8)7.

Daarnaast was er ook tijdnood (ben niet echte pro in code maken beetje basis aanpassing en insert lukt nog wel). Diende ook nog te kunnen worden geëxporteerd om zo de barcodes te kunnen maken. alles in 1 database was de snelste en makkelijkste optie.

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe


Acties:
  • 0 Henk 'm!

  • Mint
  • Registratie: Mei 2005
  • Laatst online: 12-10 21:56
In dat geval is het denk ik het makkelijkste om een kolom toe te voegen, iets als 'barcode2_checkedin' (en de andere kolom hernoemen naar 'barcode1_checkedin'). Het is niet bepaald ideaal, maar dan heb je wel een oplossing waar je een query voor kunt bouwen.

Acties:
  • 0 Henk 'm!

  • RobbyTown
  • Registratie: April 2007
  • Niet online
Mint schreef op donderdag 09 april 2015 @ 11:05:
In dat geval is het denk ik het makkelijkste om een kolom toe te voegen, iets als 'barcode2_checkedin' (en de andere kolom hernoemen naar 'barcode1_checkedin'). Het is niet bepaald ideaal, maar dan heb je wel een oplossing waar je een query voor kunt bouwen.
Die velden zijn er nu, alleen ik weet niet hoe ik dan bepaal dat veld: barcode1_checkedin update naar 1 of veld barcode2_checkedin update naar 1

barcode1_checkedin
barcode2_checkedin

Standaard waarde 0 = nog niet ingecheckt.

Ik maar 1 barcode veld om te scannen (ik kan namelijk niet op het papiertje zien als het nu barcode1 of barcode2 is)

Als het gescant is moet ergens in de query bepaald worden dat de code ziet hey dit is barcode2, van die persoon dan komt de update query barcode2_checkedin = 1

Heb mogelijk wat omslachtig maar goed
Eerst sleutel1 scannen komt hij daar niet in voor dan opzoek in sleutel2

barcode==sleutel

[ Voor 7% gewijzigd door RobbyTown op 09-04-2015 11:31 ]

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe


Acties:
  • 0 Henk 'm!

  • w.l
  • Registratie: Mei 2007
  • Laatst online: 31-05 23:40

w.l

Onderstaande code zou voldoende moeten zijn lijkt me voor een stuk code dat maar 1 avond gebruikt wordt. Ik ga ervan uit dat een barcode een exacte waarde is dus werken met %LIKE% is overbodig.

Let wel op dat mysql deprecated is vanaf php5.5. Overweeg dus om gebruik te maken van msqli of pdo.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$barcode_zoek = mysql_real_escape_string($_POST['barcode_zoek']);

mysql_query("UPDATE igo_reg_test SET checktin_s1 = '1' WHERE Barcode1 = '".$barcode_zoek."' AND checktin_s1 = '0'") or die(mysql_error());
if (mysql_affected_rows() == 1) {
    echo "Updated checktin_s1 successfully\n";
} else {
    mysql_query("UPDATE igo_reg_test SET checktin_s2 = '1' WHERE Barcode2 = '".$barcode_zoek."' AND checktin_s2 = '0'") or die(mysql_error());
    if (mysql_affected_rows() == 1) {
        echo "Updated checktin_s2 successfully\n";
    } else {
        echo "Update failed\n";
    }
}

Acties:
  • 0 Henk 'm!

  • RobbyTown
  • Registratie: April 2007
  • Niet online
w.l schreef op donderdag 09 april 2015 @ 11:33:
Onderstaande code zou voldoende moeten zijn lijkt me voor een stuk code dat maar 1 avond gebruikt wordt. Ik ga ervan uit dat een barcode een exacte waarde is dus werken met %LIKE% is overbodig.

Let wel op dat mysql deprecated is vanaf php5.5. Overweeg dus om gebruik te maken van msqli of pdo.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$barcode_zoek = mysql_real_escape_string($_POST['barcode_zoek']);

mysql_query("UPDATE igo_reg_test SET checktin_s1 = '1' WHERE Barcode1 = '".$barcode_zoek."' AND checktin_s1 = '0'") or die(mysql_error());
if (mysql_affected_rows() == 1) {
    echo "Updated checktin_s1 successfully\n";
} else {
    mysql_query("UPDATE igo_reg_test SET checktin_s2 = '1' WHERE Barcode2 = '".$barcode_zoek."' AND checktin_s2 = '0'") or die(mysql_error());
    if (mysql_affected_rows() == 1) {
        echo "Updated checktin_s2 successfully\n";
    } else {
        echo "Update failed\n";
    }
}
Thnx nice code. Van jou ziet er een stukje beter uit dan mijn gemaakte knutsel versie
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
    $barcode_zoek = $_POST['barcode_zoek'];
        
    $sql = mysql_query("SELECT sleutel1, sleutel2, sleutel3 FROM igo_reg_test WHERE sleutel1 LIKE '%".$barcode_zoek."%'") or die(mysql_error());
    $row = mysql_fetch_assoc($sql);
    
    if ($row["sleutel1"] == $barcode_zoek) 
    {
        mysql_query("UPDATE igo_reg_test SET checktin_s1 = '1' WHERE sleutel1 = '".$barcode_zoek."'") or die(mysql_error());
    }
    else
    {
        mysql_query("UPDATE igo_reg_test SET checktin_s2 = '1' WHERE sleutel2 = '".$barcode_zoek."'") or die(mysql_error());
    }

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe


Acties:
  • 0 Henk 'm!

  • Kalin848
  • Registratie: November 2005
  • Laatst online: 21-08 10:56
Volgens mij moet dit ook werken.....

code:
1
2
3
4
5
6
7
mysql_query("
UPDATE igo_reg_test
SET 
  checktin_s1 = (case when sleutel1 like '%".$barcode_zoek."%' then '1' else checktin_s1 end),
  checktin_s2 = (case when sleutel2 like '%".$barcode_zoek."%' then '1' else checktin_s2 end)
WHERE sleutel1 like '%".$barcode_zoek."%' or sleutel2 like '%".$barcode_zoek."%'
") or die(mysql_error)
Pagina: 1