Diskuze: Undefined variable: "row"

PHP PHP Undefined variable: "row" American English version English version

Avatar
Peter Schoeller:

Ahojte, viete mi prosim poradit s php strankou?
Pokusam sa vytvorit tabulku, kde by sa zoradovali data podla toho, na ktory stlpec kliknem. To mi riesi premenna $action (ASC/DESC)
Aj tabulka sa mi na vystupe ukaze, ale zaroven sa mi aj vypise chyba "Undefined variable: row" v piatich riadkoch (pouzivam 5 stlpcov) pritom header riadok sa vypise normalne.
Ziaduce je, aby v URL sa zobrazilo napriklad:

.../members_1.php?id=name&action=ASC

namiesto toho sa mi zobrazi:

.../members_1.php?id=&action=ASC

a uvedena chyba 5x. Pod tym vyplnena tabulka, ale bez moznosti zoradovat data.
Tu je skrateny zdroj:

        $where = " ORDER BY $id $action ";
        $sql = "SELECT * FROM members " . $where;
}

$result = $conn->query($sql);
if ($result->num_rows > 0) {


        echo "<table>";
                echo "<tr>";
                        echo '<th><a href="members_1.php?id='.$row['name'].'&action=' . $action . '">Name</a></th>';
                        echo '<th>......</th>';
                        echo '<th>......</th>';
                        echo '<th>......</th>';
                        echo '<th>......</th>';
                echo "</tr>";


// output data of each row

while($row = $result->fetch_assoc()) {

        echo "<tr>";
                echo '<td> ' . $row['name'] . '</td>';
                echo '<td>.....</td>';
                echo '<td>.....</td>';
                echo '<td>.....</td>';
                echo '<td>.....</td>';
        echo "</tr>";
        }

Ak to mam upravene pre pouzitie v html, vsetko funguje ako ma, ale a to potrebujem v cistom php.

Viete mi pomoct?

Editováno 11. dubna 17:34
 
Odpovědět 11. dubna 17:32
Avatar
mayo505
Redaktor
Avatar
mayo505:

pokiaľ dobre vidím tak premmenú $row zavádzaš až tu

while($row = $result->fetch_assoc()) {

ale používaš ju už tu

echo '<th><a href="members_1.php?id='.$row['name'].'&action=' . $action . '">Name</a></th>';
 
Nahoru Odpovědět 11. dubna 18:01
Avatar
Odpovídá na mayo505
Peter Schoeller:

Skusal som to dat aj hore, ale vtedy mi to vypisalo do do kzdeho riadku header a aj 1 riadok....
A takto az po LIMIT, ktory mam nastaveny na 50. Tzn 50x Header a vzdy pod kazdym 50x vysledok. A uvedena chyba ostava.
Asi by to chcelo nastavit druhu, rozdielnu, premennu, ale vobec si neviem poradit ako.

 
Nahoru Odpovědět 11. dubna 18:10
Avatar
mayo505
Redaktor
Avatar
Odpovídá na Peter Schoeller
mayo505:

proste to $row['name'] tam byť nemôže, lebo to ešte neexistuje. Ak dáš to while hore tak je logické, že header vypíše 50x lebo je v cykle, aj keď neviem prečo tam potom stále vypíše tú chybu.

To $row['name'] nahraď iba reťazcom "name" a malo by to nejako fungovať (name bude meno stĺpca podľa ktorého to bude zoraďovať), ale neviem či tak ako očakávaš.

 
Nahoru Odpovědět 11. dubna 18:26
Avatar
Odpovídá na mayo505
Peter Schoeller:

Nefunguje to. Teda po refreshe stranky sa to pekne ukazala tabulka, ako si to predstavujem ale po kliknuti napr. na "Name" vyhodilo chyby:
Na riadku 31: "Undefined index: action in "

$action = $_GET["action"]; // geting action value which we are passing from table headers

a na riadku 85: "Trying to get property of non-object in"

if ($result->num_rows > 0) {

no a v adresnom riadku URL ostalo len:

.../members_1.php?id=

Ak tam rucne dopisem napr.

?id=name&action=ASC
?id=city&action=DESC

tak vsetko funguje.
Malo by to ist kliknutim na nazov stlpca.
Zaujimave je ze v html zapise to funguje ako ma.

Editováno 11. dubna 19:17
 
Nahoru Odpovědět 11. dubna 19:15
Avatar
mayo505
Redaktor
Avatar
mayo505:

tak potom zlú url nastavuješ tomu odkazu v hlavičke

 
Nahoru Odpovědět 11. dubna 19:48
Avatar
Odpovídá na mayo505
Peter Schoeller:

Nie.... Je to na tej samej stranke.
Asi to budem musiet cele prekopat podla tohto, s upravou na mysqli, ale chcel som sa tomu vyhnut, kedze v html kode to funguje:
https://www.dougv.com/…al-approach/

 
Nahoru Odpovědět 11. dubna 19:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.