Autor Zpráva
Peter2
Profil *
Chcem sa spytat, mam v podstate ten isty problem avsak k db sa mi pripojit podarilo ale teras mi necita udaje z tabulky...vypisuje chyby:


Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
Warning: mysql_query(): Access denied for user ''@'10.10.8.3' (using password: NO) in
Warning: mysql_query(): A link to the server could not be established in
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in


ked zamenim vsetky mysql_query za mysqli_query tak to zas hadze dalsie chyby ale uz len dve:


Warning: mysqli_query() expects at least 2 parameters, 1 given in
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in


Neviem si stym rady, pripajam aj kod ktory bezne pouzivam na taketo prkotiny

<?php require("auth.php");
$table="stranka";
$editQuery="SELECT * FROM $table"; 

if ($pridaj)
{
     $ins = mysqli_query("INSERT INTO $table VALUES (''  )");
     if ($ins) $message="Pridaný záznam.";
     else $error=mysql_error();
}

if ($delete) 
{
      $del = mysql_query("DELETE FROM $table WHERE id = '$id'");
     if ($del) $error="Záznam id.$id bol vymazaný.";
     else $error=mysql_error();
     $stop=1;
} 

if ($process && $stop==0) 
{
$home=  $_POST['FCKeditor0']  ;
$kontakt=  $_POST['FCKeditor1']  ;

 
 $upp = "home = '$home',  kontakt = '$kontakt'  ";
 $ins = mysql_query("UPDATE $table SET $upp WHERE id = '$id'");
    
    
    if ($ins) $message="Záznam id.$id bol zmenený..."; else $error=mysql_error();
     
}
?>
<div class="error">
  <?php echo $error; ?>
</div>
<div class="success">
  <?php echo $message; ?>
</div>
<?php

$srchQ = $editQuery;
$srch = mysql_query($srchQ);
$rows = mysql_Num_Rows($srch);
?>
<?php for ($i2=0;$i2<$rows;$i2++):
   $zaznam = mysql_Fetch_Array($srch); 
   
?>
lionel messi
Profil
Peter2:
Uprav súbor auth.php nejako takto:
$server = "adresa.servera"; //nahraď adresou servera
$login = "Peter2"; //nahraď prihlasovacím menom
$password = "123456"; //nahraď svojím helsom k db
$db_name = "Petrova_db" //nahraď svojím menom db
$link = mysqli_connect($server, $login, $password, $db_name)  

Samotný kód, vyznačil som, kde máš robiť zmeny:
<?php require "auth.php";
$table="stranka";
$editQuery="SELECT * FROM $table"; 
 
if ($pridaj)
{
     $ins = mysqli_query($link, "INSERT INTO $table VALUES (''  )");
     if ($ins) $message="Pridaný záznam.";
     else $error=mysqli_error();
}
 
if ($delete) 
{
      $del = mysqli_query($link, "DELETE FROM $table WHERE id = '$id'");
     if ($del) $error="Záznam id.$id bol vymazaný.";
     else $error=mysqli_error();
     $stop=1;
} 
 
if ($process && $stop==0) 
{
$home=  $_POST['FCKeditor0']  ;
$kontakt=  $_POST['FCKeditor1']  ;
 
 
 $upp = "home = '$home',  kontakt = '$kontakt'  ";
 $ins = mysqli_query($link, "UPDATE $table SET $upp WHERE id = '$id'");
    
    
    if ($ins) $message="Záznam id.$id bol zmenený..."; else $error=mysqli_error();
     
}
?>
<div class="error">
  <?php echo $error; ?>
</div>
<div class="success">
  <?php echo $message; ?>
</div>
<?php
 
$srchQ = $editQuery;
$srch = mysqli_query($srchQ);
$rows = mysqli_Num_Rows($link, $srch);
?>
<?php for ($i2=0;$i2<$rows;$i2++):
   $zaznam = mysqli_Fetch_Array($srch); 
   
?>

Poznámka: prehľadnosť kódu je poslabšia, niektoré veci by sa dali urobiť aj inak, ale riešim len prechod na MySQLi.


Odporúčam článok: www.fisir.tk/itblog/mysql_, kde získaš o tomto prechode lepší prehľad.
Peter2
Profil *
auth.php je takyto:
    <?php
$link = mysqli_connect('localhost', 'login', 'pass', 'db_name');

if (!$link) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Success... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);



?>

spravil som zmeny ale stale sa to odvolava sem:
Warning: mysqli_query() expects at least 2 parameters, 1 given in
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in

$srch = mysqli_query($srchQ);
$rows = mysqli_Num_Rows($srch);
lionel messi
Profil
Peter2:
Mal som tam chybu, svoj príspevok som upravil, pozri vyššie, už je to ok, ospravedlňujem sa.

Pre istotu ešte raz: $srch = mysqli_query($link, $srchQ);.
Druhý riadok ok.

Ešte dodám, že volanie mysqli_close je v súbore auth.php podľa mňa úplne zbytočné.
Peter2
Profil *
aaa ten mysqli_close robil sarapatu po odstraneni vse funguje teda aspon zatial...samozrejme s tvojou upravou.Just to skusim dat na povodny kod ci to pojde...Zatial ale vrela vdaka
Alphard
Profil
Až zajistíte samotnou funkčnost, můžete začít studovat zabezpečení. Vstupní data do databáze by se měla escapovat.
Peter2
Profil *
Dik za radu, zabezpecenie som studoval samozrejme nevenujem sa tomu az tolko...No tento konkretny kod je len tak narychlo a pouzivam ho len pre seba...


Tak a este jedna vec, vsade mi to hadze tuto hlasku Success... Localhost via UNIX socket jak to odstranim?


Odstranene slepy som...
rovi
Profil
Logicky v auth.php neechuj, ale třeba použij return a pak to zpracuj jako hlášku tzv. flash message pomocí session. Alespoň pochopíš práci se sessions, pokud to ještě neznáš...

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: