gpt4 book ai didi

php - php中自己的函数,多次调用不同参数的问题

转载 作者:行者123 更新时间:2023-11-29 14:50:44 25 4
gpt4 key购买 nike

好的,所以我有这个函数,我在页面中使用了很多次,但只有在我调用该函数一次时才起作用,或者如果我首先调用一个带有结果的函数...

这是查询:

$resultClientes = mysql_query("SELECT nombre.idNombre
, nombre.nombre AS nombreNombre
, comuna.nombre AS nombreComuna
, giro.nombre AS nombreGiro
, provincia.nombre AS nombreProvincia
, provincia.region_idRegion AS idRegion
FROM nombre
INNER JOIN comuna ON nombre.Comuna_idComuna = comuna.idComuna
INNER JOIN giro ON nombre.Giro_idGiro = giro.idGiro
INNER JOIN provincia ON comuna.Provincia_idProvincia = provincia.idProvincia
ORDER BY nombreProvincia, nombreComuna, nombreGiro, nombreNombre");

这是函数:

function listaClientesPorRegion($numReg,$query){
$nombreProvincia = "";
$nombreComuna = "";
$nombreGiro = "";
$nombreNombre = array();
$i=0;

while ($row = mysql_fetch_assoc($query)) {
if($row['idRegion']== $numReg){
if ($nombreProvincia == $row['nombreProvincia']) {
if ($nombreComuna == $row['nombreComuna']) {
if ($nombreGiro == $row['nombreGiro']) {
$nombreNombre[] = $row['nombreNombre'];
}
else { //nombreGiro
echo '<li>' . implode('</li><li>', $nombreNombre).'</li></ul></li></ul>';
$nombreGiro = $row['nombreGiro'];
echo '<ul class="clientes_giro"><li>'.$nombreGiro.'<ul
class="clientes_nombre">';
$nombreNombre = array($row['nombreNombre']);
}
}
else { // nombreComuna
echo '<li>' . implode('</li><li>', $nombreNombre).
'</li></ul></li></ul></li></ul>';
$nombreComuna = $row['nombreComuna'];
echo '<ul class="clientes_comuna"><li>'.$nombreComuna;
$nombreGiro = $row['nombreGiro'];
echo '<ul class="clientes_giro"><li>'.$nombreGiro.'<ul
class="clientes_nombre">';
$nombreNombre = array($row['nombreNombre']);
}
}
else { // nombreProvincia
if (!empty($nombreNombre)) {
echo '<li>' . implode('</li><li>', $nombreNombre).
'</li></ul></li></ul></li></ul></li></ul></div>';
}
$class = $i++ % 2 ? 'clientes_floatEven' : 'clientes_floatOdd';

$nombreProvincia = $row['nombreProvincia'];
echo '<div id="'.$class.'"><ul class="clientes_provincia">
<li><div class="underline_yellow">'.$nombreProvincia.'</div>';
$nombreComuna = $row['nombreComuna'];
echo '<ul class="clientes_comuna"><li>'.$nombreComuna;
$nombreGiro = $row['nombreGiro'];
echo '<ul class="clientes_giro"><li>'.$nombreGiro.'<ul
class="clientes_nombre">';
$nombreNombre = array($row['nombreNombre']);
}
}
}
if (!empty($nombreNombre)) {
echo '<li>' . implode('</li><li>', $nombreNombre).
'</li></ul></li></ul></li></ul></li></ul></div>';
}
}

这是 html 的一部分

<div id="atacama"> 
<ul class="regiones_nomb_container">
<li class="atacama"></li>
</ul>
<?php
listaClientesPorRegion(3,$resultClientes);
?>
</div>

<div id="coquimbo">
<ul class="regiones_nomb_container">
<li class="coquimbo"></li>
</ul>
<?php
listaClientesPorRegion(4,$resultClientes);
?>
</div>

<div id="valparaiso">
<ul class="regiones_nomb_container">
<li class="valparaiso"></li>
</ul>
<?php
listaClientesPorRegion(5,$resultClientes);
?>
</div>

一开始,我只尝试了一次该函数,并且使用了一个我知道会有记录的查询,例如 listaClientesPorRegion(9, $resultClientes),然后我尝试了一个我知道不会有记录的数字,两者都有效,所以我多次为我网站上的所有 div 调用,但现在不起作用,我不知道为什么......(我是 php 之类的新手),谢谢您的帮助!

最佳答案

代码存在一些问题。
首先,您似乎正在将 IdRegion 和查询结果作为 ($numReg,$query) 发送到您的函数。
这意味着您必须解析结果集中的每条记录才能显示您要查找的内容。

将查询移至函数中并仅传递 idRegion。
其次,对 $numReg 进行一些错误检查以确保某些内容通过。
第三,在查询中输入$numReg值来自动限制结果。
这样您就只能提取您打算使用的记录。

这里是示例代码:

function listaClientesPorRegion($numReg = null){
if(!$numReg) {
// handling here (i.e. return null, echo 'Error!';, etc.)
}
$nombreProvincia = "";
$nombreComuna = "";
$nombreGiro = "";
$nombreNombre = array();
$i=0;

$resultClientes = mysql_query("SELECT nombre.idNombre
, nombre.nombre AS nombreNombre
, comuna.nombre AS nombreComuna
, giro.nombre AS nombreGiro
, provincia.nombre AS nombreProvincia
, provincia.region_idRegion AS idRegion
FROM nombre
WHERE provincia.region_idRegion = $numReg
INNER JOIN comuna ON nombre.Comuna_idComuna = comuna.idComuna
INNER JOIN giro ON nombre.Giro_idGiro = giro.idGiro
INNER JOIN provincia ON comuna.Provincia_idProvincia = provincia.idProvincia
ORDER BY nombreProvincia, nombreComuna, nombreGiro, nombreNombre");

while ($row = mysql_fetch_assoc($query)) {
...

关于php - php中自己的函数,多次调用不同参数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5784899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com