PHP-Script.hu
Kiemelt hirdetés:
2026. október 17. 11:02 szombat, ma Hedvig névnap van


grafika


Videóbázis


Listázás:  Idő szerint:
Webprogramozás arr PHP info Tömböl kinyert adtok.
(#7) RimElek válasza erre: (#6) tonek 2012.09.12. 22:47

RimElek
RimElek
VIP

Én nem tudom, ezt hogy csináltad. De az biztos, hogy amit én leírtam, azzal ilyen nem történhetett.

Valószínűleg, te még nem törölted ki azt a verziódat sem, ahol a neveket előre lekérdezted és az összeset betetted a username helyére, amit gondolom, nem mezőként, hanem változóként írtál be.

Meg aztán minek kell neked a user_id a küldő id-jeként, ha ott van a kitol mező is? Vagy ha van user_id, akkor nem kell a kitol mező. id-ból a név lekérdezhető. És amúgy az id-s megoldás a jó megoldás. Csak nem akartalak összezavarni ezzel, ha te neveket tárolsz. De ahogy elnézem, összezavarodtál te magadtól is :)

(#6) tonek válasza erre: (#5) RimElek 2012.09.12. 07:44

tonek
tonek
Kezdő

A user_id a küldő id-je .Mostmár müködik a dolog csak annyiban hibádzik,hogy a cimzettekhez beirja az összes nevet egyszerre nem pedig külön külön.



Erre esetleg nem e lenne valami ötleted?


Utoljára szerkesztette: tonek 2012.09.12. 07:45
(#5) RimElek válasza erre: (#4) tonek 2012.09.11. 18:30

RimElek
RimElek
VIP

Egy részt mi az a user_id a pm_in táblában, ha van kitol és cimzett mező is? Üzenet id-t pedig nem kell mentened, mivel automatikusan kellene kapnia. Más részt össze-vissza írtad a mezőneveket. Pontosan ugyanolyan sorrendben sorold fel a pm_in tábla után a mezőket, ahogy az annak megfelelő változók vannak a select-ben!

Aztán mi az a $b ? 7 mezőnek van helye a select-ben de az insertnél csak 6 mezőt soroltál fel. Azaz Column count doesn't match value. = Az oszlopok zsáma nem egyezik az értékekével.

Az, hogy én az id mezőt a select végére írtam, csak példa volt. Mert nálam a mezőlistában is a végén volt a cimzett, amibe a user id-jét kell tölteni. Nálad a nevét.

1
$sql="INSERT INTO pm_in(kitol,cimzett,targy,uzenet,datum) select '$kitol', username, ,'$targy','$uzi','$datum' from reg"; 


De csak tippelek, mert nem tudom, melyik része volt hiba esetedben. És mit szándékosan írtál bele.

(#4) tonek válasza erre: (#3) RimElek 2012.09.11. 17:33

tonek
tonek
Kezdő

Igen a te megoldásod lenne az igazi mindekinek szerteném küldeni egyszerre.

Nem tudom jól csináltam e.

1
2
3
 
$sql="INSERT INTO pm_in(user_id,kitol,cimzett,targy,uzenet,datum) select '$id','$kitol','$b','$targy','$uzi','$datum', username from reg"; 
 

Mert ilyen hibát kapok Column count doesn't match value count at row 1


Utoljára szerkesztette: tonek 2012.09.11. 17:38
(#3) RimElek válasza erre: (#1) tonek 2012.09.11. 16:38

RimElek
RimElek
VIP

Nem egészen értem, onlyteszt hogy érti, amit javasolt, de az biztos, hogy attól, hogy több felhasználónevet adsz át egy select-ben, még nem fog az adatbázisban semmi változás történni. Az adatbázisba írás a lényeg.

Annyi rekordnak kellene kerülni az adatbázisba, ahány felhasználót kijelöltél. Azaz ha van 2000 felhasználód, egy üzenet elküldésével 2000 rekordod születik az üzenetek táblában. Ez persze igazából még nem is sok. De ha azt veszed, hogy 2000 felhasználót listázol az űrlapon, és egyenként jelölgeted, kinek akarsz küldeni, az már igen fárasztó. Ha mindenkinek küldő funkció kell, akkor egyszerűen sql-ből oldd meg:

1
insert into uzenetek( `uzenet`, `kuldo`,`cimzett`) select '$uzenet', '$kuldo', id from reg 


Ahol ami dollárral kzdődik, az változó, és adott, mert az üzenetet űrlapról küldöd, a küldő pedig te vagy ( felhasználónév, vagy id. Nem tudom, mit mentesz az üzenetekben ) az id pedig jön a reg táblából. Így az összes tagra le fog futni.


Utoljára szerkesztette: RimElek 2012.09.11. 16:39
(#2) onlyteszt 2012.09.11. 14:23

onlyteszt
onlyteszt
Kezdő

Azt hiszem erre gondolsz:) Próbáld ki.

1
2
echo" <select name=\"lekerdezes\"><option value=\"igen\" ".($user["lekerdezes"] == "igen" ? "selected=\"selected\"" : "").">Igen</option><option value=\"nem\" ".($user["lekerdezes"] == "nem" ? "selected=\"selected\"" : "").">Nem</option></select>";
 

(#1) tonek 2012.09.11. 12:33

tonek
tonek
Kezdő

Sziasztok.

Van egy pm küldő rendszerem ami rendesen müködik,de szeretném azt megoldani,hogy mindenkinek egyszerre tudjak üzenet küldeni.

Eddig itt tartok.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<?php
function userek(){
 
        $l="SELECT * FROM reg";
            $ki=mysql_query($l);
            while($user=mysql_fetch_assoc($ki)){
 
            $username = $user['username'];
 
            echo "<option value='".$user['username']."'>".$username."</option>";
 
                                                }
}
 
?>
 

Itt a cimzetteket tömbként átadom a feldolgozó php-nak amit utána az implode fügvénnyel feldarabolok.

Ki is irja a neveket de ha minden név kivan választva akkor nem irja be az adatbázisba hacsak egy van kiválasztva akkor minden gond nélkül lefut a kód.

$cimzett = $_POST['cimzett'];

$userek = implode("<br/> ",$cimzett);

<select name="cimzett[]" id="" multiple="multiple">

<?php userek();?>
</select>


Utoljára szerkesztette: tonek 2012.09.11. 12:33
Listázás:  Idő szerint:


© 2006-2026 PHP-Script.hu, Minden jog fenntartva!
Design: Rácz Gergely, Oldalmotor: Rácz Gergely
Impresszum - Oldaltörténet - Oldalszabályzat