Kérdések és válaszok

Indította DoomKiller, 2010 augusztus 10, 06:46:54 DÉLUTÁN

Előző téma - Következő téma

zerus

Idézetet írta: NevemSenki Dátum 2012 október 19, 02:12:43 DÉLUTÁN


Talán ez lehet a legjobb megoldás, mivel minden karakternév egyedi.
SELECT LOWER(CONCAT_WS(title,description)) AS concatenated
WHERE concatenated LIKE LOWER('%SearchTerm%')

Reconka


IrOn


NevemSenki

Kezdek nagyon belekavarodni.... Holnap kipróbálgatom amiket válaszként írtatok, mindent kifogom, legalább ezzel is tanulok.

Köszönnöm szépen hogy segítetek nekem, nagyon rendes tőletek!

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

NevemSenki

#259
Átnéztem, és kipróbáltam a válaszokat, de egy, a válaszok között nem fellehető megoldással oldottam meg.
Mégpedig ez az a " _ci "-s dolog.

Én SQLyog-t használok, de szerintem a többi hasonló programban is előhúzható az [ Alter Table ] rész.
Mikor megnyitom, ugye lehet változtatni az oszlopokat stb...
A jobb alsó sarokban az SQLyog programban van egy kipipálható rész, ami a [ Hide language option ] névre hallgat.
Ha kivesszük előle a pipát, akkor 2 DB újabb oszlop jelenik meg, ahol a nyelvet ki lehet választani.
Na most, én a " name " oszlopnál beállítottam [ utf8_hungarian_ci ]-re.


IrOn, most odafigyeltem, és eltüntettem a torrent letöltésjelzőjét, ki X-eltem a 18-as tartalmakat. ;)

Ezzel a lekérdezéssel:

<?php mysql_select_db( "$charsdb" );
$karakterlekerdezes = mysql_query("select * from characters WHERE name LIKE '%" . $_GET['karakter'] . "%'");
?>



tökéletesen működik a kereső. Akkor is jó, ha csak a karakter nevének egy részét írja be, akkor is, ha a teljes karakternevet beírja ( Nagy kezdőbetűvel ), és akkor is, ha a teljes karakternevet írja be ( kis kezdőbetűvel), akkor is ha a keresendő szöveg teljesen " kisbetűs " vagy ha teljesen " NAGYBETŰS ".
Szóval, mindenféleképpen jó.

Egy jó tanács nagyon vigyázzatok, mert ha a Notepad++-ban nem [ UTF-8 kódolás BOM nélkül ]-i kódolásban mentitek el a készülő oldalt, akkor hiába a Meta tage, vagy akármi, akkor sem lesz jó.

Üdv.: Senki

Update

Lenne egy kérésem. Nemsokára eljutok az Arena csapatokig, Guildok, hasonlók. Esetlegesen nem lenne valakinek egy auth és egy chars adatbázisa, mondjuk egy 1-2 hetes biztonsági mentés egy nagyobb szerverről? Mert valahogy nem nagyon van kedvem lekreálni 100 karaktert, meg guild-okat csinálni, meg hasonlók, egyedül...
Szóval ha valakinek van régi biztonsági mentése auth és charc Db-ből, akkor azt szívesen fogadom!

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

NevemSenki

Valamit leszedtem, amit lehet nem kellet volna.
Egy alkalmazás képében jött le... ilyet még nem láttam.
Notepad++-al megnyitottam, és ezt kaptam:

http://pastebin.com/cJRN7ywn

Biztos ami biztos, a kód csakis 1 napid lesz megtekinthető.
Mi a fene lehet ez?

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

Reconka

Idézetet írta: NevemSenki Dátum 2012 október 20, 07:31:10 DÉLUTÁN
Valamit leszedtem, amit lehet nem kellet volna.
Egy alkalmazás képében jött le... ilyet még nem láttam.
Notepad++-al megnyitottam, és ezt kaptam:

http://pastebin.com/cJRN7ywn

Biztos ami biztos, a kód csakis 1 napid lesz megtekinthető.
Mi a fene lehet ez?

Üdv.: Senki
egy egyszeru html oldal hirekkel egyutt..

NevemSenki


Mondtam hogy nekiindultam újraírni a koppintott wow-os oldalt.
Hát egyenlőre nem nagy mutatvány, de véleményt kérnék róla.
Ha tudtok, ötletekkel segíthetnétek, miként lehetne egyszerűbben, hasonlók.
Negatív pozitív véleményt is szívesen fogadok, de azt tartsátok szem előtt, hogy nemrég kezdtem el foglalkozni a PhP-val.

Az ikonok tábla, és a megjelenésen belüli ikonok mappának, majd csak a késöbbiekben lesz szerepe.
De viszont a megjelenést próbáltam úgy kivitelezni, hoyg lehessen váltani a megjelenések között, és a későbbiekben majd sablonokat fogok alkalmazni, csak azt még nem értem hogy miként és hogy.

DOWNLOAD NOW!
Jelszó: kacsaszar

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

Reconka


NevemSenki

Hali.
Újabb, számomra érdekes hibába ütköztem, és 2 nap keresgélés után sem találtam rá a megoldásra.

TC tábla: http://www.trinitycore.info/Characters_tc2

Ebből a táblából szeretnék egy ciklussal egy új táblába illeszteni bizonyos adatokat.

guid
account
name


Ez a 3 tábla kéne nekem. Egy másik táblába.
A kulcs az account[id]. Lekérdezem account[id] szerint az összes olyan sort.

SELECT * FROM characters WHERE account=$_SESSION[id]

Minden egyes kapott eredményt, értelem szerűen egy másik sorba szeretnék UPDATE-elni.

INSERT INTO felhasznalo_2 (karakterguid, accid, aktiv) VALUES ($num_row[guid], $num_row[account], 0;

A gond az, hogy megoldottam, egy bizonyos szintig, de valamit elrontottam. Igaz, megkapom a megfelelő eredményt, de többször mint kéne.

Pontosan 4 alkalommal illeszti be. Igaz, a későbbiekben ezt még kicsit meg kéne variálni, mert ha létezik már az a guid[id], akkor nem INSERT kéne, hanem UPDATE.

Bemásolom a kódot, ha tudtok, világítsatok rá a megoldásra, mert semmi ötletem sincsen. Az si elég, ha megmondjátok hogy hol rontottam el, de azt is hogy miért.

( $_SESSION[id] = 1; )

<?php

mysql_select_db
($charsdb);
$felhasznalok_2_sql "SELECT * FROM characters WHERE account=$_SESSION[id]";
$felhasznalok_2_sql_eredmeny mysql_query($felhasznalok_2_sql);

mysql_select_db($weboldaldb);
$num_row mysql_num_rows($felhasznalok_2_sql_eredmeny);
while(
$num_row mysql_fetch_array($felhasznalok_2_sql_eredmeny)){
//echo ($num_row);

$weboldal_felh_2_sql "INSERT INTO felhasznalo_2 (karakterguid, accid, aktiv) VALUES ($num_row[guid]$num_row[account], 0)";
mysql_query($weboldal_felh_2_sql);

}
?>


Kimenetnek az adatbázisban pedig ezt kapom.



Szóval, jót pakol be, csak sokszor.
Előre is köszi a segítséget.

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

zerus

Ennek a sornak mi értelme ha utána ugyanebbe a változóba kéred le a sorok tartalmát is?
$num_row = mysql_num_rows($felhasznalok_2_sql_eredmeny);

NevemSenki

Oké, újraírtam, tényleg volt benne sok hülyeség.
Itt az új kód:

<?php

mysql_select_db
($charsdb);
$felhasznalok_2_sql "SELECT `guid`, `account`, `name` FROM characters WHERE account=$_SESSION[id]";
$felhasznalok_2_sql_eredmeny mysql_query($felhasznalok_2_sql);

while(
$hello mysql_fetch_array($felhasznalok_2_sql_eredmeny)){

mysql_select_db($weboldaldb);
mysql_query("INSERT INTO felhasznalo_2 (karakterguid, accid, aktiv) VALUES ('$hello[guid]', '$hello[account]', '0')");

}
?>


Ezek alapján csináltam:
http://www.tizag.com/mysqlTutorial/mysqlfetcharray.php
http://www.w3schools.com/php/php_mysql_insert.asp

Az én elméletem szerint, a kód 2x fut le, mert mindössze 2x teljesül a feltétel a WHILE ciklusban.
Akkor miért kapom meg ezt az eredményt többször az adatbázisban?
Mert az adatbázisom ebben az esetben is pont ugyan úgy néz ki, mint az előző példában.
4 alkalommal INSERT-eli az egészet, nem értem hogy miért, ha itt pusztulok meg előtte, akkor sem fogok rájönni. Azért nem adom fel. Most már nem is az idegesít hogy nem működik, hanem hogy miért úgy működik ahogy.

Üdv.: Senki

Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

Reconka

#267


$query= mysql_query('SELECT * FROM characters WHERE account=1 ');


while ($row = mysql_fetch_array($query)) {

   $query2=mysql_fetch_array(mysql_query('SELECT * FROM  `felhasznalo_2` WHERE  `karakterguid` ='.$row["guid"]));

   if ( empty( $query2 )){
    // oh shit  insert that shit
    print("insert<br>");
   
   
        }
    else {
    // update that shit
    print("update<br>");

    }

}




nekem tokeletesen mukodott 4 erteket adtam meg, es 4  insert tortent.  Biztos hogy te nem neztel el semmit?

NevemSenki

#268
Oké, ez így érthető, igaz nagy nehezen, de megértettem. Köszönöm.

Egy újabb dolog, Multi Language.

Írom hogy hogy csináltam, és az lenne a kérdésem, hogy szerintetek ez mennyire lesz működőképes a későbbiekben.

Szóval:
Adott egy oldal, amibe Include-al be van húzva egy fejlec.php, a fejlec.php-be pedig a conn.php van Include-olva. A conn.php-ben vannak megadva az adatbázis elérések stb...

A fejlec.php-be Includ-oltam egy nyelv.php-t ami arra rendeltetett, hogy behúzza a megfelelő nyelvi fájlokat az oldalra. Get-el oldottam meg a dolgot, még pedig így:

?nyelv=hu vagy ?nyelv=en

Fejlec.php:


<?php 
include ("beallitasok/conn.php"); 
include_once (
'./nyelvek/nyelvek.php');


?>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" class="en-us">
<head xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#">
<title><?php echo $weboldalnev ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
?>


A fooldal.php-m így néz ki:

<?php

include ("fejlec.php");
 

$oldal_megnevezes "fooldal";
include (
"megjelenes/mejgelenes_szabalyzo.php");

include (
"menu.php");
?>

<div id="content">
<div class="content-top">
<div class="content-bot">
.........
<?php
?>


Mikor megnyitok egy oldalt, először berántja a conn.php-t, majd a nyelv.php-t, és majd csak azután jöün a megjelenes_szabajzo.php és a nemu.php

Mint mondtam az elején, a nyelvet Get-el oldottam meg, aminek a kiértékelésére a nyelvek.php hivatott.

nyelvek.php:

<?php
$languages 
= array(
    
'en' => 'english',
    
'hu' => 'magyar',
);
if (isset(
$_GET['nyelv']) AND array_key_exists($_GET['nyelv'], $languages))
{
    include 
'./nyelvek/' $languages[$_GET['nyelv']] . '.php';
}
else
{
    include 
'./nyelvek/magyar.php';
}
?>


Ez a fájl értékeli ki a Get változót, és ha van értéke, akkor behúzza a hozzá rendelt fájlt, ha nem, akkor egy alapértelmezett fájlt húz be.

A nyelvi fájlokban. Jelen esetben az alapértelmezett magyar.php így nézne ki:

<?php

$lang 
= array();

$lang['1'] = 'Magyar';
$lang['VALAMI'] = 'Csá';
$lang['FING'] = 'Fingilingi';

?>


Magát a nyelv kiválasztását a láblécben oldottam meg, mert ez ugye minden egyes oldalon be van húzva.
Mégpedig egy link-el, ami felcsap egy get-et az url-hez, így:

<html>
<a href="?nyelv=en" tabindex="100">
Angol (EN)
</a>
</html>


A linkeket minden oldalon, ami átvezet egy másik oldalra, szóval mindet, egy if-el oldanám meg, így:
<?php

<a href="<?php echo $kiindulomappa; ?>
kozosseg.php<?php if(isset($_GET['nyelv'])){?>?lang=<?php echo $_GET['nyelv']; }?>">Ide jönne a link neve, de változóban.</a>

?>


Működik a dolog, csak az a kérdés, hogy van-e erre jobb megoldás, vagy jó így ahogy van. Most foglalkozok ezzel először, ezért kérem a véleményeteket.
Előre is köszönöm.

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

hunti

Nyelvek.php-ban én a helyedben sessionban tárolnám ($_SESSION) tárolnám a kiválasztott nyelvet, ezzel megkerülve azt hogy hátha elfelejtem egy-egy linknél továbbvinni a nyelv változót.

A nyelvi fájlon is gondolkoztam, mi van ha egy-egy sor kimarad pl angolból, akkor a helyettesítendő szöveg helyén nem fog megjelenni semmi. Valahol láttam erre egy olyan megoldás, hogy egy függvényt használtak, pl nyelv("Ez egy szöveg."), a fv ellenőrizte hogy milyen nyelvet használ a felhasználó, ha magyar, akkor visszaadta a bemenetet (ez egy szöveg.), ha más akkor kikereste hogy van-e ilyen index a nyelvi tömbben, pl ($lang["Ez egy szöveg"], ha van akkor visszaadta az értékét ami a fordítás, ha nem akkor visszaadta az eredeti bemenetet  és letárolta későbbi fordítás céljából. Én ezen annyit módosítanák, hogy sessionban tárolnám betöltés után a nyelvi fájlt ha szükség van rá, memóriát úgyis lefoglalná akkor is ha minden oldalbetöltéskor betöltöm, de így legalább nem kell minden alkalommal betölteni. Viszont így minden oldalbetöltéskor ellenőrizni kell a használt nyelvel együtt hogy be van-e már töltve, illetve hiányzó fordítás esetén session-ba és adatbázisba is le kell tárolni a nem lefordított stringet, illetve adatbázisban egy külön mezőt érdemes fentartani ami jelző flagként működne, pl boolean, hogy kell-e fordítani a mezőt vagy sem.

Powered by EzPortal