Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Best gaming laptop?

Humane (2024)

Recomandare casti 100-150 lei

Schimbare bec far VW Touran 1T3
 Plata impozit PF

Ce parere aveti de viteza/ modul ...

Love Lies Bleeding - 2024

Cum sterg mails din Promotions
 Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Donez medicamente renale ptr pisica

Ce componenta e asta si ce ziceti...
 Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg
 

Mysqli_fetch_array - nu pot extrage id-urile randurilor

- - - - -
  • Please log in to reply
26 replies to this topic

#19
neotester

neotester

    Junior Member

  • Grup: Members
  • Posts: 34
  • Înscris: 03.12.2010
@DarkAngelBv @sergiu_spooky:
Ok. Am updatat codul. Query-ul functioneaza. In plus, am vrut sa inserez si $category in shop_subcategories ca sa pot fi sigur-sigur ca query-ul chiar functioneaza insa ID-ul ultimei categorii din shop_categories tot zero ramane. Tot zero este valoarea lui de fiecare data cand este inserat in shop_subcategories.

$res1=$db->query("select id from shop_categories where category='$category' order by id asc limit 1");
$rand1 = mysqli_fetch_array($res1);
$db->query("Insert into shop_subcategories (main_category_id,subcategory) values ('".$rand1['id']."','$subcategory_list')");

Sunt foarte frustrat pentru ca-mi pierd noptile pentru niste lucruri care altadata le stiam. Iar aceasta "extensie" a noilor versiuni de MySQL si PHP ma termina. Inca nu-mi e clar ce s-a intamplat cu versiunea asta. Cu PHP 4 n-am avut probleme. In fine, asta e una dintre frustrari.

Ok. Trecem mai departe. Am vrut s-o iau mai amanuntit, sa-mi pun IF-uri care verifica daca query-urile au fost executate.
Ei, am ajuns la asa ceva si nu se intampla nimic. Nici un mesaj. Nada.
$interogare="select id from shop_categories order by id asc limit 1";
   $rezultat=$db->query($interogare);
   if($rezultat->fetch_array(MYSQLI_NUM)===TRUE)
	{
	echo "nu merge";
	}
   else {
	echo "Merge";
	}

.

Acum, va rog, nu va mai abtineti sa-mi dai acea "mura". Pentru ca nu mi-o dati nici in "gura" si nici in buzunar. Eu m-am indragostit instant de PHP/MySQL acum vreo 5 ani dar am luat o pauza. E momentul sa ma reapuc si sa cred din nou in el. Nu ma ajutati daca ma lasati sa-mi bag capu' de pereti.

Revenind la problema: nu mi se executa $rezultat->fetch_array(MYSQLI_NUM). Acest fetch al tabloului nu a functionat deloc de cand am tot pornit acest topic. Haideti sa rezolv asta mai intai.
Dupa mine, codul de mai sus ar trebui sa se execute PERFECT. Wtf?!

#20
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Posts: 12,747
  • Înscris: 24.03.2006
Pai mai intai poate ne spui ce ORM folosesti pentru baza de date, sau ce framework. Sau folosesti direct mysqli?
Incearca cu MYSQLI_BOTH.

$rezultat->fetch_array(MYSQLI_NUM) nu o sa fie niciodata true. o sa fie false sau un array.

$interogare="select id from shop_categories order by id asc limit 1";
$rezultat=$db->query($interogare);
var_dump($rezultat->fetch_array(MYSQLI_BOTH));

Vezi asa daca iti scoate valoarea din baza de date

#21
neotester

neotester

    Junior Member

  • Grup: Members
  • Posts: 34
  • Înscris: 03.12.2010
Nu am succes. Nu imi afiseaza nimic. Pur si simplu pagina este alba. Pff, un amarat de query... simt ca innebunesc.

#22
neotester

neotester

    Junior Member

  • Grup: Members
  • Posts: 34
  • Înscris: 03.12.2010
@DarkAngelBv: E prima oara cand caut despre ORM. Sa inteleg ca un astfel de concept te ajuta sa creezi niste obiecte virtuale, cum ar veni. S-ar putea sa vorbesc prostii aici dar... mi-e foarte vaga, asa, informatia despre ORM.
Acum, m-ai intrebat ce ORM sau framework folosesc. Nu folosesc nici un framework (din cate stiu eu). In schimb, observ din ce in ce mai des in acest CMS faptul ca in loc sa se conecteze la baza de date prin "traditionalul" $conectare=mysql_connect($user, $host, $db) ci ceva de genul $db->... (aici, pune orice fel de tip de query - select, insert, fetch_array, etc.).
Ok. Daca puteti sa-mi spuneti mai multe despre acest ORM, e foarte ok, daca nu, voi descoperi sau nu in timpul util.
Update: "ORM (Object Role Modeling) reprezinta o descriere generala a bazei de date, utilizand simboluri intuitive pentru obiecte si atribute si care verbalizeaza (exprima) relatiile dintre acestea, utilizand o gama larga de constrangeri care surprinde si forteaza regulile de business." spune aici.
Sa inteleg ca acest CMS al meu, se foloseste de ORM cand foloseste cod precum "$db->query("...")", "$db->fetch_results("...") etc.?

Revenind, deja e stupid ca nu pot sa execut un amarat de query. Frustrat ar trebui sa fie cuvantul cheie al acestui topic.

Edited by neotester, 04 July 2013 - 13:39.


#23
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Posts: 12,747
  • Înscris: 24.03.2006
Pai spune despre ce CMS este vorba, sa vedem daca nu cumva are alt tip de mod de lucru fata de mysqli.
ORM (Object Relational Model) este de fapt ceea ce ar trebui sa fie un must in orice aplicatie.
De fapt clasa ORM instantiaza un obiect cu care poti lucra mai departe. In felul asta o sa ai ceva de genul

$my = new shop_cat();
shop_cat este o clasa ce extinde clasa orm-ului (row sau collection, sau se pot combina, dar personal prefer sa las row-ul separat de colectie).
shop_cat mosteneste de la clasa extinsa mai multe functii, gen save, delete, update, etc.
Eu am un ORM light care m-a ajutat enorm atunci cand am trecut unul dintre situri de la MySQL la MongoDB. Daca nu aveam implementat ORM cand am facut trecerea as fi avut de moditicat o tona de fisiere. Asa am modificat 2 fisiere (row.php si collection.php dupa cum le-am denumit eu).


Revenind la oile noastre. Daca iti da pagina alba fie ai pus var_dump dupa if-ul care verifica daca exista rezultatul, fie ai o eroare fatala pe undeva si ai error_reporting dezactivat.

#24
neotester

neotester

    Junior Member

  • Grup: Members
  • Posts: 34
  • Înscris: 03.12.2010
Nu pot spune ce CMS e. In schimb, iti pot spune ca executand phpinfo(), am gasit error_reporting cu valorile:
error_reporting 22519 22519
var_dump il folosesc astfel, acum:
if ($subcategory_list=="noparent") {
   $db->query("Insert into shop_categories (category, category_url, parent_id, details) values ('$category', '$category_url', 0, '$details')");
  }
  else {
   $interogare="select id from shop_categories where category='$category' order by id asc limit 1";
   $rezultat=$db->query($interogare);
   var_dump($rezultat->fetch_array(MYSQLI_ASSOC));
		}
$rezultat nu trebuie declarat mai intai ca un array (daca nu ma insel)?
Am incercat si asa, unde $rezultat arata de forma $rezultat[]=array(); si abia apoi execut codul de mai sus.
Dar tot pagina alba.

#25
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Posts: 12,747
  • Înscris: 24.03.2006
trebuie sa ai error_reporting E_ALL sau E_NOTICE sau E_STRICT.
Legat de array-uri, prin $rezultat[] de fapt ai un array $rezultat cu primul element un array gol.

Cel mai bine pentru tine, daca nu ai mai lucrat cu PHP de cand era PHP4 ar fi sa incepi de la 0.
PHP4 nu seamana deloc cu ce este acum. Sunt alte best-practices si in general un alt tip de abordare cand scrii cod.

#26
neotester

neotester

    Junior Member

  • Grup: Members
  • Posts: 34
  • Înscris: 03.12.2010

View PostDarkAngelBv, on 04 iulie 2013 - 16:43, said:

trebuie sa ai error_reporting E_ALL sau E_NOTICE sau E_STRICT.
E un hosting shared. Am deschis un tichet, poate imi spun mai multe.

Quote

Cel mai bine pentru tine, daca nu ai mai lucrat cu PHP de cand era PHP4 ar fi sa incepi de la 0.
PHP4 nu seamana deloc cu ce este acum. Sunt alte best-practices si in general un alt tip de abordare cand scrii cod.
Ma determina sa-mi caut cateva carti pentru php 5. Dar asta nu inseamna ca nu am nevoie sa extrag macar ID-ul din aceasta tabela, pana ma voi refamiliariza cu limbajul. Si nu vreau sa par ieftin cand spun asta. Mi-a placut prea mult limbajul ca sa-l abandonez acum. E un must pentru mine.

Acum, cum mai pot aborda "depanarea" codului? Sau, cum mai pot testa? IF-urile au fost primele care mi-au trecut prin cap de-alungul acestui topic dar...imi trebuie ceva mai concret, pe calea potrivita. Trebuie sa rezolv macar asta. Daca extrag ID-ul sunt foarte sigur ca reusesc sa-mi ating scopul: extragerea id-ului din sub_categories si eventual inserarea acestuia in shop_subcategories.

#27
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,239
  • Înscris: 24.02.2007
Programarea web nu se face batand din palme, copiind 4-5 linii de cod de pe ici pe acolo si citind 2-3 tutorialu de pe vreun blog si apoi injurand hostul cand ceva nu merge.

Toate problemele din acest topic arata ca iti lipsesc cunostiintele de baza. Daca vrei sa faci treaba serioasa ia-o incet, cu bazele, cu intelegerea mediului tinta, cu tehnici de depanare etc, si apuca-te de scris cms'uri dupa ce stapanesti cum sta treaba.

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate