Autor Zpráva
drticipest
Profil
Čauec, prosím kde mám chybu? nějak mi script nefunguje u toh if a else

Moderátor Joker: Titulek „If a else“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
<?php
  session_start();
  if(!$_SESSION['login_ok']) {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location:http://www.zajimavosti.okamzite.eu/login.php");
    header("Connection: close");
    }
  include "../../funkce.php";
?><?php 

include ("../pripojenikdatabazi.php"); 
$q = mysql_query("SELECT * FROM pc order by cislo desc limit 1") or die(mysql_error());
echo "<ul>";
while($data=mysql_fetch_array($q)) 
$cislo=$data["cislo"]+1;   
$id=("$cislo.php");

$popis=$HTTP_POST_VARS[Popis];
$obsah=$HTTP_POST_VARS[obsah];
$autor=$HTTP_POST_VARS[autor];
$nadpis=$HTTP_POST_VARS[nadpis];

$nazev_souboru= StrTr ($nadpis, "áäčďéěëíňóöřšťúůüýžÁÄČĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽ ", "aacdeeeinoorstuuuyzaacdeeeinoorstuuuyz_");
$title=$HTTP_POST_VARS[title];
$klicovaslova=$HTTP_POST_VARS[klicovaslova];
echo "ahoj $nazev$odkaz$Popis";
include "../pripojenikdatabazi.php";
$odkaz=("http://www.zajimavosti.okamzite.eu/web/pc/clanky/$nazev_souboru.php");


$q = mysql_query("SELECT nazev FROM vse where nazev='$nazev_souboru' ") or die(mysql_error());
while($dataa[nazev]=mysql_fetch_array($q)) 
echo $dataa[nazev];   
if ($nazev_souboru==$dataa[nazev]){
echo ("Duplicitni nazev clanku");}
else {
  


 $sql="INSERT INTO pc(Nazev,Popis,odkaz,cislo,obsah,autor,nadpis,title,klicovaslova) VALUES('$nazev','$popis','$odkaz','$cislo','$obsah','$autor','$nadpis','$title','$klicovaslova')";
MySQL_DB_Query($conn_db,$sql,$spojeni)
?>
<p>Článek byl vytvořen najdete ho na této adrese </p><?php echo ("$odkaz")?>
<?php 
$obsah5 ='<html><head><meta http-equiv="Content-Language" content="cs"><meta http-equiv="Content-Type" content="text/html; charset=windows-1250"><title>';
$obsah6='</title><link rel="stylesheet" type="text/css" href="../../style.css"> <meta name="keywords" content="';
$obsah7='"><meta name="description" content="';
$obsah8='">'; 
$obsah9='<body>';
$obsah12='<div class="obsah">';
$obsah13='</div>';
$obsah14='<div class="autor">';
$obsah15='</div>';
$obsah18='<div class="nadpis">';
$obsah19='</div>';
$obsah16='<?php include ("../../styly.php");include ("../../azpomenu.php");include ("../../menu.php");?>';
$obsah17=' <?php include ("../../pripojenikdatabazi.php");  include ("../../bannery.php"); include ("../../paticka.php");?>';

$akce=fopen("./clanky/$nazev_souboru.php","w");
chmod("./clanky/$nazev_souboru.php", 0777);
fwrite($akce,"$obsah5$title$obsah6$klicovaslova$obsah7$popis$obsah8$obsah9$obsah16$obsah18$nadpis$obsah19$obsah11$obsah12$obsah$obsah13$obsah14$autor$obsah15$obsah17");



fclose($akce);

}    


?>
Radek9
Profil
drticipest:
1) Nečíselné indexy ([Popis] atp.) uzavírej do uvozovek (["Popis"]).
2) Nepoužívej $HTTP_POST_VARS, ale $_POST.
Joker
Profil
drticipest:
prosím kde mám chybu?
Chyb vidím hned několik:
1. Nicneříkající obecný titulek vlákna. Už bych ho změnil, kdyby nicneříkající nebyl i dotaz.
2. Popis problému slovy „nefunguje to“. Asi to bude rozbité.
3. Chybí jakékoliv bližší informace o problému.
4. „Kde mám chybu?“ a kupa zdrojáku. I když malé plus alespoň za přibližné určení problémového místa.
drticipest
Profil
Promiňte,
když zpracovávám několik údajů z předchozího formuláře, tak bych měl zjistit jeslti $nazev_souboru už je vložena v databázi - tabulce vse, a jesltiže tam už tento záznam je, tak by mě to mělo vypsat duplicitní název a skončit to a jesltiže ne, - else - tak pokračovat následujícím scriptem, no a když zpracuji z přechozího formuláře $nazev_souboru a dám obsah proměný stejný jako už mám v databázi tak mi to akorát vypíše ARRAY a provede se zbytek scriptu , přičermž ten by se provést neměl
drticipest
Profil
Ještě pro upřesnění, když si do pspadu vložím tento script, tak se mi uzavírací složená závorka u else nezobrazí jako že ukončuje tu první. Nevím jak to popsat, dyžtak to zkuste sami v pspadu
panther
Profil
drticipest:
Ještě pro upřesnění, když si do pspadu vložím tento script, tak se mi uzavírací složená závorka u else nezobrazí jako že ukončuje tu první.
prtoože když je v textovém řetězci ?>, multihighlighter další kód jako PHP neobarvuje, nepokryje tedy závorku. Když si změníš zvýraznění syntaxe na PHP, závorky budou sedět.
Radek9
Profil
drticipest:
Aha, ty do $data["nazev"] ukládáš celý array. Ukládej tam jen tu jednu hodnotu.
drticipest
Profil
A to mám udělat jak? Fakt se v tom moc nevyznám :)
drticipest
Profil
panther:
Díky to by mě nikdy nenapadlo :-)
Joker
Profil
drticipest:
Na řádku 34,
while($dataa[nazev]=mysql_fetch_array($q))
asi má být jen $dataa
drticipest
Profil
Joker:
bohužel i po umazání mi to vypisuje stále Array
Joker
Profil
drticipest:
Jak vypadají ty dva řádky teď?

Jo a když jsme se konečně dobrali k problému, přejmenuji vlákno.
drticipest
Profil
$q = mysql_query("SELECT nazev FROM vse where nazev='$nazev_souboru' ") or die(mysql_error());
while($dataa=mysql_fetch_array($q)) 
echo $dataa;   
if ($nazev_souboru==$dataa)


Neměl bych to spíš dělat přes mysql_num_rows a pak když if se rovná 1 tak jen vypsat echo atd. Nebylo by to lepší?
Davex
Profil
Chyba byla jen na řádku 32 u while. Na ostatních mělo asi zůstat $dataa['nazev'].
drticipest
Profil
Tak jsem to nakonec vyřešil přes mysql_num_rows, jinak díkec za nápady :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0