Autor | Zpráva | ||
---|---|---|---|
majja01 Profil |
#1 · Zasláno: 9. 2. 2014, 12:11:39
Ahoj neumím moc s mysqli a tak sem sesmolil tento kod
<?php $mysqli = new mysqli(); $mysqli -> connect ("127.0.0.1","root", "","mak"); if(empty($_GET["type"])) $type="'venecek', 'krasohled','obraz'"; else $type="'".$_GET["type"]."'"; $query = "select * from vyrobek "; $result = $mysqli->query($query,MYSQLI_USE_RESULT); while ($zaznam=$result->fetch_array(MYSQLI_ASSOC)): ?> <a href="detail.php?id=<?php echo $zaznam["id"];?>"> <li style="background:url(img/<?php echo $zaznam["picture"];?>); background-size:contain;"> <div class="info"> <?php echo $zaznam["name"];?> <span class="right"><?php echo $zaznam["price"];?> Kč</span> </div> </li> </a> <?php $result->free(); endwhile; ?> Děkuji všem za pomoc |
||
Lamicz Profil |
#2 · Zasláno: 9. 2. 2014, 14:47:01
A když dáš
$result->free(); až za while cyklus?
|
||
Kubo2 Profil |
#3 · Zasláno: 9. 2. 2014, 14:50:24
majja01:
Čo keby si sa aspoň letmo pozrel do dokumentácie a pokúsil sa tam nájsť nejakú funkciu pre nastavenie znakovej sady/kódovania prenosu? (V angličtine sa to nazýva charset/transfer encoding.) Problém s diakritikou bude zrejme (určite) v tom, že sa ti dáta prenášajú v inom kódovaní, aké používaš vo webových stránkach. Ak chceš programovať v PHP, mal by si sa naučiť porozumieť, čo znamenajú chybové hlášky (odkazovanú stránku si určite prečítaj, mala by ti s tým pomôcť). Ďalej si pozri, čo všetko môže vrátiť mysqli::query() a dokumentáciu k metóde mysqli_result::fetch_array(). |
||
majja01 Profil |
#4 · Zasláno: 9. 2. 2014, 18:11:10
Lamicz:
Děkuji teď to funguje... Kubo2 čeština už mi taky funguje... teď mám jiný problém.. potřebuji zjistit kolik má daný sloupec (uid) výsledků. $mysqli = new mysqli(); $mysqli->connect ("127.0.0.1","root", "","mak"); $mysqli->set_charset("utf8"); $sql = "SELECT COUNT(*) FROM komenty WHERE uid = '$uid'"; $result = $mysqli->query($sql,MYSQLI_USE_RESULT); $result->result(); |
||
Fisir Profil |
#5 · Zasláno: 9. 2. 2014, 18:32:31
Reaguji na majju01:
„potřebuji zjistit kolik má daný sloupec (uid) výsledků“ Pokud uid znamená unikátní ID a máš dotaz WHERE uid = $uid , tak jen jeden. Nebo je tu jiný problém?
|
||
Kubo2 Profil |
Doplnené.
Fisir: „Nebo je tu jiný problém?“ Minimálne jeden ďaľší by sa tu našiel, viď nižšie. majja01: Trieda mysqli_result neimplementuje metódu result() . Čo chceš dosiahnuť týmto bezhlavým vymýšľaním a používaním neexistujúcich metód?
|
||
majja01 Profil |
#7 · Zasláno: 9. 2. 2014, 19:07:22
Kubo2:
původní kod je tento: for ($pokus = 0;; $pokus++) { $uid = md5 (uniqid (rand())); $result = mysql_query("SELECT COUNT(*) FROM komenty WHERE uid = '$uid'"); $pocet = mysql_result($result, 0, 0); if ($pocet == 0) { $_SESSION["com"] = $uid; $insert = mysql_query("INSERT INTO komenty (id,proid,uid,name,email,content) VALUES('','$id','$uid','$jmeno','$email','$zprava')"); break; } else if ($pokus > 5000) { } } |
||
Fisir Profil |
#8 · Zasláno: 9. 2. 2014, 19:13:03
Reaguji na majju01:
„potřebuji převést do mysqli“ Tak se snaž. Když si klikneš na funkci mysql_result , přesuneš se tím do dokumentace a zjistíš, jaké jsou její ekvivalenty v MySQLi.
|
||
majja01 Profil |
#9 · Zasláno: 9. 2. 2014, 19:15:18
Fisir:
nevím ?? |
||
Fisir Profil |
#10 · Zasláno: 9. 2. 2014, 19:18:21
Reaguji na majju01:
„nevím ??“ To je potom těžký. Nečekej, že ti tu bude někdo přepisovat celý kód, musíš projevit trochu vlastní iniciativy. „ $pocet = mysql_result($result, 0, 0); “
$pocet = $result->num_rows; |
||
majja01 Profil |
#11 · Zasláno: 9. 2. 2014, 19:25:46
Fisir:
$result = mysqli_query("SELECT COUNT(*) FROM komenty WHERE uid = '$uid'"); $pocet = $result->num_rows; |
||
abc Profil |
> $result = mysqli_query("SELECT COUNT(*) FROM komenty WHERE uid = '$uid'");
> $pocet = $result->num_rows; Vrátí 1 i kdyby tam bylo uid 1000. Buď je třeba změnit dotaz na např. SELECT uid FROM komenty WHERE uid = '$uid' Nebo získat počet z výsledku (COUNT(*)): $result = mysqli_query("SELECT COUNT(*) FROM komenty WHERE uid = '$uid'"); $row = $result->fetch_row(); $pocet = $row[0]; |
||
Kubo2 Profil |
#13 · Zasláno: 9. 2. 2014, 19:51:49
majja01:
V $result->num_rows budeš mať vždy jedničku, pretože dotaz vráti jeden riadok s návratovou hodnotou COUNT(*) .
|
||
majja01 Profil |
#14 · Zasláno: 10. 2. 2014, 19:48:24
abc, Kubo2:
jo díky... mám se ještě hodně co učit... |
||
Časová prodleva: 11 let
|
0