#1 2010-08-02 21:38:37

relektro
Člen
Registrován: 2010-06-19
Příspěvky: 14

Re: Nelze najít záznamy v mySQL přes PHP

Chtěl bych se zeptat, nejde mi vyhledávání v db tabulce mySQL, nikdy nenajde záznam,
přitom na mém ComplexWebServeru funguje vyhledávání jak má.
Měl by pro mě někdo radu? Jsem začátečník. web  rastr.hys.cz

Offline

#2 2010-08-02 22:19:31

M4ni4k
Člen
Registrován: 2010-02-04
Příspěvky: 121

Re: Nelze najít záznamy v mySQL přes PHP

1, nejde vidět reklama endory na vašem webu, tedy, nejde přečíst, když už jí najdu
2, málo informací o problému smile co takhle napsat sql dotaz, název databáze a kousek scriptu?

Offline

#3 2010-08-03 07:39:37

relektro
Člen
Registrován: 2010-06-19
Příspěvky: 14

Re: Nelze najít záznamy v mySQL přes PHP

část PHP (bez připojení)je to na  "hledej_form":
mysql_query("SET NAMES 'cp1250'") or die('Could not set names');

# vyhledání záznamů splňujících vyhledávací kritéria
$query = mysql_query(sprintf("SELECT id, name, telephone FROM details WHERE id='".$hled_id."'"));
if (mysql_num_rows($query) == 0) {
printf("Žádné záznamy nesplňují vyhledávací kritéria!");
}
else {
while (list($id, $name, $telephone) = mysql_fetch_row($query))
printf("%s %s (<B>%s</B>)<BR>\n", $id, $name, $telephone);
}
printf("<A HREF=\"hledej_form.html\">Hledej znovu</A>");
# ukončení práce s databází
mysql_close();
?>

ještě form:
<FORM ACTION="hledej.php" METHOD="post">
Hledané ID : <INPUT TYPE="text" NAME="hled_id"><BR>
<INPUT TYPE="submit" VALUE="Odeslat">
</FORM>

hledané id je 110110 nebo 111222
kód je zkopírovaný a upravený, vím, že funguje.

Offline

#4 2010-08-03 11:32:18

JF
Endora rádce
Místo: ....nice u Plzně
Registrován: 2010-06-22
Příspěvky: 11,888

Re: Nelze najít záznamy v mySQL přes PHP

Ako na to pozerám tak mi nieje jasné prečo v dotaze mysql_query máte sprintf ktorý i tak nieje podľa inštrukcií danej funkcie nieje napísaný správne. Podľa mňa úplne zbytočné v dotaze na databázu. Ďalej funkcia

while

nemá označený začiatok ani koniec príslušnými zátvorkami { } a keďže daný príkaz printf ktorý by to mal pravdepodobne vypísať je až v ďalšom riadku tak sa nezahŕňa do opakovačky while. A ďalej keď hľadáte podľa ID (auto_increment) tak výsledok bude iba jeden, potom nieje zapotreby použiť opakovačku while.


Ján Fačkovec - Endora.cz by Webglobe
Email, Web, Webadmin, Webmail, Nápověda, Ceník

Offline

#5 2010-08-03 20:34:16

relektro
Člen
Registrován: 2010-06-19
Příspěvky: 14

Re: Nelze najít záznamy v mySQL přes PHP

kopíroval jsem z původního. Kód mám bez sprintf, ale nenajde to na Endoře stejně žádný záznam,
while nevím, to jsem tam nechal, printf vypisuje, fakt je, že musí zobrazit jeden záznam. id je název sloupce jedinečná hodnota. Mohl by být problém v jiném PHP u mě a na Endoře? Berte tento dotaz od začátečníka s rezervou. Mohli by jste mi navrhout úpravu php konkretně vynechat while ? Díky za pomoc.

Offline

#6 2010-08-03 20:42:24

JF
Endora rádce
Místo: ....nice u Plzně
Registrován: 2010-06-22
Příspěvky: 11,888

Re: Nelze najít záznamy v mySQL přes PHP

Skús takto:

$result = @mysql_query("SELECT id, name, telephone FROM details WHERE id='".$hled_id."' ");
if (@mysql_num_rows($result) == 1) {
list($id, $name, $telephone) = mysql_fetch_row($result);
printf("%s %s (<B>%s</B>)<BR>\n", $id, $name, $telephone);
} else {
printf("Záznam nenalezen!");
}

možno to robí vynechaný znak @ pred dotazom na databázu

Prípadne na začiatok doplň:

$hled_id = $_GET['hled_id'];

prípadne:

$hled_id = $_POST['hled_id'];

ak to posielaš cez POST wink


Ján Fačkovec - Endora.cz by Webglobe
Email, Web, Webadmin, Webmail, Nápověda, Ceník

Offline

#7 2010-08-03 20:57:02

relektro
Člen
Registrován: 2010-06-19
Příspěvky: 14

Re: Nelze najít záznamy v mySQL přes PHP

$hled_id = $_POST['hled_id']; to bylo ono  díky,díky,díky - chodí jak má !!!

Offline

Zápatí

Založeno na FluxBB | CZ a SK