Autor Zpráva
Patiseq
Profil *
čau lidi mám zde script:
<?php
include "../include/config.php";
mysql_connect($mysql_ip,$mysql_user,$mysql_pass);
mysql_select_db($mysql_name);
$query_vyber_vse = mysql_query("SELECT * FROM citaty WHERE id ;"); 
while ($zaznam = mysql_fetch_array($query_vyber_vse))
echo "
             <tr><td colspan='5'><font color='purple'><b><u><i>od ".$zaznam['autor']."</i></u></b></font></td></tr>
             <tr><td colspan='5'>".$zaznam['citat']."</td></tr>
             <tr><td colspan='5'><br><br></td></tr>";
mysql_close($spojeni);

?>
je to podmínka na to když je v DB nějaký řádek shodný z dnešním dnem tak to vypíše že tam je něco nového ale v DB mám tyto události 2 a php mi to vypisuje 2x stejnou zprávu, prosím jak se zbavit toho aby mi to psalo jen jednou, předem děkuji za odpověd


omlouvám se špatný zdroják :)
<?php
include "../include/config.php";
mysql_connect($mysql_ip,$mysql_user,$mysql_pass);
mysql_select_db($mysql_name);
$query_vyber_vse = mysql_query("SELECT * FROM zmeny WHERE vlozeno ;");
while ($row = mysql_fetch_object($query_vyber_vse)){
echo "<tr><td>";
if ($row->vlozeno == date("Y-m-d")){
echo "<b>Dnes byla vložena nová <a href='../zmeny/'>změna</a></b>"; //vypíšeme z text
}
echo "</td></tr>";
}
?>
Tori
Profil
Podmínka na "pouze dnešní události" patří do SQL dotazu:
include "../include/config.php";
mysql_connect($mysql_ip,$mysql_user,$mysql_pass);
mysql_select_db($mysql_name);
$query_vyber_vse = mysql_query("SELECT * FROM zmeny WHERE vlozeno = '".date("Y-m-d")."'");
while ($row = mysql_fetch_object($query_vyber_vse)){
    echo "<tr><td>";
    echo "<b>Dnes byla vložena nová <a href='../zmeny/'>změna</a></b>"; //vypíšeme z text
    echo "</td></tr>";
}
Pokud ji to i teď bude vypisovat dvakrát, tak je i dvakrát uložená v DB.
Patiseq
Profil *
nejde nějak nastavit když tam bude víc věcí uložených v DB aby to psalo jen jednou? se SQL teprv začínám :)
Patiseq
Profil *
Dobrý už sem na to přišel :) pokud by to někoho zajímalo jak sem to udělal zde je zdroják, je to výpis z databáze podle podmínky a vypíše to kolik událostíí je shodných:
<?php
include "../include/config.php";
mysql_connect($mysql_ip,$mysql_user,$mysql_pass);
mysql_select_db($mysql_name);
$query_vyber_vse = mysql_query("SELECT * FROM zmeny WHERE vlozeno = '".date("Y-m-d")."'");
$pocet = mysql_num_rows($query_vyber_vse);
if ($pocet >= 1){
echo "<tr><td><b>Dnes byla vložena nová <a href='../zmeny/'>změna ($pocet)</a></b></td></tr>";
}
?>
juriad
Profil
Patiseq:
Také možné, ale lepší je položit chytřejší dotaz:
SELECT COUNT(*) AS pocet FROM zmeny WHERE vlozeno = CURDATE()
Vrátí jediný řádek se sloupečkem pocet, který bude obsahovat počet změn vložených dnes.

Změny jsou 2:
1) použije se funkce COUNT, přenáší se jediný řádek s výsledkem; pokud bys vložil milion změn za den a použil svůj starý dotaz, muselo by se přenést všech milion řádků, aby se spočítalo, kolik jich je. Funkce COUNT je spočítá už v databázi, narozdíl od mysql_num_rows, která je počítá až v PHP.
2) v databázi můžeš používat funkce, které pracují s datumem: CURDATE() vrací aktuální datum, nemusíš ho tedy vypočítávat a formátovat v PHP.

A část svého kódu nahradíš za:
$query_vyber_pocet = mysql_query("SELECT COUNT(*) AS pocet FROM zmeny WHERE vlozeno = CURDATE()");
$radek = mysql_fetch_assoc($query_vyber_pocet);
$pocet = $radek['pocet'];
Patiseq
Profil *
tak jo díki, jak jsem řekl php ovládám ale SQL zatím tak zlehka, začal jsem s tím nedávno kvůli stránkování a pomalu se chytám, děkuji za spolupráci,

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0