Autor | Zpráva | ||
---|---|---|---|
licantrop Profil |
#1 · Zasláno: 18. 1. 2015, 21:19:53
Hoj, už nevim co mam špatně.
$tam = mysql_fetch_array (mysql_query("SELECT ID FROM sentitems ")); echo (implode($tam)); Mělo by to vrátit posledni ID ale vrátí to dvojitou hodnotu. Např.: 171171 - má být 171 |
||
lionel messi Profil |
#2 · Zasláno: 18. 1. 2015, 21:24:16
licantrop:
Funkcia implode prijíma dva parametre, v prvom reťazec, ktorí spojí prvky poľa, a v druhom pole, ale aj tak je to neštandardné správanie. Nemáš to v rámci nejakého cyklu? Čo vypíše echo $tam["ID"]; ?
|
||
licantrop Profil |
#3 · Zasláno: 18. 1. 2015, 21:40:43
lionel messi:
toto vrátí správnou hodnotu (171) V cyklu to není... |
||
xROAL Profil |
#4 · Zasláno: 18. 1. 2015, 22:05:14
mysql_fetch_array() za bežných okolností vráti pole, v ktorom sú hodnoty dvojmo.
Keď si vypíšeš var_dump($tam) , zistíš že vo výslednom poli je hodnota "171" raz pod textovým indexom "ID" a raz pod číselným indexom, preto ti implode() robí to, čo robí.
Ak chceš mať vo výslednom poli hodnoty len pod textovým kľúčom/číselným indexom (pri takomto použití je asi jedno, ktoré z toho si vyberieš), tak uveď ako druhý parameter funkcie MYSQL_ASSOC /MYSQL_NUM , prípadne využi priamo funkcie mysql_fetch_assoc() /mysql_fetch_row() .
|
||
DJ Miky Profil |
Funkce mysql_fetch_array vrátí pole, kde jsou jednak pojmenované indexy podle sloupců z výsledku (v tomto případě
ID ) a jednak číselné indexy podle pořadí sloupců (v tomto případě 0 ). Je možné to vidět např. při vypsání pole:
print_r($tam); Otázkou však je, čeho chceš docílit. V této podobě kódu vždy bereš pouze první řádek. Pokud chceš spojit všechny ID dohromady, musíš např. projít celý výsledek pomocí cyklu: $tam = mysql_query("SELECT ID FROM sentitems "); while($tam = mysql_fetch_assoc($result)) { // … zde si můžeš jednotlivé $tam['ID'] uložit např. do jiného pole a pak je spojit pomocí implode() } |
||
licantrop Profil |
#6 · Zasláno: 18. 1. 2015, 22:24:44
Super, děkuji. Už to maká... Vubec jsem něvěděl, že to takto funguje...
|
||
Časová prodleva: 9 let
|
0