Chyba u funkce extract() – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Chyba u funkce extract() – PHP – Fórum – Programujte.comChyba u funkce extract() – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Bilko0
Duch
19. 3. 2013   #1
-
0
-

Dobrý den,

mohl by mi prosím někdo pomoci?

Podle knihy jsem napsal program:

<?php
$spojeni = mysql_connect( "localhost", "bp5am", "bp5ampass") or 
    die("Zkontrolujte spojení se serverem!");
mysql_select_db( "moviesite" ) or die( mysql_error());
$dotaz = "SELECT movie_name, movie_director, movie_leadactor " .
           "FROM movie";
$vysledek = mysql_query( $dotaz, $spojeni ) or die( mysql_error());
$pocet_filmu = mysql_num_rows( $vysledek );
            
$filmy_zahlavi ='
    <h2><center>Databáze filmových recenzí</center></h2>
    <table width="70%" border="1" cellpadding="2" cellspacing="2" align="center">
      <tr>                               
        <th>Název filmu</th>
        <th>Režisér</th>
        <th>V hlavní roli</th>
      </tr> ';
function zobraz_rezisera() {
  global $reziser_filmu;
  global $reziser;
  
  $dotaz_d = "SELECT people_fullname " .
             "FROM people " .
             "WHERE people_id='$reziser_filmu'";
  $vysledky_d = mysql_query( $dotaz_d ) 
    or die( mysql_error() );
  $radek_d = mysql_fetch_array( $vysledky_d );
  extract( $radek_d );
  $reziser = $people_fullname;            
}
function zobraz_hlavni_roli() {
  global $hlavni_role_ve_filmu;
  global $hlavni_role;
  $dotaz_a = "SELECT people_fullname " .
             "FROM people " .
             "WHERE people_id='$hlavni_role_ve_filmu'";
  $vysledky_a = mysql_query( $dotaz_a )
    or die( mysql_error() );
  $radek_a = mysql_fetch_array( $vysledky_a );
  extract( $radek_a );
  $hlavni_role = $people_fullname;             
}  
$filmy_podrobnosti = '';
while ( $radek = mysql_fetch_array( $vysledek ) ) {
    $nazev_filmu = $radek['movie_name'];
    $reziser = $radek['movie_director'];
    $v_hlavni_roli = $radek['movie_leadactor'];
    zobraz_rezisera();
    zobraz_hlavni_roli();
$filmy_podrobnosti .='
  <tr>
    <td>' . $nazev_filmu . '</td>
    <td>' . $reziser . '</td>
    <td>' . $hlavni_role . '</td>
  </tr>';
}

$filmy_podrobnosti .='
  <tr>
    <td>Celkem filmů: ' . $pocet_filmu . '</td>
  </tr>
';
$filmy_pata = '</table>';

$filmy = $filmy_zahlavi;
$filmy .= $filmy_podrobnosti;
$filmy .= $filmy_pata;    

echo "V naší databázi jsou $pocet_filmu filmy.";
echo $filmy;
?>

následně mi vyskočilo několik chyb:

  • Warning: extract() expects parameter 1 to be array, boolean given in C:\wamp\www\filmovy_web\tabulka1.php on line 36
  • Notice: Undefined variable: people_fullname in C:\wamp\www\filmovy_web\tabulka1.php on line 37
  • Warning: extract() expects parameter 1 to be array, boolean given in C:\wamp\www\filmovy_web\tabulka1.php on line 48
  • Notice: Undefined variable: people_fullname in C:\wamp\www\filmovy_web\tabulka1.php on line 49

Učím se podle knížky a stále mi hází nějaké errory. Už mě to se*e! Připadám si jako blbec...

Díky moc všem za rady   

Nahlásit jako SPAM
IP: 77.48.31.–
Programátor začátečník :)
Reklama
Reklama
KIIV+42
God of flame
19. 3. 2013   #2
-
0
-

Na co probuh pouzivas extract? To si to nemuzes vytahnout pomoci fetch_assoc a udelat to jediny prirazeni rucne?

Unika mi proc se tam paras s funkcema, kdyz absolutne nepouzivas to k cemu by se hodily... misto toho se tam paras s globalnima promennejma a extractem...

Mimochodem extractu podhazujes pole indexovany cislama...  0=>"bla bla" a "people_name"=>"bla bla"  ...   $0  todle z toho asi nevykutas (jen je ta chyba zda se docela sifrovana)

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Bilko0
Duch
19. 3. 2013   #3
-
0
-

#2 KIIV
Díky za radu, jdu to vyzkoušet + použil jsem to, protože to bylo v té knize. Nejde mi do hlavy, proč mám dělat takový kraviny, když to jde udělat jinak a bez chyb! :) ještě jednou díky ;)

Nahlásit jako SPAM
IP: 77.48.31.–
Programátor začátečník :)
KIIV+42
God of flame
20. 3. 2013   #4
-
0
-

#3 Bilko
ono je mozny ze se zmenila defaultni hodnota pro to fetch_array... momentalne je, ze se vytahnou jak ciselny tak textovy klice.. pred lety to mohlo byt jen pole..  (napriklad)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Bilko0
Duch
20. 3. 2013   #5
-
0
-

Mohl by jsi mi prosím tě doporučit nějaký zdroj informací o PHP? Ta kniha mi hází jen klacky pod nohy... A já už nemám nervy na to učit se errory    Díky moc

Nahlásit jako SPAM
IP: 77.242.95.–
Programátor začátečník :)
KIIV+42
God of flame
20. 3. 2013   #6
-
0
-

ja sem jel od jakziva podle php manualu... ale nevim jestli to tobe bude stacit

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
peter
~ Anonymní uživatel
2547 příspěvků
21. 3. 2013   #7
-
0
-

php manual (priklady dole u kazde funkce, see also funkce), googlovani prikladu, diskuse na jakpsatweb.cz a tu

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
Bilko0
Duch
21. 3. 2013   #8
-
0
-

#7 peter
Ještě jsem narazil na PHP seriál: http://www.linuxsoft.cz/php/ 

Nahlásit jako SPAM
IP: 77.48.31.–
Programátor začátečník :)
peter
~ Anonymní uživatel
2547 příspěvků
22. 3. 2013   #9
-
0
-

http://www.jakpsatweb.cz/…log/php.html

Jirka Kosek - kniha o PHP (to uz je pomerne zastarale)

Mozna zminit tez clanku na zive.cz, root.cz, interval.cz. Ale to vsechno je uz dost stare. Casto tam michaji neprakticke veci, neupozornuji na problemy s vypisovanim 1000x echo, spojuji more stringu pomoci tecek a pod. Novacek pak nepouzije ob_start a stranka mu diky echum faka pomalu. Nebo nepouzije indexy pro databazi. Nebo se snazi spojovat more retezcu a naseka chyby v apostrofech a uvozovkach a pritom to jde elegantne resit pres sprinf. Coz je sice pomalejsi o malinko nez spoovani teckou, ale nenadelas tolik chyb v apostrofech.

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
CZechBoY+4
Věrný člen
27. 3. 2013   #10
-
0
-

chybu s boolenem ti to hází protože máš chybu v sql dotazu - to bys mohl vyčíst z dokumentace funkce mysql_fetch_xxx že vrací (bool)false při chybě

Nahlásit jako SPAM
IP: 213.192.10.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 64 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý