Kom ihåg mig?
Home Menu

Menu


MySQL/PHP problem

Ämnesverktyg Visningsalternativ
Oläst 2008-01-27, 18:32 #1
PaLL3 PaLL3 är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 25
PaLL3 PaLL3 är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 25
Jag har ett problem med en query. Jag behöver konvertera info från fält username som är = ett account_id i tabell 2, in i tabell 1 till fältet account_id.
Queryn som jag har änså länge ser ut så här:
Kod:
$query = mysql_query("INSERT INTO tabell 1 (account_id, membership_id, price, accept_after_confirm, cdate, status) VALUES('info_från_tabell2','data1','data2','data3','data4','data5')") or die(mysql_error());
Mitt problem är hur jag gör för att få account_id från tabell 2 att vara lika med account_id i tabell 1, då jag bara har informationen username från tabell 2.

PaLL3
PaLL3 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-27, 20:52 #2
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Din frågeställning är inte glasklar, men jag tolkar den så att du vill att kolumn tabell1.account_id ska innehålla samma värden som kolumn tabell2.account_id och på det sättet knyta ihop informationen i de två tabellerna rad för rad, eller flera rader i en tabell till en rad i den andra tabellen
Gäller det en (1) ny rad kan du skriva insert into tabell1 (fält1,fält2....) values ((select fält1 from tabell2 where något villkor som ger en och endast en rad till svar),värde2,.....).
Alternativt har du värdet i en variabel redan och då skriver du precis som du gjort.
Ska du uppdatera befintliga rader skriver du update tabell1, tabell2 set tabell1.fält=tabell2.fält, .... where tabell1.id_fält=tabell2.id_fält.
Glöm inte unika index eller auto-increment på rätt ställe så att du inte får dubletter av misstag.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-27, 21:00 #3
PaLL3 PaLL3 är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 25
PaLL3 PaLL3 är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 25
Ok ska förklara mig lite bättre.
Jag har en användare som betalar för sitt medlemskap. Jag har namnet på medlemen men inte användarens account_id. Så användarnamnet ska omvandlas till account_id sen ska queryn köras med account_id till databasen.
Så tabell 2 innehåller användarnamn på samtliga medlemmar och konto id (account_id),
och tabell 1 innehåller account_id tillsammans med betalinfo. Så account_id ska föras in från tabell 2 till tabell 1 men den enda informationen jag har av användaren är medlemens namn.

*EDIT* Så det jag behöver förutom en query är antagligen en del php scriptande med.

Kladdigt.. japp, som vanligt när det gäller mina frågor =)


PaLL3
PaLL3 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-27, 22:00 #4
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Hoppas du lagt en unique-index på namn i medlemsdatabasen. Annars kan det bli svårt att veta vilken Kalle Persson som betalt.
Om du ska skapa en ny rad i din andra tabell skriver du:
insert into tabell2 (account_id, fält1,...) select tabell1.account_id, 'värde1', ... from tabell1 where tabell1.user='användarnamn'
Den här frågan missar om det inte finns någon user med användarnamn. Finns det 2 så får båda betalningen tillgodoräknad.
Genom att du lägger värde[n] inom fnuttar letar inte mysql efter någon kolumn med namnet, utan tar värdet rakt upp och ner.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-28, 00:34 #5
PaLL3 PaLL3 är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 25
PaLL3 PaLL3 är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 25
Alla har unika namn. Det går inte att registrera sig med samma nick. Som tur är...
Jag kollade igenom tabellerna igen och såg att jag skrivit fel.
Det ska vara Tabell1 har fältet account_id och tabell2 har fältet id.
Tabell2 har resten av informationen angående användare osv med. Typ lösen, ip mm
Men det som är relevant är nicket på medlemen som finns i fältet user.
Tabell2 user ska omvandlas till tabell2 id som i sin tur ska in i tabell1 account_id.
Enklare än så kan jag inte förklara.. tog mig bara tre inlägg =)

PaLL3
PaLL3 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-28, 09:08 #6
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Redigera den fråga som jag föreslog tidigare så bör det fungera.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-29, 09:51 #7
PaLL3 PaLL3 är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 25
PaLL3 PaLL3 är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 25
Tack för hjälpen.. detta funkade:
Kod:
$query = mysql_query("INSERT INTO tabell1(account_id, membership_id, price, accept_after_confirm, cdate, status) VALUES((SELECT id FROM tabell2 WHERE user = '$infos[1]'),'7','30.00','1',NOW(),'APPROVED')") or die(mysql_error());
PaLL3
PaLL3 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-29, 10:28 #8
PaLL3 PaLL3 är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 25
PaLL3 PaLL3 är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 25
som ett komplement till den förra:
Kod:
$query = mysql_query("UPDATE tabell1, tabell2 SET tabell1.fält1 = tabell2.fält2 WHERE tabell1.fält1=tabell2.fält2") or die(mysql_error());
*EDIT* Någon som blivit hjälpt av detta, tacka Magnus_A =)

PaLL3
PaLL3 är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:20.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017