Autor Zpráva
jtfcobra
Profil
Zjednoduseni do jednoho mysql dotazu na databazy poradite ? mam jich asi 33 a nechtel bych to mit takle je to mozne napsat jinak?


          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V3";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena19=str_replace(",", ".",$zaznam["CENA"]);
}
mysql_close($db)
;
?>
          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V4";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena20=str_replace(",", ".",$zaznam["CENA"]);
}
mysql_close($db)
;
?>
          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V5";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena21=str_replace(",", ".",$zaznam["CENA"]);
}
mysql_close($db)
;
?>
          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V6";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena22=str_replace(",", ".",$zaznam["CENA"]);
}
mysql_close($db)
;
?>
          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V30";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena23=str_replace(",", ".",str_replace(",", ".",$zaznam["CENA"]));
}
mysql_close($db)
;
?>
          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V27";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena24=str_replace(",", ".",str_replace(",", ".",$zaznam["CENA"]));
}
mysql_close($db)
;
?>
          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V28";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena25=str_replace(",", ".",str_replace(",", ".",$zaznam["CENA"]));
}
mysql_close($db)
;
?>
          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V29";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena26=str_replace(",", ".",str_replace(",", ".",$zaznam["CENA"]));
}
mysql_close($db)
;
?>
          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V32";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena27=str_replace(",", ".",str_replace(",", ".",$zaznam["CENA"]));
}
mysql_close($db)
;
?>
          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V31";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena28=str_replace(",", ".",$zaznam["CENA"]);
}
mysql_close($db)
;
?>
          <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V34";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT * FROM meridla WHERE `IDMERAKU` = '".$hledat."'   ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$cena29=str_replace(",", ".",$zaznam["CENA"]);
}
mysql_close($db)
;
?>
 
?>
tiso
Profil
Čo sa snažíš dosiahnuť? Riadok 7 tam máš ako vzor, alebo kde je premenná $result?
lionel messi
Profil
jtfcobra:
je to mozne napsat jinak?
Áno, v záujme tvorby prehľadného kódu a zachovania duševného zdravia programátora pracujúceho s ním je to dokonca potrebné.

Začal by som tým, že by som vôbec nevolal mysql_close, prestal mnohonásobne definovať premennú $hledat2, zavolal connect iba raz (na začiatku). Čo sa týka SQL dotazu, môžeš použiť operátor IN:
SELECT * FROM meridla WHERE `IDMERAKU` IN ('V4', 'V5', 'V6', 'V7', 'V1000', 'V7425')

PS: Pred otáznik nepatrí medzera.
jtfcobra
Profil
Takle je to asi kravina co?

          <?php
require_once('Connections/mereni.php');  
$db = mysql_connect($hostname_test, $username_test, $password_test);
mysql_select_db($database_test,$db);
$vysledek = mysql_query($result); 

if(!$data=mysql_query("SELECT * FROM meridla ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
if ($zaznam["IDMERAKU"]=='V9') { $cena1=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V18') { $cena2=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V19') { $cena3=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V11') { $cena4=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V20') { $cena5=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V16') { $cena6=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V12') { $cena7=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V13') { $cena8=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V14') { $cena9=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V21') { $cena10=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V20') { $cena11=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V23') { $cena12=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V24') { $cena13=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V10') { $cena14=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V7') { $cena15=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V8') { $cena16=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V1') { $cena17=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V2') { $cena18=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V3') { $cena19=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V4') { $cena20=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V5') { $cena21=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V6') { $cena22=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V30') { $cena23=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V27') { $cena24=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V28') { $cena25=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V29') { $cena26=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V32') { $cena27=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V31') { $cena28=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V34') { $cena29=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V33') { $cena30=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V36') { $cena31=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V35') { $cena32=str_replace(",", ".",$zaznam["CENA"]); }
if ($zaznam["IDMERAKU"]=='V37') { $cena33=str_replace(",", ".",$zaznam["CENA"]); }
}
mysql_close($db);
?>



Tohle zni dobre

SELECT * FROM meridla WHERE `IDMERAKU` IN ('V4', 'V5', 'V6', 'V7', 'V1000', 'V7425')

a jak zjistim
CENA1(V4),CENA2(V5), atd...
tiso
Profil
jtfcobra: [i]a jak zjistim CENA1(V4),CENA2(V5)
To záleží od toho čo s tým robíš ďalej. Naozaj to potrebuješ mať v takomto formáte? Prečo máš tak zvláštne pomenované tie ceny?
jtfcobra
Profil
Pak pocitam spotrebu ale myslim si ze to mam take zbytecne .....slozite
$
$celkem1=spotřeba
$celkemKC1=celková cena


                  <?php
$db = mysql_connect($hostname_test, $username_test, $password_test);
$hledat=  "V9";
$hledat2= $_GET["rok"]."-". $_GET["mesic"]."-";
mysql_select_db($database_test,$db);
//vytvořen&iacute; sql dotazu
$vysledek = mysql_query($result); // proveden&iacute; sql dotazu 

if(!$data=mysql_query("SELECT SPOTREBA FROM spotreba WHERE `MERAK`='".$hledat."'  AND `DATUM` LIKE '%".$hledat2."%'  ",$db)) 
    {echo "<h2>Nepodařilo se připojit k tabulce zbozi.</h2>\n"; break;}

while ($zaznam = mysql_fetch_array($data)){
$celkem1=$celkem1+str_replace(",", ".",$zaznam["SPOTREBA"]);
$celkemKC1=$celkem1*$cena1;
}
mysql_close($db)
;
echo round($celkem1,2);
?>
Alphard
Profil
jtfcobra:
Poradite?
Nedá se v tom vyznat...

while ($zaznam = mysql_fetch_array($data)){
$celkem1=$celkem1+str_replace(",", ".",$zaznam["SPOTREBA"]);
$celkemKC1=$celkem1*$cena1;
}
Nešlo by to sumovat už v databázi?


Kód z prvního příspěvku je doufám už přepsán. Nebo ještě ne?
Tori
Profil
jtfcobra:
Proč na ukládání desetinných čísel do DB používáte řetězcový typ, místo číselného? Použijte normálně DECIMAL a nemusíte řešit str_replace desetinné čárky za tečku. Formátování (změnit na čárku, mezery mezi tisíci apod.) se dá řešit až při vypisování výsledků (number_format).

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