SQL táblából bizonyos értékeket hogy lehet lehívni php-val?

SQL táblából bizonyos értékeket hogy lehet lehívni php-val?
2022-09-30T03:21:44+02:00
2022-09-30T12:15:40+02:00
2022-12-07T03:40:49+01:00
iroo
Sziasztok.
A kérdésem a következő lenne: Van egy SQL táblázatom és egy táblázatban pedig több érték is található:

Kép 1

És ha én ezt le szeretném hívni így: 

$detailsInfos = mysqli_query($con, "SELECT details FROM `characters`"); if ($detailsInfos) { while($row = mysqli_fetch_array($detailsInfos)){ $details = $row["details"]; } } Érték: <?php echo $details; ?>




Akkor így fog kinézni gyakorlatban: 

Kép 2

Nekem pedig azt kéne hogy mondjuk csak az első vagy a második értéket írja ki, napok óta keresem rá a megoldást de nem találom sehogy se, esetleg valakinek van valami ötlete hogy kéne megoldani? Előre is köszönöm.
Mutasd a teljes hozzászólást!
Csatolt állomány
Hali!

Nekem ez JSON-nak tűnik. Használd a json_decode() függvényt. Például (ha jól értelmezem a leírásodat):
$details = []; $detailsInfos = mysqli_query($con, "SELECT `details` FROM `characters`"); if ($detailsInfos) { while ($row = $mysqli_fetch_assoc($detailsInfos)) { $details[] = json_decode($row['details'], false, 512, JSON_INVALID_UTF8_IGNORE); } } print_r($details);
Megjegyzés: ugyan alapvetően én is amellett vagyok, hogy egy oszlopban csak egy értéket tároljunk adatbázisban, de – és fontos: az adott feladat/folyamat/környezet függvénye – bizonyos esetekben JSON-t nyugodtan tárolhatsz egy cellában (főleg, hogy ma már minden db-motor támogatja, SQL-szinten is).

Mutasd a teljes hozzászólást!

  • Ha értéket akarsz kiiratni, javaslom a foreach ciklus használatát:

    foreach($detailsInfos as $value){ echo $value["tábládneveamikell"/indexe]; }


    Meg mivel nekem is itt javasolták, én csak továbbadom, de érdemesebb mysqli helyett PDO-t használni!
    Mutasd a teljes hozzászólást!
  • Elsőnek ez tervezési hiba, hogy ennyi adat egy cellába van.
    De ha már így esett akkor addig jó vagy, hogy megkapod egybe az egészet.
    Ezután -mivel vesszővel ellátott értékek- kezeld úgy mint egy array-t.
    Pl.: $x=array(); $x=$details; első értéke $elso=$x[0]; második érté $masodik=$x[1];

    Bár jobb lenne mindegyik értéket külön cellába rakni, mert (szerintem) ez később csak rosszabb lesz.
    Mutasd a teljes hozzászólást!
  • Hali!

    Nekem ez JSON-nak tűnik. Használd a json_decode() függvényt. Például (ha jól értelmezem a leírásodat):
    $details = []; $detailsInfos = mysqli_query($con, "SELECT `details` FROM `characters`"); if ($detailsInfos) { while ($row = $mysqli_fetch_assoc($detailsInfos)) { $details[] = json_decode($row['details'], false, 512, JSON_INVALID_UTF8_IGNORE); } } print_r($details);
    Megjegyzés: ugyan alapvetően én is amellett vagyok, hogy egy oszlopban csak egy értéket tároljunk adatbázisban, de – és fontos: az adott feladat/folyamat/környezet függvénye – bizonyos esetekben JSON-t nyugodtan tárolhatsz egy cellában (főleg, hogy ma már minden db-motor támogatja, SQL-szinten is).

    Mutasd a teljes hozzászólást!
  • Nagyon köszönöm, jó lett viszont megint egy kisebb problémába ütköztem.

    Kiírja array-be igen viszont nem tudom sehogy se lehívni mondjuk 1 bizonyos értéket.

    Kép 1

    Ahogy a képen látható így írja ki, viszont ha nekem mondjuk csak a 66-os érték kéne azt hogy kéne kivitelezni? Elnézést hogy ennyit kérdezek csak nem értem.

    Előre is köszönöm.
    Mutasd a teljes hozzászólást!
  • Konkrétan a 66-os :  $array[0][0][0];
    Ahogy netangel is írta, nézd meg a print_r kimenetét és megérted az array felépítését is.
    Mutasd a teljes hozzászólást!
  • És tényleg :D 

    Köszönöm szépen mindenkinek a segítséget! 
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd