IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Generování tabulky

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
ManiusCZ
Člen
Avatar
ManiusCZ:6.3.2013 15:53

Ahoj, chtěl jsem se zeptat jestli by mi někdo neporadil jak vytvořit to, abych když vytvořím v DB nový zápis aby si mi automaticky vygeneroval další sloupec s tím zápisem .. Prostě automaticky generujicí se tabulka ...

Děkuji

Odpovědět
6.3.2013 15:53
Motto FTW !
Avatar
ManiusCZ
Člen
Avatar
ManiusCZ:6.3.2013 15:58

Jo a ještě jsem se chtěl zeptat co je špatně na tomhle kódu že nefunguje :-)

<?php
session_start();
require_once "../scripts/connect_to_mysql.php";


if(isset($_GET['edit'])) {
        $q = "SELECT * FROM `pages` WHERE `id` = '".$_GET['edit']."'";
        $r = mysqli_query($q);

        while ($row = mysqli_fetch_array($r)) {
                        $id = $row['id'];
                        $title = $row['pagetitle'];
                        $link = $row['linklabel'];
                 }

                 echo $id."<br />";
                  echo $title."<br />";
                   echo $link."<br />";
        }
?>
Nahoru Odpovědět
6.3.2013 15:58
Motto FTW !
Avatar
Odpovídá na ManiusCZ
Drahomír Hanák:6.3.2013 16:03

Tohle bych řešil přes triggery (záleží na databázi). Podle mě je to ale špatný návrh a měl bys to udělat jinak.

Na tom kódu je špatně víc věcí. Neošetřuješ vstup ani výstup a taky vypisuješ hodnoty mimo cyklus. Zkus se podívat tady na nějaké tutoriály o PHP http://www.itnetwork.cz/…ogramy-v-php

 
Nahoru Odpovědět
6.3.2013 16:03
Avatar
Kit
Tvůrce
Avatar
Odpovídá na ManiusCZ
Kit:6.3.2013 16:05

Myslím si, že v tom kódu bude SQL injection fungovat velmi dobře :)

Místo mysqli_fetch_a­rray() patří asi mysqli_fetch_as­soc(). Nevím to jistě, ovladač MySQLi jsem přeskočil.

Nahoru Odpovědět
6.3.2013 16:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
ManiusCZ
Člen
Avatar
ManiusCZ:6.3.2013 16:08

Každopádně mám blank page :-/

Nahoru Odpovědět
6.3.2013 16:08
Motto FTW !
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Drahomír Hanák
Kit:6.3.2013 16:09

Triggery asi nebudou potřebné, ale tabulky by se skutečně měly dělat raději po řádcích.

Nahoru Odpovědět
6.3.2013 16:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
ManiusCZ
Člen
Avatar
ManiusCZ:6.3.2013 16:11

Sorry v myslel sem řádky :-D

Nahoru Odpovědět
6.3.2013 16:11
Motto FTW !
Avatar
ManiusCZ
Člen
Avatar
ManiusCZ:6.3.2013 17:23

Vymyslel jsem toto, to generuje tabulku, ale neodkazuje to :-(

<?php
$sqlCommand = "SELECT id, linklabel FROM pages WHERE showing='1' ORDER BY pageorder ASC";
$query = mysqli_query($myConnection, $sqlCommand) or die(mysqli_error());

echo '<table width="50%" border="1">';
        while ($row = mysqli_fetch_array($query)){
                $pid = $row["id"];
                $menuDisplay = '';
        $linklabel = $row["linklabel"];
                $menuDisplay .= '<a href="edit_page.php?pid=' . $pid . '">' . $linklabel . '</a><br />';
                        echo '<tr>';
                        echo '<td valign="top" bgcolor="#D5FFD5" style="border:#6B450C thin solid; line-height:1.5em;>'.$menuDisplay.'</td>';
                echo '</tr>';}
echo '</table>';

mysqli_free_result($query);
?>
Nahoru Odpovědět
6.3.2013 17:23
Motto FTW !
Avatar
Kit
Tvůrce
Avatar
Odpovídá na ManiusCZ
Kit:6.3.2013 17:29

Možná stačilo jen posunout předposlední } o 3 řádky dolů...

Nahoru Odpovědět
6.3.2013 17:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
ManiusCZ
Člen
Avatar
ManiusCZ:6.3.2013 17:46

Nefachá :-/ pak se vypíše jenom první, a to stejně nikam neodkazuje !

Nahoru Odpovědět
6.3.2013 17:46
Motto FTW !
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na ManiusCZ
David Hartinger:6.3.2013 19:32

Na první pohled tam nevidím problém, zkus si vypsat třeba linklabely normálně pod sebe bez tabulky, jestli tam máš vůbec nějaká data. Když něco debuguješ, jde se vždy od jednoduchého ke složitému, ne že to ladíš od konce.

Nahoru Odpovědět
6.3.2013 19:32
New kid back on the block with a R.I.P
Avatar
ManiusCZ
Člen
Avatar
ManiusCZ:6.3.2013 21:10

Jo to funguje , jedou mi na tom články :-)

Nahoru Odpovědět
6.3.2013 21:10
Motto FTW !
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na ManiusCZ
David Hartinger:6.3.2013 21:26

Myslím tady v tom kódu žejo :P

Nahoru Odpovědět
6.3.2013 21:26
New kid back on the block with a R.I.P
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 13 zpráv z 13.