Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Wyciągnięcie maili z bazy


Advokat

Rekomendowane odpowiedzi

Czy jest jakiś sposób, aby wyciągnąć do pliku maile użytkowników - optymalnie w odwrotnej kolejności do daty rejestracji (czyli na początku lista ostatnio zarejestrowanych)?

W phpbb by Przemo był taki zgrabny kod w php, który po prostu generował na serwerze plik txt z adresami userów:

<?php 

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

define('ATTACHMENTS_DESC_TABLE', $table_prefix . 'attachments_desc');
define('ATTACHMENTS_TABLE', $table_prefix . 'attachments');

$all = array();

$sql = "SELECT user_email FROM " . USERS_TABLE;

	if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain users gender', '', __LINE__, __FILE__, $sql);
		}

	while($row = $db->sql_fetchrow($result))
		{
			$all[] = $row['user_email']."\n";
		}

$data = implode('', $all);
$fp = fopen("user_emails.txt", "w");
fputs($fp, $data);
fclose($fp);

echo '<CENTER><SPAN STYLE="font-size: 600">:-)</SPAN></CENTER>';
?>

Czy da się to jakoś przerobić na potrzeby IPB?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Advokat: taką listę można pobrać z PhpMyAdmina. :%-):

Można by spróbować przerobić ten kod - koniecznie chcesz? :a:

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

LISTAWY - Tym programem wyciągniesz maile z każdego pliku, txt sql itp.

Potem zapisze ci je jeden pod drugim w pliku .txt

m0ożesz wrzucić do niego całą tabele z userami, a nawet całą bazę, poradzi sobie.

Edytowane przez santoz
Odnośnik do komentarza
Udostępnij na innych stronach

Advokat: taką listę można pobrać z PhpMyAdmina. :a:

Można by spróbować przerobić ten kod - koniecznie chcesz? :a:

Jakby się dało przerobić to byłbym bardzo wdzięczny :%-):

Ewentualnie chociaż powiedz jak to pobrać przez phpmyadmina. Tu pewnie większe możliwości co do wyciągnięcia adresów zgodnie z kolejnością o którą mi chodzi - czyli od końca (od ostatnio zarejestrowanego).

Odnośnik do komentarza
Udostępnij na innych stronach

Wystarczy jedno wykonać zapytanie SQL:

SELECT `email` FROM `ipb_members` ORDER BY `joined` DESC

W miejsce ipb_members wstawiasz nazwę swojej tabeli members (pewnie masz inny przedrostek).

Można to również automagicznie zapisać do pliku ale ja dziś się tym raczej nie zajmę, może kto inny.

Odnośnik do komentarza
Udostępnij na innych stronach

Zresztą...

Zapisz w głównym katalogu i odpal w przeglądarce:

<?php
define( 'IPB_THIS_SCRIPT', 'admin' );
require_once 'config.php';

if (!file_exists(IPB_PATH.'/initdata.php'))
{
	echo 'Invalid IPB path';
	exit;
}

require_once( IPB_PATH.'/initdata.php' );
require_once( IPB_PATH.'/admin/sources/base/ipsRegistry.php' );
require_once( IPB_PATH.'/admin/sources/base/ipsController.php' );
$registry = ipsRegistry::instance();
$registry->init();				
$DB       = $registry->DB();

$query = $DB->query("SELECT `email` FROM `ipb_members` ORDER BY `joined` DESC");

$fp = fopen("user_emails.txt", "w");

while ($row = $DB->fetch($query))
	fputs($fp, $row['email']."\n");

fclose($fp);
echo '<CENTER><SPAN STYLE="font-size: 600">:-)</SPAN></CENTER>';
?>

Odnośnik do komentarza
Udostępnij na innych stronach

A zdradzisz kod zapytania do myadmina?

Choć nie urkywam, że wygodniej byłoby wyciągnąć do pliku txt - a dalej to już prostą drogą do programu do listy wysyłkowej...

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 rok później...
  • 2 lata później...


<?php

require_once './initdata.php';

require_once IPS_ROOT_PATH . 'sources/base/ipsRegistry.php';

ipsRegistry :: init();

$mails = ipsRegistry :: DB() -> build(array(

'select' => 'email',

'from' => 'members'

)

);

$execute = ipsRegistry :: DB() -> execute();

$i = 0;

while($mail = ipsRegistry::DB()->fetch($execute)){

$i++;

if(count($mail) > 0){

foreach($mail as $emails){

@file_put_contents('emails.dat', $emails . "\n", FILE_APPEND);

}

}

}

  • Lubię to 2
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager
  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Abo jeszcze inaczej:

pre_1360509999__2013-02-10_16-25-44.png

 

Potem np. w Excelu zaznaczasz kolumnę z mailami, kopiujesz ją i wklejasz do nowego dokumentu.

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.