Autor Zpráva
msigmund
Profil
Dobrý den,
moc prosím o pomoc. Mám v db tabulku games a z tabulky potřebuji vzít title, převést ho pomocí $string a uložit do alias v té samé tabulce. Problém je, že to udělá jen u jednoho title a dál nepokračuje. Mám tam 1052 záznamů a potřebuji to udělat u všech.

$dotaz = mysql_query("SELECT id, title FROM games ");
while($zaznam = MySQL_Fetch_Array($dotaz)){
$id = $zaznam["id"];
$title = $zaznam["title"]; 


function vytvoralias($string)
    {
$vyrazje = array( "ě","š","č","ř","ž","ý","á","í","é","ú","ů","ď","ť","ň","ó"," ","A","B","C","Č","D","Ď","E","F","G","H","CH","I","J","K","L","M","N","O","P","Q","R","S","Š","T","Ť","U","V","W","X","Y","Z","Ž" );
$nahradit = array( "e","s","c","r","z","y","a","i","e","u","u","d","t","n","o","-","a","b","c","c","d","d","e","f","g","h","ch","i","j","k","l","m","n","o","p","q","r","s","s","t","t","u","v","w","x","y","z","z");
  return strtolower( str_replace( $vyrazje,$nahradit,$string ) );
      } 
    
$string = "$title";
$alias = vytvoralias($string);
 

$dotaz = MySQL_Query("UPDATE games SET  alias='$alias' where id=$id "); 
if(!$dotaz){
echo "<div class=\"echo\">Zapsání selhalo.</div>"; 
}
else {
echo "<div class=\"echo\">Zapsalo se úspěšně.</div>"; 
}

}


Děkuji všem.
nightfish
Profil
pravděpodobně to zhučí na vícenásobně definované funkci vytvoralias()
řešením by mohlo být přesunout definici té funkce mimo cyklus
msigmund
Profil
eror to vyhodí na druhý řádek
while($zaznam = MySQL_Fetch_Array($dotaz)){

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...........
nightfish
Profil
jo, tak to bude tím, že si přepisuješ proměnnou $dotaz
čiliže změň řádky 18 a 19 - místo $dotaz napiš $dotaz2
msigmund
Profil
Jo to je pravda, udělal jsem v tom chybu, ale teď je problém jak jsi napsal v tom vytvoralias()
Je to řádek 7 function vytvoralias($string)
Fatal error: Cannot redeclare vytvoralias() (previously declared in /var/www/...:29) in /var/www/... on line 29
msigmund
Profil
Když jí přesunu mimo cyklus, tak se provede také jen jednou. Prosím aspoň o nakopnutí jak dále, čumím do toho tak dlouho, že mně to zblblo.

$dotaz = mysql_query("SELECT id, title FROM games ");
while($zaznam = MySQL_Fetch_Array($dotaz)){
$id = $zaznam["id"];
$title = $zaznam["title"]; 

}
function vytvoralias($string)
    {
$vyrazje = array( "ě","š","č","ř","ž","ý","á","í","é","ú","ů","ď","ť","ň","ó"," ","A","B","C","Č","D","Ď","E","F","G","H","CH","I","J","K","L","M","N","O","P","Q","R","S","Š","T","Ť","U","V","W","X","Y","Z","Ž" );
$nahradit = array( "e","s","c","r","z","y","a","i","e","u","u","d","t","n","o","-","a","b","c","c","d","d","e","f","g","h","ch","i","j","k","l","m","n","o","p","q","r","s","s","t","t","u","v","w","x","y","z","z");
  return strtolower( str_replace( $vyrazje,$nahradit,$string ) );
      } 
    
$string = "$title";
$alias = vytvoralias($string);
 

$dotaz = MySQL_Query("UPDATE games SET  alias='$alias' where id=$id "); 
if(!$dotaz){
echo "<div class=\"echo\">Zapsání selhalo.</div>"; 
}
else {
echo "<div class=\"echo\">Zapsalo se úspěšně.</div>"; 
}

nightfish
Profil
smaž závorku na řádku 6
řádky 7 až 12 (funkci) vem a přesuň před řádek 1
a na poslední řádek (25) přidej uzavírací složenou závorku
msigmund
Profil
Děkuji za proškolení, potřebuji pár facek abych se vzpamatoval. Tááááková chyba.

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: