Cannot use object of type mysqli_result as array
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
evident
- Mesaje:168
Cannot use object of type mysqli_result as array
Salut, m-am lovit de aceasta eroare in scriptul meu...
"Cannot use object of type mysqli_result as array"
Cod: Selectaţi tot
<?php
include"header.php";
require_once("include/functii.php");
$perPage = 10;
$page = 1;
if(!empty($_GET["page"])) {
$page = $_GET["page"];
}
$start = ($page-1)*$perPage;
if($start < 0) $start = 0;
$mydb->setQuery("SELECT * from php_interview_questions limit $start,$perPage");
$faq = $mydb->executeQuery();
$nr = $mydb->num_rows($faq);
if(empty($_GET["rowcount"])) {
$_GET["rowcount"] = $nr;
}
$pages = ceil($_GET["rowcount"]/$perPage);
$output = '';
if(!empty($faq)) {
$output .= '<input type="hidden" class="pagenum" value="' . $page . '" /><input type="hidden" class="total-page" value="' . $pages . '" />';
foreach($faq as $k=>$v) {
$output .= '<div class="question">' . $faq[$k]["question"] . '</div>';
$output .= '<div class="answer">' . $faq[$k]["answer"] . '</div>';
}
print $output;
}
?>
in linile
Cod: Selectaţi tot
$output .= '<div class="question">' . $faq[$k]["question"] . '</div>';
$output .= '<div class="answer">' . $faq[$k]["answer"] . '</div>';
MarPlo
Mesaje:4343
Salut,
Din enuntul mesajului de eroare sa intelege ca variabila $faq contine un obiect, nu un array.
Incearca asa:
Cod: Selectaţi tot
foreach($faq as $k=>$v) {
$output .= '<div class="question">' . $v->question .'</div>';
$output .= '<div class="answer">' . $v->answer .'</div>';
}
Daca nu functioneaza, vezi ce structura de date contine $faq ca sa-ti dai seama cum sa preiei datele din ea, cu:
Ar fi bine sa verifici si functia executeQuery() ca sa vezi cum face comanda la mysql si ce date returneaza.
evident
Mesaje:168
Cod: Selectaţi tot
object(mysqli_result)[5]
public 'current_field' => int 0
public 'field_count' => int 3
public 'lengths' => null
public 'num_rows' => int 1
public 'type' => int 0
Asta imi returneaza...cu var_dump();
si eroarea in cele doua lini cu :
Notice: Trying to get property of non-object in
Aste sunt functiile:
Cod: Selectaţi tot
function setQuery($sql='') {
$this->sql_string=$sql;
}
function executeQuery() {
$result = mysqli_query($this->conn, $this->sql_string);
$this->confirm_query($result);
return $result;
}
MarPlo
Mesaje:4343
Incearca asa:
Inlocuieste urmatoarele linii din codul tau:
Cod: Selectaţi tot
foreach($faq as $k=>$v) {
$output .= '<div class="question">' . $faq[$k]["question"] . '</div>';
$output .= '<div class="answer">' . $faq[$k]["answer"] . '</div>';
}
Cu acestea:
Cod: Selectaţi tot
while($row = $faq->fetch_assoc()){
$output .= '<div class="question">' . $row["question"] . '</div>';
$output .= '<div class="answer">' . $row["answer"] . '</div>';
}
evident
Mesaje:168
Merge, imi poti explica te rog cum ti-ai dat seama ce trebuie facut si ce era gresit?
Multumesc mult!
MarPlo
Mesaje:4343
Am vazut ca metoda executeQuery() nu transforma in vreun fel datele de la mysqli (cum am presupus ca le returneaza ca obiect) ci le returneaza direct asa cum sunt primite.
Iar datele de la mysqli in forma originala se parcurg pe randuri cu while() in timp ce sunt transformate in obiect ( cu fetch_object() ) sau in array asociativ (cu fetch_assoc() ) cum e acum in codul tau.
Subiecte similare
- Separare array de obiecte în mai multe array-uri
JavaScript - jQuery - Ajax
Primul mesaj
Am un array de obiecte, si pentru crearea unui grafic trebuie să îl împart în 3 array-uri diferite. Cum se face cu JS?
const dataOverview = ;...
Ultimul mesaj
Este simplu, aplici functia map() .
var series1 = dataOverview.map(x => x.series1);
var series2 = dataOverview.map(x => x.series2);
var...
- Adaugare array in acelasi array JS
JavaScript - jQuery - Ajax
Primul mesaj
Incerc sa adaug un array in acelasi array in javascript, Dar se pare ca nu functioneaza; al treilea element se adauga incontinuu.
Iata codul:
var...
Ultimul mesaj
Nu functioneaza cum vrei fiindca adaugi aceeași referință la array. De aceea, când array-ul se actualizează, cel din interior va fi si el actualizat....
- Setare valori din array in select tag
JavaScript - jQuery - Ajax
Primul mesaj
Salut am un array cu orele de functionare
$data = array (
'0400' => '04:00 AM',
'0430' => '04:30 AM',
'0500' => '05:00 AM',
'0530'...
Ultimul mesaj
Testeaza urmatorul cod.
Daca ceva mai trebuie schimbat, incearca si tu sa modifici dupa cum stii, in functie de ce vrei sa obtii.
Open:...
- Produsul Dot a doua array in Javascript
JavaScript - jQuery - Ajax
Primul mesaj
Cum se poate implementa eficient o metoda dotProduct (pentru a obține produsul Dot din două array) fără a importa alte biblioteci Javascript?
De...
Ultimul mesaj
Iată o metodă.
Se foloseste funcția map() pentru a crea un nou array cu rezultate înmulțite ale fiecărui index, apoi se aplica funcția reduce()...
- parametru din array in query cu laravel
PHP - MySQL - XML
Primul mesaj
Salutare,
din frontend primesc urmatorul array:
$arrClienti =
dupa care ii fac implode
$idClienti = preg_replace('/ /i', '', implode( , ,...
Ultimul mesaj
Dupa multe sapaturi, am ajuns la concluzia ca nu se poate rula ca parametru o matrice. Doar daca parametrul cu matricea este rulat intr-un loop....
- Indexi valorilor din array care fac suma
PHP - MySQL - XML
Primul mesaj
Salutare,
am un array cu urmatoarele numere:
arr =
si o variabila, care poate contine numere intregi de la 50 pana 750 (750 este suma...
Ultimul mesaj
Mulțumesc mult marplo, este ceea ce îmi trebuie