[php] Queries werken wel, maar niet met PHP*

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mjah dit is waarschijnlijk ergens een erg domme fout maar ik ben ruim 2jaar niet bezig geweest met php/mysql en voor ik mezelf dieper in de problemen werk wil ik toch even peilen of ik niet ergens over een domme fout heen kijk (even een 2e blik nodig dus)

alvast sorry als dat hier niet gewenst is! :)

Doel
Gebruikers uit joomla in phplist mikken (cms > mass-mailer)

Structuur
Joomla en PHPlist draaien op dezelfde server maar in gescheiden databases

Code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

// Geforceerd connecten met JoomlaDB
$joomladb = mysql_connect('localhost', 'gebruiker1', 'wachtwoord1', true);
mysql_select_db('joomla', $joomladb);

// Geforceerd connecten met phplist Database
$phplistdb = mysql_connect('localhost', 'gebruiker1', 'wachtoord1', true);
mysql_select_db('phplist', $phplistdb);

// Vraag alle emailadressen op uit de joomla usertabel die gereristeerd zijn in de groep Registered
$result = mysql_query('SELECT * FROM `joomla_users` WHERE `confirmed` = "Registered"', $joomladb);
while ($row = mysql_fetch_assoc($result))
{
      // Voeg de emailadressen toe aan PHPlist met confirmed op 1 en disabled op 0
      mysql_query('INSERT INTO `phplist_user_user` (email, confirmed, disabled) VALUES (".$row.", "1", "0")', $phplistdb);
}

mysql_close($joomladb);
mysql_close($phplistdb);
?>


Ik loop steeds tegen de melding aan dat er iets niet goedgaat met de mysql_fetch_assoc() iets niet goed gaat maar ook als ik de boel omgooi naar een array wil ie niet 8)7

Excuses als dit echt een superstomme fout is.. t is weer even geleden dat ik me hiermee bezig heb gehouden :+

Acties:
  • 0 Henk 'm!

  • soap
  • Registratie: December 2000
  • Laatst online: 17:27

soap

diskoers.

Wat dacht je van mysql_fetch_array() ?
Daarbij wil je blijkbaar een hele rij die je terugkrijgt in 1 cel stoppen van de user tabel op de $phplist db?

[ Voor 59% gewijzigd door soap op 15-12-2008 11:53 ]

.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op maandag 15 december 2008 @ 11:49:

Ik loop steeds tegen de melding aan dat er iets niet goedgaat met de mysql_fetch_assoc() iets niet goed gaat maar ook als ik de boel omgooi naar een array wil ie niet 8)7
;)

Acties:
  • 0 Henk 'm!

  • d33n
  • Registratie: April 2000
  • Laatst online: 04-09 07:58
Eerst connecten met joomladb.
$result vullen.
joomladb sluiten
connecten met phplistdb.
$result inserten,
phplistdb sluiten

Lijkt me een veel logischere opbouw, ik heb zelf nog nooit met meerdere databases tegelijk gewerk, dus eigenlijk weet ik het niet hoor 8)7

Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 18-09 19:18
Ik loop steeds tegen de melding aan dat er iets niet goedgaat met de mysql_fetch_assoc() iets niet goed gaat maar ook als ik de boel omgooi naar een array wil ie niet
Helaas is m'n glazen bol stuk en kan ik niet zien wat voor foutmelding je krijgt. Wat krijg je voor foutmelding, want zo kunnen we je uberhaupt niet helpen.

Acties:
  • 0 Henk 'm!

  • soap
  • Registratie: December 2000
  • Laatst online: 17:27

soap

diskoers.

Om terug te komen op de latere edit van mijn reply:
Ik weet niet hoe joomla_users is opgebouwd, maar het lijkt me sterk dat daar alleen een email veld in zit.
Dus logischer zou zijn om een "SELECT email FROM joomla_users" etc te doen.

.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
stomstomstom..
Ik ben hier ook al een tijd niet geweest

de meldingen zijn:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

als ik de queries test in phpmyadmin werken ze stuk voor stuk wel

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Ik zou je query eens printen. Dan zul je zien dat hij er zo uitziet:

SQL:
1
INSERT INTO `phplist_user_user` (email, confirmed, disabled) VALUES (".$row.", "1", "0")


Dat komt omdat je met enkele quotes opent en uit de string probeert te gaan met dubbele, bovendien parset PHP geen variabelen tussen enkele quotes. Arrays kun je bovendien niet zonder meer printen, dan maakt hij er gewoon "Array" van. Bovendien heb je in je query ook de quotes omgedraait. Je quotes om de 1 en de 0 moeten weg, om $row moeten er quotes bij. Je krijgt dan zoiets:

PHP:
1
mysql_query("INSERT INTO `phplist_user_user` (`email`, `confirmed`, `disabled`) ('" . $row['email'] . "', 1, 0)", $phplistdb);


Met daarbij de kanttekening dat ik naar de key die je nodig hebt van $row heb geraden, de kans is groot dat dat niet de key is die je nodig hebt of dat hij niet bestaat. Dat moet je zelf even fixen.

EDIT:

Ondertussen zijn er al wat reacties voor mij geplaatst. De foutmelding die je krijgt geeft aan dat de echte fout zich eerder voordoet dan ik dacht. Dat betekend dat je even de standaard debugging code rond je databasefuncties moet gooien. Dus "or die(mysql_error());" achter al die functies (behalve de mysql_fetch_assoc(), die kan nul rows teruggeven en dan wil je geen fout).

[ Voor 20% gewijzigd door Patriot op 15-12-2008 12:01 ]


Acties:
  • 0 Henk 'm!

  • soap
  • Registratie: December 2000
  • Laatst online: 17:27

soap

diskoers.

O, je doet nu een query op de $phplist db ipv op de eerste.

.


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Mr.Zop schreef op maandag 15 december 2008 @ 11:58:
O, je doet nu een query op de $phplist db ipv op de eerste.
Ja hèhè, dat wil hij juist. Hij moet het uit de ene db halen, en in de andere stoppen..

Acties:
  • 0 Henk 'm!

  • soap
  • Registratie: December 2000
  • Laatst online: 17:27

soap

diskoers.

Patriot schreef op maandag 15 december 2008 @ 12:01:
[...]


Ja hèhè, dat wil hij juist. Hij moet het uit de ene db halen, en in de andere stoppen..
Hij wil toch eerst wat uit de andere halen?!
Die select_db geldt niet voor de connectie.
Lees anders even mysql_select_db door, elke query die je doet wordt op de laatst geselecteerde db uitgevoerd.
edit2: behalve als de link identifier is gebruikt idd zoals hier het geval, excuus :)

[ Voor 31% gewijzigd door soap op 15-12-2008 12:09 . Reden: mysql_select_db link toegevoegd. ]

.


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Mr.Zop schreef op maandag 15 december 2008 @ 12:02:
[...]

Hij wil toch eerst wat uit de andere halen?!
Die select_db geldt niet voor de connectie.
Jawel, hij vult toch de goede link identifiers in daar waar ze horen?

Acties:
  • 0 Henk 'm!

  • soap
  • Registratie: December 2000
  • Laatst online: 17:27

soap

diskoers.

Patriot schreef op maandag 15 december 2008 @ 12:06:
[...]


Jawel, hij vult toch de goede link identifiers in daar waar ze horen?
[edit]mijn fout

[ Voor 14% gewijzigd door soap op 15-12-2008 12:07 ]

.


Acties:
  • 0 Henk 'm!

  • HenkEisDS
  • Registratie: Maart 2004
  • Laatst online: 01:11
Ik weet niet hoe het zit met versie 1.5 van joomla, maar versie 1.0.15 heeft geen rij die 'confirmed' heet. Wel één die 'usertype' heet.

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Mr.Zop schreef op maandag 15 december 2008 @ 12:06:
[...]


Dat geldt voor de connectie, niet voor de DB. Zie mn vorige post.
Dat is maar net hoe je de quote interpreteert. Ik ben er eigenlijk altijd van uitgegaan dat hij die select_db alleen toepast op de connectie. Jij zegt dus dat de geselecteerde database algemeen geldt ongeacht de connectie? Dat zou wel erg stom zijn, ik kan het nu niet testen maar ik kan het me bijna niet voorstellen. Volgens mij selecteer je de database op die ene connectie, dus bij het aangeven van een andere connectie override je niet de vorige call naar mysql_select_db().

Mocht dat wel zo zijn, dan kun je altijd nog per connectie het USE commando versturen om de goede database te selecteren. Dat zou wel per connectie moeten zijn.

EDIT:
Je bent het dus wel met me eens, dacht al dat ik gek aan het worden was :+

[ Voor 5% gewijzigd door Patriot op 15-12-2008 12:11 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je begint je titel met PHP en mySql: Waar hoort mijn topic?

Oftewel een klein tikje naar Programming. Als je een suggestie hebt voor een beter beschrijvende titel, dan kan je een Afbeeldingslocatie: http://tweakimg.net/g/forum/images/icons/icon_hand.gif topic report aanmaken ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Is het niet handiger om 1 query te maken en deze dan uit te voeren?

SQL:
1
2
INSERT INTO `phplist`.`phplist_user_user` (email, confirmed, disabled) VALUES 
select email, 1,0 from `joomla`.`joomla_users` WHERE `confirmed` = "Registered" 

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 16:37

Basszje

Reisvaap!]

PHP heeft problemen volgens mij met dat select_db gebeuren zoals al aangegeven. Het fijne weet ik even niet uit mijn hoofd. Probeer anders eerst je resultset te fetchen uit de eerste en dan over te geven aan de tweede en kijk of de queries dan wel werken.. Dikke kans dat daar ergens het probleem ligt :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
Even aangepast... Had niet gezien dat het mysql was in plaats van mysqli :) Werk zelf namelijk alleen maar met mysqli.

Ik zie dat er nog niemand over gevallen is...
PHP:
1
$result = mysql_query('SELECT * FROM `joomla_users` WHERE `confirmed` = "Registered"', $joomladb);

Ik snap je gebruik van single en dubbele quotes niet... Het zal misschien werken, maar je maakt het er niet makkelijker op.

Probeer al je query's eens op deze manier te doen...
PHP:
1
$result = mysql_query("SELECT * FROM joomla_users WHERE confirmed='Registered'",$joomladb);


Ook zie ik dat je in plaats van ' (wat nog mogelijk is) gebruik maakt van ` tekens. Die horen sowieso al niet thuis in een query.

Correct me if i'm wrong...

[ Voor 183% gewijzigd door Saeverix op 15-12-2008 13:44 ]

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Dat klopt écht niet hoor Werner. Het tweede argument van mysql_query is de link identifier, niet het eerste.. Dat is altijd de query.

EDIT:
De PHP docs zijn het met me eens

EDIT:
Ook zie ik dat je in plaats van ' (wat nog mogelijk is) gebruik maakt van ` tekens. Die horen sowieso al niet thuis in een query.
Je bedoelt het goed, maar je opmerkingen raken kant noch wal. Hier klopt gewoon helemaal niets van.

[ Voor 61% gewijzigd door Patriot op 15-12-2008 13:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Werner, je tip mist mijn inziens de apostrof ( ` ) waarmee je tabellen en columns kan indentificeren. Iets wat ik zeer graag gebruik (al dan niet voor duidelijkheid). Verder lijkt het parsen van de string door php overbodig, dus enkele quotes ( ' ) zijn correcter. Al dan niet in combinatie met sprint_f, of parameterized queries.

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Verwijderd schreef op maandag 15 december 2008 @ 13:46:
Werner, je tip mist mijn inziens de apostrof ( ` ) waarmee je tabellen en columns kan indentificeren. Iets wat ik zeer graag gebruik (al dan niet voor duidelijkheid). Verder lijkt het parsen van de string door php overbodig, dus enkele quotes ( ' ) zijn correcter. Al dan niet in combinatie met sprint_f, of parameterized queries.
Je kunt het prettiger vinden, maar zeggen dat het correcter is is onzin. Het gaat om de manier waarop je het gebruikt, als dat goed is dan is er tussen enkele en dubbele quotes geen verschil.

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
Verwijderd schreef op maandag 15 december 2008 @ 13:46:
Werner, je tip mist mijn inziens de apostrof ( ` ) waarmee je tabellen en columns kan indentificeren. Iets wat ik zeer graag gebruik (al dan niet voor duidelijkheid). Verder lijkt het parsen van de string door php overbodig, dus enkele quotes ( ' ) zijn correcter. Al dan niet in combinatie met sprint_f, of parameterized queries.
Gebruik ik nooit, en de toegevoegde waarde kan ik er ook niet van inzien.

Op de manier van mij kun je gemakkelijk PHP output gebruiken in de aanmaak van je query. Je kunt dan namelijk gewoon een variable in je query zetten.

Bijvoorbeeld
PHP:
1
2
$voorbeeldid = $_GET['id'];
$query = mysqli_query($db,"SELECT * FROM voorbeeld WHERE id=$voorbeeldid");


En daarbij komt: Als het werkt, waarom zou het van jou dan correcter zijn?

[ Voor 4% gewijzigd door Saeverix op 15-12-2008 13:59 ]

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Saeverix schreef op maandag 15 december 2008 @ 13:57:
[...]

Gebruik ik nooit, en de toegevoegde waarde kan ik er ook niet van inzien.

Op de manier van mij kun je gemakkelijk PHP output gebruiken in de aanmaak van je query. Je kunt dan namelijk gewoon een variable in je query zetten.

Bijvoorbeeld
PHP:
1
2
$voorbeeldid = $_GET['id'];
$query = mysqli_query($db,"SELECT * FROM voorbeeld WHERE id=$voorbeeldid");
:D

Maak je soms een grap? Je bent je toch hopelijk bewust van het feit dat dit een enorm veiligheidsrisico met zich meebrengt?

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
Patriot schreef op maandag 15 december 2008 @ 13:59:
[...]


:D

Maak je soms een grap? Je bent je toch hopelijk bewust van het feit dat dit een enorm veiligheidsrisico met zich meebrengt?
Dit is gewoon een voorbeeld om aan te tonen wat er mogelijk is... Dat dit niet veilig is ben ik me van bewust.

Maar ook dat hangt weer af van het doel waar je het voor gaat gebruiken. Als het bijvoorbeeld om een simpel gastenboekje gaat waarvan de ID de pagina van het gastenboek is zie ik persoonlijk het veiligheidsrisico niet.

Maar we raken inmiddels erg offtopic :)

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Saeverix schreef op maandag 15 december 2008 @ 13:57:
[...]

Gebruik ik nooit, en de toegevoegde waarde kan ik er ook niet van inzien.

Op de manier van mij kun je gemakkelijk PHP output gebruiken in de aanmaak van je query. Je kunt dan namelijk gewoon een variable in je query zetten.

Bijvoorbeeld
PHP:
1
2
$voorbeeldid = $_GET['id'];
$query = mysqli_query($db,"SELECT * FROM voorbeeld WHERE id=$voorbeeldid");


En daarbij komt: Als het werkt, waarom zou het van jou dan correcter zijn?
Wat als je tabelnaam een spatie bevat of gelijk is aan een keyword van MySQL?

[ Voor 8% gewijzigd door LuCarD op 15-12-2008 14:03 ]

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Saeverix schreef op maandag 15 december 2008 @ 14:03:
Dat dit niet veilig is ben ik me van bewust.
En nét daarna schrijf je:
Saeverix schreef op maandag 15 december 2008 @ 14:03:
Als het bijvoorbeeld om een simpel gastenboekje gaat waarvan de ID de pagina van het gastenboek is zie ik persoonlijk het veiligheidsrisico niet.
Je bent je dus bewust van het potentiële probleem maar je ziet het veiligheidsrisico niet? Je bent bekend met SQL Injection :?

Tenzij je jezelf verzekert dat $voorbeeldid altijd een integer is ga je falikant de mist in; maar nog beter gebruik je parametrized queries.

[ Voor 14% gewijzigd door RobIII op 15-12-2008 14:05 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
LuCarD schreef op maandag 15 december 2008 @ 14:03:
[...]

Wat als je tabelnaam een spatie bevat of gelijk is aan een keyword van MySQL?
Als je spaties gebruik in tabelnamen vind ik dat je sowieso al verkeerd bezig bent.
Dit zelfde vind ik voor het gebruiken van keywords van MySQL en andere geregistreerde woorden/functies.
RobIII schreef op maandag 15 december 2008 @ 14:04:
[...]

En nét daarna schrijf je:


[...]

Je bent je dus bewust van het potentiële probleem maar je ziet het veiligheidsrisico niet? Je bent bekend met SQL Injection :?

Tenzij je jezelf verzekert dat $voorbeeldid altijd een integer is ga je falikant de mist in; maar nog beter gebruik je parametrized queries.
Ik heb er ooit eens wat van gehoord, maar wist er inhoudelijk nog niet veel van. Bedank voor de link.
Ben al een aardige tijd als hobby aan het programmeren, maar heb me nog niet verdiept ik het veilig zijn van mijn scripts... Maar zodra iets public gaat is dat wel belangrijk inderdaad.

[ Voor 50% gewijzigd door Saeverix op 15-12-2008 14:16 ]

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Saeverix schreef op maandag 15 december 2008 @ 14:03:
[...]

Dit is gewoon een voorbeeld om aan te tonen wat er mogelijk is... Dat dit niet veilig is ben ik me van bewust.

Maar ook dat hangt weer af van het doel waar je het voor gaat gebruiken. Als het bijvoorbeeld om een simpel gastenboekje gaat waarvan de ID de pagina van het gastenboek is zie ik persoonlijk het veiligheidsrisico niet.

Maar we raken inmiddels erg offtopic :)
Het ging me overigens niet alleen om die opmerking. Je bent blijkbaar nog lerende in de wereld van PHP. Dat is natuurlijk absoluut niet erg, maar als je anderen op een foute manier gaat helpen dan zijn die mensen de dupe. Als je nou absoluut wil helpen, sla dan in ieder geval de documentatie er even op na als je niet precies weet hoe het zit. Een goed voorbeeld is de parametervolgorde van mysql_query(), je bent er niet helemaal zeker van maar post het wel gewoon. Het is een kleine moeite om dan zelf even op php.net te kijken of je gelijk hebt, zodat je geen verwarring veroorzaakt.

[ontopic]

Het makkelijkste is het om niet twee aparte verbindingen op te zetten. Eerst de gegevens uit de ene database halen en dan de andere database selecten en de gegevens weer inserten.

Als je per sé twee verschillende connecties wil hebben, dan raad ik aan om in plaats van mysql_select_db te gebruiken het USE commando te versturen. Je kunt de database van een connectie dus ook zo veranderen:

PHP:
1
mysql_query("USE `andere_database`", $linkid);


Omdat (volgens de comments op PHP.net) PHP nog wel eens moeite wil hebben met verschillende mysql_select_db calls, ook als je een link identifier opgeeft (met dank aan Mr.Zop, anders was ik daar weer nooit achtergekomen).

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Saeverix schreef op maandag 15 december 2008 @ 14:12:
[...]

Als je spaties gebruik in tabelnamen vind ik dat je sowieso al verkeerd bezig bent.
Dit zelfde vind ik voor het gebruiken van keywords van MySQL en andere geregistreerde woorden/functies.
Maar daar heb je niet altijd controle over.

Spaties komen gelukkig niet vaak voor, maar ik heb het toch wel meerdere malen mee gemaakt na een import van Access of Excel.
Keywords kunnen nog wel eens veranderen dus als je een upgrade doet van een oudere versie MySQL naar een nieuwe kan je wel eens gekke verrassingen krijgen.

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
heren heren, jullie weten de boel wel te verdraaien vandaag zeg :D

Ik ben inmiddels weer wat opgefrist (peukie, koffie, frisse neus) en opnieuw beginnen en heb het inmiddels werkend

zo is het geworden:

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
<?php

// Geforceerd connecten met Joomla! Database
$joomladb = mysql_connect('localhost', 'gebruiker', 'wachtwoord', true) or die(mysql_error());
mysql_select_db('joemla', $joomladb) or die(mysql_error());

// Geforceerd connecten met phplist Database
$phplistdb = mysql_connect('localhost', 'gebruiker', 'wachtwoord', true) or die(mysql_error());
mysql_select_db('phplist', $phplistdb) or die(mysql_error());

// tabel phplist_users leegmikken voor m te vullen
$leeg = mysql_query("TRUNCATE TABLE `phplist_user_user`", $phplistdb) or die(mysql_error());

// tabel phplist_listuser leegmikken voor m te vullen
$leeg = mysql_query("TRUNCATE TABLE `phplist_listuser`", $phplistdb) or die(mysql_error());

// tellertje op 1 zetten voor userid's
$uid = 0;

// Vraag alle emailadressen op uit de joomla usertabel
$result = mysql_query("SELECT * FROM `js_users`", $joomladb) or die(mysql_error());

while ($row = mysql_fetch_array($result))
{
      // Voeg de emailadressen toe aan PHPlist met confirmed op 1 en disabled op 0
      $meel = $row['email']; // effe in een normale variabelle zetten
      $uid=$uid+1; // teller +1
      // usertabel vullen
      mysql_query("INSERT INTO `phplist_user_user` (id, email, confirmed, disabled) VALUES ('$uid', '$meel', 1, 0)", $phplistdb) or die(mysql_error());
      // user lid maken van mailinglist 1
      mysql_query("INSERT INTO `phplist_listuser` (userid, listid) VALUES ('$uid', 1)", $phplistdb) or die(mysql_error());
}

mysql_close($joomladb);
mysql_close($phplistdb);
?>


Bedankt voor de tips over de "" en de '' en de `` hehe daar zaten inderdaad een aantal van de fouten in ;)
maar over het algemeen zat de dikste fout m in het vergeten van het woordje VALUES in de insert ;)

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Verwijderd schreef op maandag 15 december 2008 @ 15:12:

[.. knip ..]

maar over het algemeen zat de dikste fout m in het vergeten van het woordje VALUES in de insert ;)
* Patriot schaamt zich diep voor het feit dat hij die niet gezien had

Blij dat het nu werkt.

Acties:
  • 0 Henk 'm!

Verwijderd

Tja tuurlijk was het een query-fout. Ze zijn niet zo makkelijk leesbaar zo (op 1 regel).

Succes verder!
Pagina: 1