Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Call procedure

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    257

    Call procedure

    Scusate è la prima volta che lavoro con procedure in mysql.

    Volevo chiedervi se è possibile richiamare
    una procedure con inner join dal mysql con il php
    e sopratutto se ci sono degli oggetti che mi permettano
    di contare i campi (e magari lunghezza e tipo)
    che scaturiscono dalla procedure stessa.

    Grazie :-)

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    257
    intendevi questa giusto?
    Grazie

    This is a small function I wrote to handle queries on a table.
    It can query a table, order and sort, and supports inner joins.

    This function also returns the result as a single row or all rows.

    Enjoy :

    <?php
    /**
    * Selects Fields from a database/table.
    * Also supports INNER JOINS, GROUP BY, ORDER BY.
    *
    * @Author : Jonathon Hibbard
    *
    * @param string $db_name //Name of Database
    * @param string $table //Name of Table
    * @param array $fields //Field Names we want to select
    * @param array $inner //Fields to be INNER JOINED
    * @param array $where //WHERE fields.
    * @param string $group_by //Field to group by.
    * @param string $order_by //Field to order by
    * @param string $asc //Asc or Desc order
    * @param string $return_array //Defines $rst as an array or single row
    * @return $rst //Returns the result
    *
    * @example : (1) getFields('mytool','master',
    * 'array('master.master_id','master.fname_id'));
    * (2) getFields('mytool','master',
    * 'array('master.master_id','master.fname_id',
    * 'fname.fname'), array(0=>array('mytool',
    * 'fname','master','fname_id',)),
    * 'master.default_value <> "", false);
    * (3) getFields('mytool','master','master.master_id',NUL L,
    * 'master.fname_id = "3",NULL,NULL,NULL,false);
    */
    function getFields($db_name=NULL,$table=NULL,$fields=NULL,$ inner=NULL,
    $where=NULL,$group_by=NULL,$order_by=NULL,$asc=NUL L,
    $return_array=true) {
    $C_NAME = __CLASS__."::".__FUNCTION__;
    $sql = "SELECT ";
    is_array($fields) ? $sql .= implode(',',$fields) : $sql .= $fields;
    $sql .= " FROM ".$db_name.".".$table;
    if(!empty($inner)) {
    $total_inners = count($inner);
    for($i=0; $i<$total_inners; $i++)
    $sql .= " INNER JOIN ".$inner[$i][0].".".$inner[$i][1]."
    ON ".$inner[$i][1].".".$inner[$i][2]." =
    ".$inner[$i][3].".".$inner[$i][2];
    }
    if(!empty($where)) {
    is_array($where) ? $sql .= " WHERE ".implode(' AND ',$where)
    : die("Fatal Error : Variable must be an array.
    Variable type is : ".gettype($where));
    }
    !empty($group_by) ? $sql .= " GROUP BY ".$group_by : '';
    !empty($order_by) ? $sql .= " ORDER BY ".$order_by : '';
    !empty($asc) ? $sql .= " ".$asc : '';
    $sql .= " # Query resides in ".__FILE__."->".$C_NAME."
    on line ".__LINE__;
    if($return_array === true) {
    $rst = mysql_query($sql)
    or die("An Error Has Occurred!
    \n MySQL Error Reports : ".mysql_error()."
    \n The Error Occured in ".__FILE__." -> ".$C_NAME);
    $i=0;
    while($row = mysql_fetch_assoc($rst)) {
    $rowRst[] = $row[$fields[$i]];
    $i++;
    }
    } else {
    $rst = mysql_query($sql)
    or die("An Error Has Occurred!
    \n MySQL Error Reports : ".mysql_error()."
    \n The Error Occured in ".__FILE__." -> ".$C_NAME);
    $rowRst = mysql_fetch_assoc($rst);
    }
    return $rowRst;
    }
    ?>

  4. #4
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Originariamente inviato da calias
    intendevi questa giusto?
    Grazie
    Veramente intendevo l'intera sezione del manuale
    C'è abbondante documentazione per tutte le funzioni PHP per appoggiarsi a un MySQL, tra le quali anche la conta dei campi, e il tipo, ecc...

    Comunque se quella funzione è ok, benissimo

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    257
    non mi risolve il problema.
    So come contari i campi etc
    ma non so se si può fare con procedure
    con query che hanno al loro interno inner join.

    Appena ci provo si creano problemi tipo:

    Query fallita: PROCEDURE database.qry can't return a result set in the given context

  6. #6
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Prova a dare un occhiata qui:
    Stored Procedures on PHP
    http://www.sitepoint.com/article/php...oft-sql-server

    Io non ci ho capito molto, forse perchè non ho mai usato le PROCEDURE in SQL...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.