[MySQL] Prijzen invoeren + aanpassen in database

Pagina: 1
Acties:
  • 216 views sinds 30-01-2008
  • Reageer

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 10:29

mydogisgone

Watskeburtwithmydog

Topicstarter
Ik heb nu een database voor mijn website met een tabel genaamd producten.
Hierin staan al mijn producten mijn de naam, beschrijving, prijs, marge, afbeeldinglink en bestel nr.
Nu heb ik via het programma Navicat een XLS prijslijst ingevoerd.
Dat wil prima en werkt verder goed.
Maar als ik nu een week later een nieuwe prijslijst krijg wil ik graag de prijzen bijwerken. Maar nu weet ik zelf niet hoe ik dat met Navicat voor elkaar moet krijgen.
Hij vervangt de producten niet maar maakt gewoon complete nieuwe rijen aan.

Nu wil ik aan de hand van de het Bestel nr van het product de prijzen vergelijken en als deze anders zijn op de prijslijst, dat ze dan ook aangepast worden.
zo niet dan mag de tabel verder gewoon zo blijven als hij is.
Hij hoeft dan ook alleen aan de hand van het best nr de prijs aanpassen en rest dus intact houden.
Nu heb ik een aantal programma's geprobeerd maar krijg het er niet mee voor elkaar.

Maar ik neem aan dat hier meer tweakers zijn geweest die zoiets in gebruik hebben en daarmee hun prijzen kunnen aanpassen binnen hun website.
Wie weet een goede oplossing want ik kom er nu niet echt meer uit en met de hand aanpassen is echt GEEN werk!

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Uit de manual:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
Let vooral op het dikgedrukte stukje tekst. ;) Ik ken Navicat niet, maar ergens zul je je INSERT query's aan moeten gaan passen zodat ze een update uitvoeren als het record al bestaat. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 12:12
Als je het makkelijk wil doen dan verwijder je gewoon elke week de items en voeg je de nieuwe lijst toe. Dat is niet efficient enzo, maar aangezien je toch maar 1x per week aan het klooien gaat met een spreadsheet zul je het verschil in performance waarschijnlijk niet merken.

Voor wat betreft de eigenlijke vraag is er de tip van -NMe-, MySQL kent een functie om INSERT actie om te zetten in UPDATE als de primary key al bestaat. In veel gevallen wil je echter iets meer omdat synchroniseren niet alleen bestaat uit het invoeren van de nieuwe data, maar ook uit het verwijderen van overbodig geworden data.
In een programma zou ik persoonlijk:
1. alle bestelnummers ophalen uit de DB
2. de intersectie van bestelnummers uit de DB en die in de spreadsheet updaten in de DB
3. de bestelnummers uit de spreadsheet die niet in de DB stonden toevoegen aan de DB
4. de bestelnummers uit de DB die niet in de spreadsheet stonden verwijderen.
Hoe je dat doet in Navicat geen flauw idee...

Regeren is vooruitschuiven


  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 10:29

mydogisgone

Watskeburtwithmydog

Topicstarter
tjah ik wil dat eigenlijk gescheiden houden van het HTML/PHP gedeelte.
Ik wil dit gewoon op mijn localhost kunnen bijwerken met een programma!
Dus eigenlijk niet een eigen stukje code maar gewoon een tooltje wat mijn moeder ook snapt.
Want die moet er tenslotte mee om gaan en ja ik weet niet hoe ik zoiets uit een XLS bestand moet halen.
Heb gelezen van komma gescheiden bestanden maken maar goed.
Ik ga liever voor de kant en klare oplossing.
En het verwijderen van alle producten is geen oplossing omdat ik in de db neer zet waar elk bestand moet komen te staan.
Dus in welke categorie hij thuis hoort zeg maar.

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Als je een programma wil dat het voor je oplost dan zul je dat zelf moeten schrijven. Je hebt specifieke eisen met een specifieke tabelopmaak en specifieke acties die ondernomen moeten worden op duplicaten van bepaalde velden. Kant en klaar zul je daar niets voor vinden, en zelfs als zoiets al kant en klaar bestaat, dan heeft dat niets met programmeren te maken en zit je hier in het foute subforum. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 10:29

mydogisgone

Watskeburtwithmydog

Topicstarter
oke, maar ik wist niet waar ik het anders moet posten, het enigste waar het mij om gaat is dat het de oude records gewoon aanpast.
Verder doethet programma alles wat ik wil.

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O

Pagina: 1