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
- 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:...
- 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
- implode(): Passing glue string after array is deprecated
PHP - MySQL - XML
Primul mesaj
Dupa 7 ani !
Acum, revazand o veche aplicatie cu codul Multiple Select Drop Down list cu tabel 3 coloane +1; am constatat ca datorita upgradarii...
Ultimul mesaj
OK ! Eu nu am inteles despre ce parametri era vorba. S-a rezolvat, multumesc pentru promptitudinea cu care mi-ai raspuns ! TOATE CELE BUNE !!!