Autor Zpráva
MiK
Profil
jde mi o to že mám nějakou proměnou typu string a v ní libovolně dlouhý článek. A teď potřebuju že když se v tom objeví text např:
[gallery:moje:3]
tak to vykresli 3 prvni obrazky z mysql databaze. neco jako:
pokud mame [gallery:moje:3] tak

$popis='moje'
$max_limit = 3;

$sql=mysql_query("SELECT * FROM galerie WHERE popis = '$popis' LIMIT 0 , $max_limit");
while ( $data = mysql_fetch_row($sql) )
{
$path = data[0];
$alt = data[1];
<img src='$path' alt='$alt' /><br />
}

díky za každou přínosnou radu :)
Leo
Profil
Regularni vyrazy, viz nedavny serial na www.interval.cz v sekci PHP.

Leo
MiK
Profil
1. v tom mém kodu je chyba. Má tam být:
...
$path = data[0];
$alt = data[1];
echo "<img src='$path' alt='$alt' /><br />";
}
...

2. to jsem si myslel, ale s regulárnámy výrazy teď trochu bojuju:
mám na mysli to že bych "možná dal" dohromady to že by se ten původní text nahradil textem. Ale vůbec nevím jak ho donutit aby ten předělaný text provedl a né ho jen vypsal
MiK
Profil
.
Leo
Profil
"mám na mysli to že bych "možná dal" dohromady to že by se ten původní text nahradil textem"

A co jineho potrebujete? Zkuste hledat fci preg_replace_callback, Leo
MiK
Profil
nechci aby to znělo nějak drze...

...Ale vůbec nevím jak ho donutit aby ten předělaný text provedl a né ho jen vypsal.

protože pokud jsem to pochopil tak existuje nějaká funkce která převede určitý string přes regulární výraz na jiný, ale jak ho donutit aby ten převedený text provedl, tak to už netuším.
MiK
Profil
.
Leo
Profil
Vy potrebujete prevest TEXT

[gallery:moje:3]

na TEXT (treba)

<img src='foto.jpg'>
<img src='jestejine.jpg'>
<img src='ajestejedno.jpg'>

Ne? Leo
MiK
Profil
jj.. presne tak... jenze je problem ze ta hodnota 3 v [gallery:moje:3] může být různá a podle ní se udává limit v dotazu na MySQL a ještě to určuje to kolik těch obrázků se má vypsat.

zkusím to popsat to co má PHP udělat co nejjednodušeji...
1. vypsat text z string proměnné až po [gallery:

2. načíst $popis (text mezi "dvojtečkama" v textu [gallery:moje:3]

3. načíst $limit (text mezi "dvojtečkou a ]" v textu [gallery:moje:3]

4. provést kod z použitím porměnných které v předcházejích dvou bodech načetl:
$sql=mysql_query("SELECT * FROM galerie WHERE popis = '$popis' LIMIT 0 , $max_limit");
while ( $data = mysql_fetch_row($sql) )
{
$path = data[0];
$alt = data[1];
<img src='$path' alt='$alt' /><br />
}

5. vypsat zbytek textu co je za [gallery:moje:3]
Toto téma je uzamčeno. Odpověď nelze zaslat.

0